Browse Source
for deploying uptime-kuma in it's namespace as a deployment of a single pod with a service and ingress definition ans a persistent volume for data This example should work on most Kuberntes clusters but might need some tweaks as per specific implementations of ingress and persistent storage.pull/185/head
1 changed files with 131 additions and 0 deletions
@ -0,0 +1,131 @@ |
|||
# a full working kubernetes manifest |
|||
# |
|||
# for deploying uptime-kuma in it's namespace |
|||
# as a deployment of a single pod |
|||
# with a service and ingress definition |
|||
# ans a persistent volume for data |
|||
# |
|||
# This example should work on most Kuberntes clusters |
|||
# but might need some tweaks as per specific implementations |
|||
# of ingress and persistent storage. |
|||
--- |
|||
apiVersion: v1 |
|||
kind: Namespace |
|||
metadata: |
|||
name: uptime-kuma |
|||
--- |
|||
kind: PersistentVolumeClaim |
|||
apiVersion: v1 |
|||
metadata: |
|||
name: uptime-kuma-data |
|||
namespace: uptime-kuma |
|||
labels: |
|||
app.kubernetes.io/name: uptime-kuma |
|||
app.kubernetes.io/instance: uptime-kuma |
|||
spec: |
|||
accessModes: |
|||
- "ReadWriteOnce" |
|||
resources: |
|||
requests: |
|||
storage: "5Gi" |
|||
#storageClassName: "longhorn" |
|||
--- |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: uptime-kuma-web |
|||
namespace: uptime-kuma |
|||
labels: |
|||
app.kubernetes.io/name: uptime-kuma |
|||
app.kubernetes.io/instance: uptime-kuma |
|||
spec: |
|||
type: ClusterIP |
|||
publishNotReadyAddresses: false |
|||
ports: |
|||
- name: web |
|||
port: 3001 |
|||
protocol: TCP |
|||
targetPort: 3001 |
|||
selector: |
|||
app.kubernetes.io/name: uptime-kuma |
|||
app.kubernetes.io/instance: uptime-kuma |
|||
--- |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: uptime-kuma |
|||
namespace: uptime-kuma |
|||
labels: |
|||
app.kubernetes.io/name: uptime-kuma |
|||
app.kubernetes.io/instance: uptime-kuma |
|||
spec: |
|||
replicas: 1 |
|||
strategy: |
|||
type: Recreate |
|||
selector: |
|||
matchLabels: |
|||
app.kubernetes.io/name: uptime-kuma |
|||
app.kubernetes.io/instance: uptime-kuma |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app.kubernetes.io/name: uptime-kuma |
|||
app.kubernetes.io/instance: uptime-kuma |
|||
spec: |
|||
containers: |
|||
- name: uptime-kuma |
|||
# https://hub.docker.com/r/louislam/uptime-kuma/tags?page=1&ordering=last_updated |
|||
image: louislam/uptime-kuma:1.0.10 |
|||
imagePullPolicy: IfNotPresent |
|||
ports: |
|||
- name: web |
|||
containerPort: 3001 |
|||
protocol: TCP |
|||
livenessProbe: |
|||
exec: |
|||
command: |
|||
- node |
|||
- extra/healthcheck.js |
|||
readinessProbe: |
|||
httpGet: |
|||
path: / |
|||
port: web |
|||
scheme: HTTP |
|||
volumeMounts: |
|||
- mountPath: /app/data |
|||
name: uptime-kuma-data |
|||
volumes: |
|||
- name: uptime-kuma-data |
|||
persistentVolumeClaim: |
|||
claimName: uptime-kuma-data |
|||
--- |
|||
apiVersion: networking.k8s.io/v1 |
|||
kind: Ingress |
|||
metadata: |
|||
name: uptime-kuma |
|||
namespace: uptime-kuma |
|||
labels: |
|||
app.kubernetes.io/name: uptime-kuma |
|||
app.kubernetes.io/instance: uptime-kuma |
|||
annotations: |
|||
#cert-manager.io/cluster-issuer: acme |
|||
#kubernetes.io/ingress.class: ingress-nginx |
|||
#nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |
|||
# note: default ingress-nginx has neede config for websockets |
|||
#nginx.org/websocket-services: "uptime-kuma-web" |
|||
spec: |
|||
tls: |
|||
- hosts: |
|||
- "uptime.example.com" |
|||
secretName: uptime-kuma-tls |
|||
rules: |
|||
- host: "uptime.example.com" |
|||
http: |
|||
paths: |
|||
- path: / |
|||
pathType: Prefix |
|||
backend: |
|||
service: |
|||
name: uptime-kuma-web |
|||
port: |
|||
number: 3001 |
|||
Loading…
Reference in new issue