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