Browse Source
			 
			
			Merge pull request #231  from ClemontX/master 
 
added K8s-Deployment and edited README 
			
			
				 
		
			
				
					
						Louis Lam 
					
					4 years ago 
							GitHub 
							
						 
					
				 
				
			 
		 
		
			
				
					GPG Key ID:  
		
		
		
	
		
			
				 8 changed files  with 
152 additions  and 
1 deletions 
			 
			
		 
		
			
				
					
					
					  
					README.md 
				 
			
				
					
					
					  
					kubernetes/README.md 
				 
			
				
					
					
					  
					kubernetes/kustomization.yml 
				 
			
				
					
					
					  
					kubernetes/uptime-kuma/deployment.yml 
				 
			
				
					
					
					  
					kubernetes/uptime-kuma/ingressroute.yml 
				 
			
				
					
					
					  
					kubernetes/uptime-kuma/kustomization.yml 
				 
			
				
					
					
					  
					kubernetes/uptime-kuma/pvc.yml 
				 
			
				
					
					
					  
					kubernetes/uptime-kuma/service.yml 
				 
			
		 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					
						
						
							
								 
						
						
					 
				
				@ -36,6 +36,11 @@ docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name upti 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					Browse to http://localhost:3001 after started. 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					### ☸️ Kubernetes 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					See more [here ](kubernetes/README.md )  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					### Advanced Installation 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					If you need more options or need to browse via a reserve proxy, please read: 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -43,7 +48,6 @@ If you need more options or need to browse via a reserve proxy, please read: 
			
		
	
		
			
				
					https://github.com/louislam/uptime-kuma/wiki/%F0%9F%94%A7-How-to-Install 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					## 🆙 How to Update 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					Please read: 
			
		
	
	
		
			
				
					
						
							
								 
						
						
						
					 
				
				 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					
						
						
						
					 
				
				@ -0,0 +1,28 @@ 
			
		
	
		
			
				
					# 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. 
			
		
	
		
			
				
					If you want to choose another namespace you can edit the ```kustomization.yml``` in the ```kubernetes```-Folder and change the ```namespace: uptime-kuma``` to something you like. 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					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,42 @@ 
			
		
	
		
			
				
					apiVersion :   apps/v1  
			
		
	
		
			
				
					kind :   Deployment  
			
		
	
		
			
				
					metadata:  
			
		
	
		
			
				
					   labels:  
			
		
	
		
			
				
					     component :   uptime-kuma  
			
		
	
		
			
				
					   name :   deployment  
			
		
	
		
			
				
					spec:  
			
		
	
		
			
				
					   selector:  
			
		
	
		
			
				
					     matchLabels:  
			
		
	
		
			
				
					       component :   uptime-kuma  
			
		
	
		
			
				
					   replicas :   1  
			
		
	
		
			
				
					   strategy:  
			
		
	
		
			
				
					     type :   Recreate  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					   template:  
			
		
	
		
			
				
					     metadata:  
			
		
	
		
			
				
					       labels:  
			
		
	
		
			
				
					         component :   uptime-kuma  
			
		
	
		
			
				
					     spec:  
			
		
	
		
			
				
					       containers:  
			
		
	
		
			
				
					         - name :   app  
			
		
	
		
			
				
					           image :   louislam/uptime-kuma:1  
			
		
	
		
			
				
					           ports:  
			
		
	
		
			
				
					             - containerPort :   3001  
			
		
	
		
			
				
					           volumeMounts:  
			
		
	
		
			
				
					             - mountPath :   /app/data  
			
		
	
		
			
				
					               name :   storage  
			
		
	
		
			
				
					           livenessProbe:  
			
		
	
		
			
				
					             exec:  
			
		
	
		
			
				
					               command:  
			
		
	
		
			
				
					                 - node  
			
		
	
		
			
				
					                 - extra/healthcheck.js  
			
		
	
		
			
				
					           readinessProbe:  
			
		
	
		
			
				
					             httpGet:  
			
		
	
		
			
				
					               path :   /  
			
		
	
		
			
				
					               port :   3001  
			
		
	
		
			
				
					               scheme :   HTTP  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					       volumes:  
			
		
	
		
			
				
					         - name :   storage  
			
		
	
		
			
				
					           persistentVolumeClaim:  
			
		
	
		
			
				
					             claimName :   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 :   ingress  
			
		
	
		
			
				
					spec:  
			
		
	
		
			
				
					   tls:  
			
		
	
		
			
				
					   - hosts:  
			
		
	
		
			
				
					     - example.com  
			
		
	
		
			
				
					     secretName :   example-com-tls  
			
		
	
		
			
				
					   rules:  
			
		
	
		
			
				
					   - host :   example.com  
			
		
	
		
			
				
					     http:  
			
		
	
		
			
				
					       paths:  
			
		
	
		
			
				
					       - path :   /  
			
		
	
		
			
				
					         pathType :   Prefix  
			
		
	
		
			
				
					         backend:  
			
		
	
		
			
				
					           service:  
			
		
	
		
			
				
					             name :   service  
			
		
	
		
			
				
					             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 :   pvc  
			
		
	
		
			
				
					spec:  
			
		
	
		
			
				
					   accessModes:  
			
		
	
		
			
				
					     - ReadWriteOnce  
			
		
	
		
			
				
					   resources:  
			
		
	
		
			
				
					     requests:  
			
		
	
		
			
				
					       storage :   4Gi  
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					
						
						
						
					 
				
				@ -0,0 +1,13 @@ 
			
		
	
		
			
				
					apiVersion :   v1  
			
		
	
		
			
				
					kind :   Service  
			
		
	
		
			
				
					metadata :      
			
		
	
		
			
				
					   name :   service  
			
		
	
		
			
				
					spec:  
			
		
	
		
			
				
					   selector :        
			
		
	
		
			
				
					     component :   uptime-kuma  
			
		
	
		
			
				
					   type :   ClusterIP  
			
		
	
		
			
				
					   ports :      
			
		
	
		
			
				
					   - name :   http  
			
		
	
		
			
				
					     port :   3001  
			
		
	
		
			
				
					     targetPort :   3001  
			
		
	
		
			
				
					     protocol :   TCP