add homepage as a deployment
This commit is contained in:
		
							
								
								
									
										98
									
								
								apps/homepage/configmap.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								apps/homepage/configmap.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | ||||
| apiVersion: v1 | ||||
| kind: ConfigMap | ||||
| metadata: | ||||
|   name: config | ||||
|   labels: | ||||
|     app.kubernetes.io/name: homepage | ||||
| data: | ||||
|   kubernetes.yaml: "" #| | ||||
|   #  mode: cluster | ||||
|   settings.yaml: | | ||||
|     title: "Homepage" | ||||
|     background: https://images.unsplash.com/photo-1547327132-5d20850c62b5?q=80&w=3870&auto=format&fit=crop | ||||
|     cardBlur: sm | ||||
|   #settings.yaml: | | ||||
|   #  providers: | ||||
|   #    longhorn: | ||||
|   #      url: https://longhorn.my.network | ||||
|   custom.css: "" | ||||
|   custom.js: "" | ||||
|   bookmarks.yaml: | | ||||
|     - Developer: | ||||
|         - Github: | ||||
|             - abbr: GH | ||||
|               href: https://github.com/moll-re | ||||
|   services.yaml: | | ||||
|     - Media: | ||||
|         - Jellyfin backend: | ||||
|             href: https://media-backend.kluster.moll.re | ||||
|             ping: media-backend.kluster.moll.re | ||||
|         - Jellyfin vue: | ||||
|             href: https://media.kluster.moll.re | ||||
|             ping: media.kluster.moll.re | ||||
|         - Immich: | ||||
|             href: https://immich.kluster.moll.re | ||||
|             ping: immich.kluster.moll.re | ||||
|  | ||||
|     - Productivity: | ||||
|         - OwnCloud: | ||||
|             href: https://ocis.kluster.moll.re | ||||
|             ping: ocis.kluster.moll.re | ||||
|         - ToDo: | ||||
|             href: https://todos.kluster.moll.re | ||||
|             ping: todos.kluster.moll.re | ||||
|         - Finance: | ||||
|             href: https://finance.kluster.moll.re | ||||
|             ping: finance.kluster.moll.re | ||||
|  | ||||
|     - Home: | ||||
|         - Home Assistant: | ||||
|             href: https://home.kluster.moll.re | ||||
|             ping: home.kluster.moll.re | ||||
|         - Grafana: | ||||
|             href: https://grafana.kluster.moll.re | ||||
|             ping: grafana.kluster.moll.re | ||||
|         - Recipes: | ||||
|             href: https://recipes.kluster.moll.re | ||||
|             ping: recipes.kluster.moll.re | ||||
|      | ||||
|     - Infra: | ||||
|         - Gitea: | ||||
|             href: https://git.kluster.moll.re | ||||
|             ping: git.kluster.moll.re | ||||
|         - ArgoCD: | ||||
|             href: https://argocd.kluster.moll.re | ||||
|             ping: argocd.kluster.moll.re | ||||
|  | ||||
|   widgets.yaml: | | ||||
|     # - kubernetes: | ||||
|     #     cluster: | ||||
|     #       show: true | ||||
|     #       cpu: true | ||||
|     #       memory: true | ||||
|     #       showLabel: true | ||||
|     #       label: "cluster" | ||||
|     #     nodes: | ||||
|     #       show: true | ||||
|     #       cpu: true | ||||
|     #       memory: true | ||||
|     #       showLabel: true | ||||
|     - search: | ||||
|         provider: duckduckgo | ||||
|     - openmeteo: | ||||
|         label: Zürich # optional | ||||
|         latitude: 47.24236 | ||||
|         longitude: 8.30439 | ||||
|         units: metric # or imperial | ||||
|         cache: 30 # Time in minutes to cache API responses, to stay within limits | ||||
|         format: # optional, Intl.NumberFormat options | ||||
|             maximumFractionDigits: 1 | ||||
|     - datetime: | ||||
|         locale: de | ||||
|         format: | ||||
|           dateStyle: long | ||||
|           timeStyle: short | ||||
|     - adguard: | ||||
|         url: http://adguard-home-web.adguard-home:3000 | ||||
|  | ||||
|   docker.yaml: "" | ||||
							
								
								
									
										64
									
								
								apps/homepage/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								apps/homepage/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| apiVersion: apps/v1 | ||||
