mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-06-01 19:32:34 +02:00

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.
131 lines
3.2 KiB
YAML
131 lines
3.2 KiB
YAML
# 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
|