Carl Sander
4 years ago
8 changed files with 142 additions and 0 deletions
@ -0,0 +1,27 @@ |
|||||
|
# Uptime-Kuma K8s Deployment |
||||
|
## How does it work? |
||||
|
|
||||
|
Kustomize is a tool which builds a complete deployment file for all config elements. |
||||
|
You can edit the files in the ```uptime-kuma``` folder except the ```kustomization.yml``` until you know what you're doing. |
||||
|
|
||||
|
It creates a certificate with the specified Issuer and creates the Ingress for the Uptime-Kuma ClusterIP-Service |
||||
|
|
||||
|
## What do i have to edit? |
||||
|
You have to edit the ```ingressroute.yml``` to your needs. |
||||
|
This ingressroute.yml is for the [nginx-ingress-controller](https://kubernetes.github.io/ingress-nginx/) in combination with the [cert-manager](https://cert-manager.io/). |
||||
|
|
||||
|
- host |
||||
|
- secrets and secret names |
||||
|
- (Cluster)Issuer (optional) |
||||
|
- the Version in the Deployment-File |
||||
|
- update: |
||||
|
- change to newer version and run the above commands, it will update the pods one after another |
||||
|
|
||||
|
## How To use: |
||||
|
|
||||
|
- install [kustomize](https://kubectl.docs.kubernetes.io/installation/kustomize/) |
||||
|
- Edit files mentioned above to your needs |
||||
|
- run ```kustomize build > apply.yml``` |
||||
|
- run ```kubectl apply -f apply.yml``` |
||||
|
|
||||
|
Now you should see some k8s magic and Uptime-Kuma should be available at the specified address. |
@ -0,0 +1,10 @@ |
|||||
|
namespace: uptime-kuma |
||||
|
namePrefix: uptime-kuma- |
||||
|
|
||||
|
commonLabels: |
||||
|
app: uptime-kuma |
||||
|
|
||||
|
bases: |
||||
|
- uptime-kuma |
||||
|
|
||||
|
|
@ -0,0 +1,34 @@ |
|||||
|
apiVersion: apps/v1 |
||||
|
kind: Deployment |
||||
|
metadata: |
||||
|
labels: |
||||
|
component: uptime-kuma |
||||
|
name: uptime-kuma |
||||
|
spec: |
||||
|
selector: |
||||
|
matchLabels: |
||||
|
component: uptime-kuma |
||||
|
replicas: 3 |
||||
|
strategy: |
||||
|
rollingUpdate: |
||||
|
maxSurge: 1 |
||||
|
maxUnavailable: 1 |
||||
|
type: RollingUpdate |
||||
|
|
||||
|
template: |
||||
|
metadata: |
||||
|
labels: |
||||
|
component: uptime-kuma |
||||
|
spec: |
||||
|
containers: |
||||
|
- name: uptime-kuma |
||||
|
image: louislam/uptime-kuma:1.2.0 |
||||
|
ports: |
||||
|
- containerPort: 3001 |
||||
|
volumeMounts: |
||||
|
- mountPath: /app/data |
||||
|
name: uptime-kuma-storage |
||||
|
volumes: |
||||
|
- name: uptime-kuma-storage |
||||
|
persistentVolumeClaim: |
||||
|
claimName: uptime-kuma-pvc |
@ -0,0 +1,39 @@ |
|||||
|
apiVersion: networking.k8s.io/v1 |
||||
|
kind: Ingress |
||||
|
metadata: |
||||
|
annotations: |
||||
|
kubernetes.io/ingress.class: nginx |
||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod |
||||
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" |
||||
|
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" |
||||
|
nginx.ingress.kubernetes.io/server-snippets: | |
||||
|
location / { |
||||
|
proxy_set_header Upgrade $http_upgrade; |
||||
|
proxy_http_version 1.1; |
||||
|
proxy_set_header X-Forwarded-Host $http_host; |
||||
|
proxy_set_header X-Forwarded-Proto $scheme; |
||||
|
proxy_set_header X-Forwarded-For $remote_addr; |
||||
|
proxy_set_header Host $host; |
||||
|
proxy_set_header Connection "upgrade"; |
||||
|
proxy_set_header X-Real-IP $remote_addr; |
||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
||||
|
proxy_set_header Upgrade $http_upgrade; |
||||
|
proxy_cache_bypass $http_upgrade; |
||||
|
} |
||||
|
name: uptime-kuma-ingress |
||||
|
spec: |
||||
|
tls: |
||||
|
- hosts: |
||||
|
- monitor.cxde.link |
||||
|
secretName: monitor-cxde-link-tls |
||||
|
rules: |
||||
|
- host: monitor.cxde.link |
||||
|
http: |
||||
|
paths: |
||||
|
- path: / |
||||
|
pathType: Prefix |
||||
|
backend: |
||||
|
service: |
||||
|
name: uptime-kuma-uptime-kuma |
||||
|
port: |
||||
|
number: 3001 |
@ -0,0 +1,5 @@ |
|||||
|
resources: |
||||
|
- deployment.yml |
||||
|
- service.yml |
||||
|
- ingressroute.yml |
||||
|
- pvc.yml |
@ -0,0 +1,10 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: PersistentVolumeClaim |
||||
|
metadata: |
||||
|
name: uptime-kuma-pvc |
||||
|
spec: |
||||
|
accessModes: |
||||
|
- ReadWriteOnce |
||||
|
resources: |
||||
|
requests: |
||||
|
storage: 4Gi |
@ -0,0 +1,13 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: Service |
||||
|
metadata: |
||||
|
name: uptime-kuma |
||||
|
spec: |
||||
|
selector: |
||||
|
component: uptime-kuma |
||||
|
type: ClusterIP |
||||
|
ports: |
||||
|
- name: http |
||||
|
port: 3001 |
||||
|
targetPort: 3001 |
||||
|
protocol: TCP |
Loading…
Reference in new issue