| kind: Deployment | ||||
| metadata: | ||||
|   name: homepage | ||||
|   labels: | ||||
|     app.kubernetes.io/name: homepage | ||||
| spec: | ||||
|   revisionHistoryLimit: 3 | ||||
|   replicas: 1 | ||||
|   strategy: | ||||
|     type: RollingUpdate | ||||
|   selector: | ||||
|     matchLabels: | ||||
|       app.kubernetes.io/name: homepage | ||||
|   template: | ||||
|     metadata: | ||||
|       labels: | ||||
|         app.kubernetes.io/name: homepage | ||||
|     spec: | ||||
|       # serviceAccountName: homepage | ||||
|       # automountServiceAccountToken: true | ||||
|       dnsPolicy: ClusterFirst | ||||
|       # enableServiceLinks: true | ||||
|       containers: | ||||
|         - name: homepage | ||||
|           image: homepage | ||||
|           imagePullPolicy: Always | ||||
|           ports: | ||||
|             - name: http | ||||
|               containerPort: 3000 | ||||
|               protocol: TCP | ||||
|           volumeMounts: | ||||
|             - mountPath: /app/config/custom.js | ||||
|               name: config | ||||
|               subPath: custom.js | ||||
|             - mountPath: /app/config/custom.css | ||||
|               name: config | ||||
|               subPath: custom.css | ||||
|             - mountPath: /app/config/bookmarks.yaml | ||||
|               name: config | ||||
|               subPath: bookmarks.yaml | ||||
|             - mountPath: /app/config/docker.yaml | ||||
|               name: config | ||||
|               subPath: docker.yaml | ||||
|             - mountPath: /app/config/kubernetes.yaml | ||||
|               name: config | ||||
|               subPath: kubernetes.yaml | ||||
|             - mountPath: /app/config/services.yaml | ||||
|               name: config | ||||
|               subPath: services.yaml | ||||
|             - mountPath: /app/config/settings.yaml | ||||
|               name: config | ||||
|               subPath: settings.yaml | ||||
|             - mountPath: /app/config/widgets.yaml | ||||
|               name: config | ||||
|               subPath: widgets.yaml | ||||
|             - mountPath: /app/config/logs | ||||
|               name: logs | ||||
|       volumes: | ||||
|         - name: config | ||||
|           configMap: | ||||
|             name: config | ||||
|         - name: logs | ||||
|           emptyDir: {} | ||||
							
								
								
									
										16
									
								
								apps/homepage/ingress.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								apps/homepage/ingress.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| apiVersion: traefik.io/v1alpha1 | ||||
| kind: IngressRoute | ||||
| metadata: | ||||
|   name: homepage-ingressroute | ||||
|  | ||||
| spec: | ||||
|   entryPoints: | ||||
|     - websecure | ||||
|   routes: | ||||
|     - match: Host(`start.kluster.moll.re`) | ||||
|       kind: Rule | ||||
|       services: | ||||
|         - name: homepage-web | ||||
|           port: 3000 | ||||
|   tls: | ||||
|     certResolver: default-tls | ||||
							
								
								
									
										17
									
								
								apps/homepage/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								apps/homepage/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| apiVersion: kustomize.config.k8s.io/v1beta1 | ||||
| kind: Kustomization | ||||
|  | ||||
| namespace: homepage | ||||
|  | ||||
| resources: | ||||
|   - namespace.yaml | ||||
|   - deployment.yaml | ||||
|   - service.yaml | ||||
|   - configmap.yaml | ||||
|   - ingress.yaml | ||||
|  | ||||
|  | ||||
| images: | ||||
|   - name: homepage | ||||
|     newName: ghcr.io/gethomepage/homepage | ||||
|     newTag: v0.8.11 | ||||
							
								
								
									
										4
									
								
								apps/homepage/namespace.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								apps/homepage/namespace.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| apiVersion: v1 | ||||
| kind: Namespace | ||||
| metadata: | ||||
|   name: placeholder | ||||
							
								
								
									
										15
									
								
								apps/homepage/service.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								apps/homepage/service.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: homepage-web | ||||
|   labels: | ||||
|     app.kubernetes.io/name: homepage | ||||
| spec: | ||||
|   type: ClusterIP | ||||
|   ports: | ||||
|     - port: 3000 | ||||
|       targetPort: http | ||||
|       protocol: TCP | ||||
|       name: http | ||||
|   selector: | ||||
|     app.kubernetes.io/name: homepage | ||||
							
								
								
									
										19
									
								
								kluster-deployments/homepage/application.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								kluster-deployments/homepage/application.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| apiVersion: argoproj.io/v1alpha1 | ||||
| kind: Application | ||||
| metadata: | ||||
|   name: homepage-application | ||||
|   namespace: argocd | ||||
|  | ||||
| spec: | ||||
|   project: apps | ||||
|   source: | ||||
|     repoURL: ssh://git@git.kluster.moll.re:2222/remoll/k3s-infra.git | ||||
|     targetRevision: main | ||||
|     path: apps/homepage | ||||
|   destination: | ||||
|     server: https://kubernetes.default.svc | ||||
|     namespace: homepage | ||||
|   syncPolicy: | ||||
|     automated: | ||||
|       prune: true | ||||
|       selfHeal: true | ||||
| @@ -28,6 +28,7 @@ resources: | ||||
|   - files/ | ||||
|   - finance/ | ||||
|   - homeassistant/ | ||||
|   - homepage/application.yaml | ||||
|   - immich/ | ||||
|   - journal/ | ||||
|   - media/ | ||||
|   | ||||
| @@ -18,5 +18,5 @@ spec: | ||||
|       prune: true | ||||
|       selfHeal: true | ||||
|     syncOptions: | ||||
|     - Replace=true | ||||
|     # because the crds exceed the default 256Ki limit | ||||
|       - Replace=true | ||||
|     # because the crd annotations exceed the default 256Ki limit | ||||
		Reference in New Issue
	
	Block a user