mirror of
https://github.com/octoleo/plantuml-server.git
synced 2024-12-21 16:29:03 +00:00
Add simple Kubernetes example
This commit is contained in:
parent
2d011e233e
commit
820fcca9ac
@ -2,3 +2,4 @@
|
||||
|
||||
- [Nginx simple reverse proxy example](./nginx-simple)
|
||||
- [Nginx reverse proxy example with defined location directive (different context path)](./nginx-contextpath)
|
||||
- [Kubernetes simple deployment](./kubernetes-simple)
|
||||
|
51
examples/kubernetes-simple/README.md
Normal file
51
examples/kubernetes-simple/README.md
Normal file
@ -0,0 +1,51 @@
|
||||
# PlantUML Kubernetes Deployment
|
||||
|
||||
In this example, PlantUML is deployed on an Kubernetes cluster using a `Deployment`, a `Service` and an `Ingress`.
|
||||
|
||||
## Quick start
|
||||
|
||||
Install:
|
||||
|
||||
```bash
|
||||
# Hint: Adjust the Ingress host to your URL
|
||||
|
||||
kubectl create ns plantuml
|
||||
kubectl -n plantuml apply -f deployment.yaml
|
||||
```
|
||||
|
||||
Uninstall:
|
||||
|
||||
```bash
|
||||
kubectl -n plantuml delete -f deployment.yaml
|
||||
kubectl delete ns plantuml
|
||||
```
|
||||
|
||||
## TLS configuration
|
||||
|
||||
Create a TLS `Secret` and extend the `Ingress` spec with a TLS configuration:
|
||||
|
||||
```bash
|
||||
[...]
|
||||
tls:
|
||||
- hosts:
|
||||
- plantuml-example.localhost
|
||||
secretName: plantuml-tls
|
||||
```
|
||||
|
||||
Since the `Ingress Controller` terminates the TLS and routes `http` to the application, we might need to tell the application explicitly that it got a forwarded request.
|
||||
|
||||
This configuration changes depending on the `Ingress Controller`. Here an nginx example:
|
||||
|
||||
```
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||
more_set_headers "X-Forwarded-Proto: https";
|
||||
```
|
||||
|
||||
## Useful commands
|
||||
|
||||
```bash
|
||||
# see whats going on inside your Deployment
|
||||
kubectl -n plantuml logs -l "app.kubernetes.io/name=plantuml"
|
||||
```
|
84
examples/kubernetes-simple/deployment.yaml
Normal file
84
examples/kubernetes-simple/deployment.yaml
Normal file
@ -0,0 +1,84 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: plantuml
|
||||
labels:
|
||||
app.kubernetes.io/name: plantuml
|
||||
app.kubernetes.io/instance: plantuml
|
||||
spec:
|
||||
replicas: 3 # Can be adjusted
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: plantuml
|
||||
app.kubernetes.io/instance: plantuml
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: plantuml
|
||||
app.kubernetes.io/instance: plantuml
|
||||
spec:
|
||||
containers:
|
||||
- name: plantuml
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
image: plantuml/plantuml-server:jetty-v1.2022.6
|
||||
imagePullPolicy: Always
|
||||
# env: # In case of different base URL
|
||||
# - name: BASE_URL
|
||||
# value: plantuml
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
tcpSocket:
|
||||
port: http
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: http
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 2048Mi
|
||||
requests:
|
||||
cpu: 250m
|
||||
memory: 1024Mi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: plantuml
|
||||
labels:
|
||||
app.kubernetes.io/name: plantuml
|
||||
app.kubernetes.io/instance: plantuml
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/name: plantuml
|
||||
app.kubernetes.io/instance: plantuml
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: plantuml
|
||||
labels:
|
||||
app.kubernetes.io/name: plantuml
|
||||
app.kubernetes.io/instance: plantuml
|
||||
spec:
|
||||
rules:
|
||||
- host: plantuml-example.localhost
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: plantuml
|
||||
port:
|
||||
number: 80
|
||||
path: /
|
||||
pathType: Prefix
|
Loading…
Reference in New Issue
Block a user