Compare commits
	
		
			102 commits
		
	
	
		
			8e5c1eb574
			...
			1b3e57814a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 1b3e57814a | ||
| a82d5b8d23 | |||
| c7d82f4502 | |||
| a5221d8389 | |||
| f9e1f2fef8 | |||
| 832299c24a | |||
| ced8b183d3 | |||
| 8c9baf2e97 | |||
|  | c1990ed111 | ||
|  | 012a592fc5 | ||
|  | 71da7530d7 | ||
| ac77a59260 | |||
| dfaf780995 | |||
| 7197ab2ae9 | |||
| 03d60de00c | |||
| 896c5cda02 | |||
| 90ca469ba4 | |||
| 3fc6869c51 | |||
| 1d56b4636c | |||
| 4831ec4212 | |||
| cb118ff57a | |||
| ffa75201df | |||
| 2ed9b42b5d | |||
| 1bf3f22d61 | |||
| eeab597186 | |||
| 6486a1148b | |||
| 8e16be8a29 | |||
| 5a9c412272 | |||
| 5aa80a4159 | |||
| 392f2491cd | |||
| 832acba609 | |||
| e34aa444e5 | |||
| 5cfb35e557 | |||
| 7252c5d113 | |||
|  | beb22c8bc6 | ||
| ed320ab060 | |||
| 6162a7ef85 | |||
| 700194f3bb | |||
| 162fb3f013 | |||
| dbf06a7347 | |||
| 86ce1aa807 | |||
| 6dab365801 | |||
| 1610d11112 | |||
| d4e4e4354d | |||
| d52f8c147b | |||
| 6019477cda | |||
| 41ae6765f4 | |||
| 9605f2baeb | |||
| 261c7ccd4d | |||
| 838c4acc41 | |||
| 4c6a97e52a | |||
|  | 4efb41b584 | ||
|  | c95ee67191 | ||
| dd6202a26f | |||
| a70b28c905 | |||
| 2b39418104 | |||
| 83b0b4be59 | |||
| 13a005f6b5 | |||
| 440682a8ff | |||
| 7a57c678c2 | |||
| 020d13ada2 | |||
| f709eec878 | |||
| 3c3107b021 | |||
| 9cd9b6fdfe | |||
| c91aa4c42b | |||
| a885f275a6 | |||
| a7597c2b52 | |||
| 187db433de | |||
| 8893c46d72 | |||
| 7f6b2e43f4 | |||
| 6e45ada258 | |||
| eb0b528423 | |||
| 6c29998db6 | |||
| a1c4693c7c | |||
| 1152916cc3 | |||
| 6369b00e24 | |||
| 9d0b2425a9 | |||
| fae5c02ba6 | |||
| 29e535cb29 | |||
| dab777f748 | |||
| 1508b9a2db | |||
|  | c98cdcee70 | ||
| 82aea15631 | |||
| a1f49f6370 | |||
| 8caba49f9f | |||
| 320f75ddc1 | |||
| 6eca7e00e0 | |||
| 52120be95f | |||
|  | 8987b8d2a0 | ||
|  | df4641125e | ||
|  | 7504c4dbb7 | ||
|  | e5ac982346 | ||
|  | 75d0c94c40 | ||
|  | 88f6961dc1 | ||
| 6a919ad4c2 | |||
| 053f6b6b40 | |||
| ea7b456d9f | |||
|  | 7ffb96959a | ||
| 73d06a7338 | |||
|  | d38a784ad8 | ||
| fe47d6faa2 | |||
|  | 65f6d756e4 | 
					 55 changed files with 385 additions and 549 deletions
				
			
		|  | @ -6,7 +6,7 @@ replicaCount: 1 | ||||||
| 
 | 
 | ||||||
| image: | image: | ||||||
|   repository: codercom/code-server |   repository: codercom/code-server | ||||||
|   tag: '4.93.1' |   tag: '4.97.2' | ||||||
|   pullPolicy: Always |   pullPolicy: Always | ||||||
| 
 | 
 | ||||||
| secret: | secret: | ||||||
|  |  | ||||||
|  | @ -46,7 +46,7 @@ spec: | ||||||
|           value: "8080" |           value: "8080" | ||||||
|         - name: OP_LOG_LEVEL |         - name: OP_LOG_LEVEL | ||||||
|           value: info |           value: info | ||||||
|         image: 1password/connect-api:1.7.2 |         image: 1password/connect-api:1.7.3 | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         livenessProbe: |         livenessProbe: | ||||||
|           failureThreshold: 3 |           failureThreshold: 3 | ||||||
|  | @ -92,7 +92,7 @@ spec: | ||||||
|           value: localhost:11220 |           value: localhost:11220 | ||||||
|         - name: OP_LOG_LEVEL |         - name: OP_LOG_LEVEL | ||||||
|           value: info |           value: info | ||||||
|         image: 1password/connect-sync:1.7.2 |         image: 1password/connect-sync:1.7.3 | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         livenessProbe: |         livenessProbe: | ||||||
|           failureThreshold: 3 |           failureThreshold: 3 | ||||||
|  |  | ||||||
|  | @ -24,3 +24,11 @@ patches: | ||||||
|       version: v1 |       version: v1 | ||||||
|       kind: ConfigMap |       kind: ConfigMap | ||||||
|       name: argocd-cm |       name: argocd-cm | ||||||
|  | 
 | ||||||
|  |   - patch: |- | ||||||
|  |       - op: add | ||||||
|  |         path: /spec/template/spec/containers/0/args/- | ||||||
|  |         value: --insecure=true | ||||||
|  |     target: | ||||||
|  |       kind: Deployment | ||||||
|  |       name: argocd-server | ||||||
|  |  | ||||||
|  | @ -33,8 +33,6 @@ spec: | ||||||
|           mountPath: /config |           mountPath: /config | ||||||
|         - name: series |         - name: series | ||||||
|           mountPath: /series |           mountPath: /series | ||||||
|         - name: oldseries |  | ||||||
|           mountPath: /oldseries |  | ||||||
|         - name: films |         - name: films | ||||||
|           mountPath: /films |           mountPath: /films | ||||||
|       volumes: |       volumes: | ||||||
|  | @ -44,9 +42,6 @@ spec: | ||||||
|       - name: series |       - name: series | ||||||
|         persistentVolumeClaim: |         persistentVolumeClaim: | ||||||
|           claimName: smb-series |           claimName: smb-series | ||||||
|       - name: oldseries |  | ||||||
|         persistentVolumeClaim: |  | ||||||
|           claimName: smb-oldseries |  | ||||||
|       - name: films |       - name: films | ||||||
|         persistentVolumeClaim: |         persistentVolumeClaim: | ||||||
|           claimName: smb-films |           claimName: smb-films | ||||||
|  |  | ||||||
|  | @ -12,18 +12,6 @@ spec: | ||||||
| --- | --- | ||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| kind: PersistentVolumeClaim | kind: PersistentVolumeClaim | ||||||
| metadata: |  | ||||||
|   name: smb-oldseries |  | ||||||
| spec: |  | ||||||
|   accessModes: |  | ||||||
|   - ReadWriteOnce |  | ||||||
|   resources: |  | ||||||
|     requests: |  | ||||||
|       storage: 1Gi |  | ||||||
|   storageClassName: smb-oldseries |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolumeClaim |  | ||||||
| metadata: | metadata: | ||||||
|   name: smb-films |   name: smb-films | ||||||
| spec: | spec: | ||||||
|  | @ -32,4 +20,4 @@ spec: | ||||||
|   resources: |   resources: | ||||||
|     requests: |     requests: | ||||||
|       storage: 1Gi |       storage: 1Gi | ||||||
|   storageClassName: smb-films |   storageClassName: smb-films | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ spec: | ||||||
|       - env: |       - env: | ||||||
|         - name: ESPHOME_DASHBOARD_USE_PING |         - name: ESPHOME_DASHBOARD_USE_PING | ||||||
|           value: "true" |           value: "true" | ||||||
|         image: esphome/esphome:2022.12.3 |         image: esphome/esphome:2022.12.8 | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         livenessProbe: |         livenessProbe: | ||||||
|           failureThreshold: 3 |           failureThreshold: 3 | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								apps-kustomized/external-dns/deploy.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								apps-kustomized/external-dns/deploy.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   name: external-dns | ||||||
|  | spec: | ||||||
|  |   template: | ||||||
|  |     spec: | ||||||
|  |       containers: | ||||||
|  |       - name: external-dns | ||||||
|  |         envFrom: | ||||||
|  |           - secretRef: | ||||||
|  |               name: dnsimple-auth | ||||||
|  | @ -3,12 +3,16 @@ kind: Kustomization | ||||||
| 
 | 
 | ||||||
| helmCharts:       | helmCharts:       | ||||||
| - name: external-dns | - name: external-dns | ||||||
|   repo: https://charts.bitnami.com/bitnami |   repo: https://kubernetes-sigs.github.io/external-dns | ||||||
|   version: 6.28.4 |   version: 1.15.2 | ||||||
|   releaseName: external-dns |   releaseName: external-dns | ||||||
|   namespace: external-dns |   namespace: external-dns | ||||||
|   valuesInline: |   valuesInline: | ||||||
|     provider: dnsimple |     provider:  | ||||||
|  |       name: dnsimple | ||||||
|     txtPrefix: armnleg |     txtPrefix: armnleg | ||||||
|     sources: [service,ingress] | patches: | ||||||
|     extraEnvVarsSecret: dnsimple-auth | - path: deploy.yaml | ||||||
|  |   target: | ||||||
|  |     kind: Deployment | ||||||
|  |     name: external-dns | ||||||
|  |  | ||||||
							
								
								
									
										23
									
								
								apps-kustomized/files-web/ing.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								apps-kustomized/files-web/ing.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | apiVersion: networking.k8s.io/v1 | ||||||
|  | kind: Ingress | ||||||
|  | metadata: | ||||||
|  |   annotations: | ||||||
|  |     external-dns.alpha.kubernetes.io/target: armnleg.martyn.berlin | ||||||
|  |     nginx.ingress.kubernetes.io/proxy-body-size: 700m | ||||||
|  |   name: web-s3 | ||||||
|  | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|  |   rules: | ||||||
|  |   - host: files.martyn.berlin | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - backend: | ||||||
|  |           service: | ||||||
|  |             name: s3-nginx | ||||||
|  |             port: | ||||||
|  |               number: 80 | ||||||
|  |         path: / | ||||||
|  |         pathType: Prefix | ||||||
|  |   tls: | ||||||
|  |   - hosts: | ||||||
|  |     - files.martyn.berlin | ||||||
							
								
								
									
										27
									
								
								apps-kustomized/files-web/nginx.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								apps-kustomized/files-web/nginx.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,27 @@ | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app: s3-nginx | ||||||
|  |   name: s3-nginx | ||||||
|  | spec: | ||||||
|  |   replicas: 1 | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: s3-nginx | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       creationTimestamp: null | ||||||
|  |       labels: | ||||||
|  |         app: s3-nginx | ||||||
|  |     spec: | ||||||
|  |       containers: | ||||||
|  |       - image: nginx:1.27.4 | ||||||
|  |         name: nginx | ||||||
|  |         volumeMounts: | ||||||
|  |         - mountPath: /usr/share/nginx/html | ||||||
|  |           name: s3 | ||||||
|  |       volumes: | ||||||
|  |       - name: s3 | ||||||
|  |         persistentVolumeClaim: | ||||||
|  |           claimName: smb-s3 | ||||||
							
								
								
									
										11
									
								
								apps-kustomized/files-web/pvc.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								apps-kustomized/files-web/pvc.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: PersistentVolumeClaim | ||||||
|  | metadata: | ||||||
|  |   name: smb-s3 | ||||||
|  | spec: | ||||||
|  |   accessModes: | ||||||
|  |   - ReadWriteOnce | ||||||
|  |   resources: | ||||||
|  |     requests: | ||||||
|  |       storage: 1Gi | ||||||
|  |   storageClassName: smb-s3 | ||||||
							
								
								
									
										12
									
								
								apps-kustomized/files-web/svc.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								apps-kustomized/files-web/svc.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app: s3-nginx | ||||||
|  |   name: s3-nginx | ||||||
|  | spec: | ||||||
|  |   internalTrafficPolicy: Cluster | ||||||
|  |   ports: | ||||||
|  |   - port: 80 | ||||||
|  |   selector: | ||||||
|  |     app: s3-nginx | ||||||
|  | @ -19,7 +19,7 @@ spec: | ||||||
|         app: forgejo |         app: forgejo | ||||||
|     spec: |     spec: | ||||||
|       containers: |       containers: | ||||||
|       - image: codeberg.org/forgejo/forgejo:1.21 |       - image: codeberg.org/forgejo/forgejo:10.0.1 | ||||||
|         env: |         env: | ||||||
|         - name: FORGEJO__database__DB_TYPE |         - name: FORGEJO__database__DB_TYPE | ||||||
|           value: postgres |           value: postgres | ||||||
|  |  | ||||||
|  | @ -66,7 +66,7 @@ spec: | ||||||
|       dnsPolicy: ClusterFirst |       dnsPolicy: ClusterFirst | ||||||
|       nodeSelector: |       nodeSelector: | ||||||
|         intel.feature.node.kubernetes.io/gpu: "true" |         intel.feature.node.kubernetes.io/gpu: "true" | ||||||
|         kubernetes.io/hostname: talos-llu-kx3 |         kubernetes.io/hostname: talos-e48-wv7 | ||||||
|       terminationGracePeriodSeconds: 30 |       terminationGracePeriodSeconds: 30 | ||||||
|       volumes: |       volumes: | ||||||
|       - name: jellyfin-config |       - name: jellyfin-config | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ spec: | ||||||
|       automountServiceAccountToken: false |       automountServiceAccountToken: false | ||||||
|       containers: |       containers: | ||||||
|         - env: [] |         - env: [] | ||||||
|           image: grafana/grafana:9.5.3 |           image: grafana/grafana:9.5.21 | ||||||
|           name: grafana |           name: grafana | ||||||
|           ports: |           ports: | ||||||
|             - containerPort: 3000 |             - containerPort: 3000 | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ spec: | ||||||
|         app: lidarr |         app: lidarr | ||||||
|     spec: |     spec: | ||||||
|       containers: |       containers: | ||||||
|       - image: hotio/lidarr:release |       - image: hotio/lidarr:release-2.9.6.4552 | ||||||
|         name: lidarr |         name: lidarr | ||||||
|         resources: |         resources: | ||||||
|           requests: |           requests: | ||||||
|  |  | ||||||
|  | @ -12,18 +12,6 @@ spec: | ||||||
| --- | --- | ||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| kind: PersistentVolumeClaim | kind: PersistentVolumeClaim | ||||||
| metadata: |  | ||||||
|   name: smb-oldmusic |  | ||||||
| spec: |  | ||||||
|   accessModes: |  | ||||||
|   - ReadWriteOnce |  | ||||||
|   resources: |  | ||||||
|     requests: |  | ||||||
|       storage: 1Gi |  | ||||||
|   storageClassName: smb-oldmusic |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolumeClaim |  | ||||||
| metadata: | metadata: | ||||||
|   name: logitech-media-server-config |   name: logitech-media-server-config | ||||||
| spec: | spec: | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ spec: | ||||||
|         app.kubernetes.io/name: logitech-media-server |         app.kubernetes.io/name: logitech-media-server | ||||||
|     spec: |     spec: | ||||||
|       containers: |       containers: | ||||||
|       - image: doliana/logitech-media-server:2021_11_06-8.2.0 |       - image: lmscommunity/lyrionmusicserver:9.1.0 | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         livenessProbe: |         livenessProbe: | ||||||
|           failureThreshold: 10 |           failureThreshold: 10 | ||||||
|  | @ -61,27 +61,14 @@ spec: | ||||||
|         terminationMessagePath: /dev/termination-log |         terminationMessagePath: /dev/termination-log | ||||||
|         terminationMessagePolicy: File |         terminationMessagePolicy: File | ||||||
|         volumeMounts: |         volumeMounts: | ||||||
|         - mountPath: /srv/squeezebox |  | ||||||
|           name: config |  | ||||||
|         - mountPath: /smbmusic |  | ||||||
|           name: smbmusic |  | ||||||
|         - mountPath: /smboldmusic |  | ||||||
|           name: smboldmusic |  | ||||||
|       dnsPolicy: ClusterFirst |  | ||||||
|       initContainers: |  | ||||||
|       - command: |  | ||||||
|         - sh |  | ||||||
|         - -c |  | ||||||
|         - mkdir /smbmusic; mkdir -pv /config/playlists /config/config; chown -Rc 1000:1000 |  | ||||||
|           /config |  | ||||||
|         image: doliana/logitech-media-server:2023_04_15-8.3.1 |  | ||||||
|         imagePullPolicy: IfNotPresent |  | ||||||
|         name: init-config |  | ||||||
|         terminationMessagePath: /dev/termination-log |  | ||||||
|         terminationMessagePolicy: File |  | ||||||
|         volumeMounts: |  | ||||||
|         - mountPath: /config |         - mountPath: /config | ||||||
|           name: config |           name: config | ||||||
|  |         - mountPath: /music | ||||||
|  |           name: smbmusic | ||||||
|  |         - mountPath: /playlist | ||||||
|  |           name: config | ||||||
|  |           subPath: playlist | ||||||
|  |       dnsPolicy: ClusterFirst | ||||||
|       restartPolicy: Always |       restartPolicy: Always | ||||||
|       schedulerName: default-scheduler |       schedulerName: default-scheduler | ||||||
|       terminationGracePeriodSeconds: 30 |       terminationGracePeriodSeconds: 30 | ||||||
|  | @ -92,9 +79,6 @@ spec: | ||||||
|       - name: smbmusic |       - name: smbmusic | ||||||
|         persistentVolumeClaim: |         persistentVolumeClaim: | ||||||
|           claimName: smb-music |           claimName: smb-music | ||||||
|       - name: smboldmusic |  | ||||||
|         persistentVolumeClaim: |  | ||||||
|           claimName: smb-oldmusic |  | ||||||
|   updateStrategy: |   updateStrategy: | ||||||
|     rollingUpdate: |     rollingUpdate: | ||||||
|       partition: 0 |       partition: 0 | ||||||
|  |  | ||||||
|  | @ -21,7 +21,7 @@ spec: | ||||||
|         app.kubernetes.io/name: mosquitto |         app.kubernetes.io/name: mosquitto | ||||||
|     spec: |     spec: | ||||||
|       containers: |       containers: | ||||||
|       - image: eclipse-mosquitto:1.6.12 |       - image: eclipse-mosquitto:1.6.15 | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         livenessProbe: |         livenessProbe: | ||||||
|           failureThreshold: 3 |           failureThreshold: 3 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ helmCharts: | ||||||
|   includeCRDs: true |   includeCRDs: true | ||||||
|   namespace: node-feature-discovery |   namespace: node-feature-discovery | ||||||
|   releaseName: node-feature-discovery |   releaseName: node-feature-discovery | ||||||
|   version: 0.16.6 |   version: 0.17.2 | ||||||
|   repo: https://kubernetes-sigs.github.io/node-feature-discovery/charts |   repo: https://kubernetes-sigs.github.io/node-feature-discovery/charts | ||||||
|   valuesInLine: |   valuesInLine: | ||||||
|     master: |     master: | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ helmCharts: | ||||||
|   includeCRDs: true |   includeCRDs: true | ||||||
|   namespace: nvidia-device-plugin |   namespace: nvidia-device-plugin | ||||||
|   releaseName:  nvidia-device-plugin |   releaseName:  nvidia-device-plugin | ||||||
|   version: 0.17.0 |   version: 0.17.1 | ||||||
|   repo: https://nvidia.github.io/k8s-device-plugin |   repo: https://nvidia.github.io/k8s-device-plugin | ||||||
|   valuesInline: |   valuesInline: | ||||||
|     nodeSelector: "feature.node.kubernetes.io/pci-0300_10de_13c0_1569_13c0.present=true" |     nodeSelector: "feature.node.kubernetes.io/pci-0300_10de_13c0_1569_13c0.present=true" | ||||||
|  |  | ||||||
							
								
								
									
										62
									
								
								apps-kustomized/paperless-ngx/kustomization.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								apps-kustomized/paperless-ngx/kustomization.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,62 @@ | ||||||
|  | 
 | ||||||
|  | apiVersion: kustomize.config.k8s.io/v1beta1 | ||||||
|  | kind: Kustomization | ||||||
|  | 
 | ||||||
|  | helmCharts:       | ||||||
|  | - name: paperless-ngx | ||||||
|  |   repo: https://charts.gabe565.com | ||||||
|  |   version: 0.24.1 | ||||||
|  |   releaseName: paperless-ngx | ||||||
|  |   namespace: paperless-ngx | ||||||
|  |   valuesInline: | ||||||
|  |     persistence: | ||||||
|  |       data: | ||||||
|  |         enabled: "true" | ||||||
|  |         size: "1Gi" | ||||||
|  |         accessMode: ReadWriteOnce | ||||||
|  |         storageClass: "longhorn-fast" | ||||||
|  |       media: | ||||||
|  |         enabled: "true" | ||||||
|  |         size: "8Gi" | ||||||
|  |         accessMode: ReadWriteOnce | ||||||
|  |         storageClass: "longhorn-fast" | ||||||
|  |       export: | ||||||
|  |         enabled: "true" | ||||||
|  |         size: "1Gi" | ||||||
|  |         accessMode: ReadWriteOnce | ||||||
|  |         storageClass: "longhorn-fast" | ||||||
|  |       consume: | ||||||
|  |         enabled: "true" | ||||||
|  |         size: "1Gi" | ||||||
|  |         accessMode: ReadWriteOnce | ||||||
|  |         storageClass: "smb-scans" | ||||||
|  |     service: | ||||||
|  |       main: | ||||||
|  |         type: LoadBalancer | ||||||
|  |         annotations: | ||||||
|  |           external-dns.alpha.kubernetes.io/hostname: "paperless.martyn.berlin" | ||||||
|  |         ports: | ||||||
|  |           http: | ||||||
|  |             port: 8080 | ||||||
|  |     postgresql: | ||||||
|  |       enabled: "true" | ||||||
|  |       primary: | ||||||
|  |         persistence: | ||||||
|  |           enabled: "true" | ||||||
|  |           storageClass: "longhorn-fast" | ||||||
|  |     env: | ||||||
|  |       TZ: "Europe/Berlin" | ||||||
|  |     resources: | ||||||
|  |       requests: | ||||||
|  |         cpu: "25m" | ||||||
|  |         memory: "511772986" | ||||||
|  |      | ||||||
|  | 
 | ||||||
|  | patches: | ||||||
|  |   - target: | ||||||
|  |       kind: Service | ||||||
|  |       name: paperless-ngx | ||||||
|  |     patch: |- | ||||||
|  |       - op: replace | ||||||
|  |         path: /spec/ports | ||||||
|  |         value: [{"name":"http","port":80,"targetPort":"http","protocol":"TCP"}] | ||||||
|  | @ -16,7 +16,7 @@ spec: | ||||||
|         app: prowlarr |         app: prowlarr | ||||||
|     spec: |     spec: | ||||||
|       containers: |       containers: | ||||||
|       - image: hotio/prowlarr:release-1.26.1.4844 |       - image: hotio/prowlarr:release-1.31.2.4975 | ||||||
|         imagePullPolicy: Always |         imagePullPolicy: Always | ||||||
|         name: prowlarr |         name: prowlarr | ||||||
|         ports: |         ports: | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ spec: | ||||||
|         app: radarr |         app: radarr | ||||||
|     spec: |     spec: | ||||||
|       containers: |       containers: | ||||||
|       - image: hotio/radarr:release-5.18.4.9674 |       - image: hotio/radarr:release-5.19.3.9730 | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         name: radarr |         name: radarr | ||||||
|         ports: |         ports: | ||||||
|  |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| apiVersion: ceph.rook.io/v1 |  | ||||||
| kind: CephBlockPool |  | ||||||
| metadata: |  | ||||||
|   name: replicapool-ssd |  | ||||||
|   namespace: rook-ceph |  | ||||||
| spec: |  | ||||||
|   failureDomain: host |  | ||||||
|   replicated: |  | ||||||
|     size: 2 |  | ||||||
|  | @ -1,47 +0,0 @@ | ||||||
| apiVersion: ceph.rook.io/v1 |  | ||||||
| kind: CephCluster |  | ||||||
| metadata: |  | ||||||
|   name: ssd-cluster |  | ||||||
|   namespace: rook-ceph # namespace:cluster |  | ||||||
| spec: |  | ||||||
|   dataDirHostPath: /var/lib/rook-cluster-ssd |  | ||||||
|   cephVersion: |  | ||||||
|     image: quay.io/ceph/ceph:v18 |  | ||||||
|     allowUnsupported: true |  | ||||||
|   mon: |  | ||||||
|     count: 1 |  | ||||||
|     allowMultiplePerNode: true |  | ||||||
|   mgr: |  | ||||||
|     count: 1 |  | ||||||
|     allowMultiplePerNode: true |  | ||||||
|   dashboard: |  | ||||||
|     enabled: true |  | ||||||
|   crashCollector: |  | ||||||
|     disable: true |  | ||||||
|   storage: |  | ||||||
|     useAllNodes: false |  | ||||||
|     useAllDevices: false |  | ||||||
|     #deviceFilter: |  | ||||||
|     nodes: |  | ||||||
|     - name: "talos-7oq-vur" |  | ||||||
|       devices: |  | ||||||
|       - name: "sda" |  | ||||||
|         config: |  | ||||||
|           osdsPerDevice: "1" |  | ||||||
|     - name: "talos-iqd-ysy" |  | ||||||
|       devices: |  | ||||||
|       - name: "sda" |  | ||||||
|         config: |  | ||||||
|           osdsPerDevice: "1" |  | ||||||
|   monitoring: |  | ||||||
|     enabled: false |  | ||||||
|   healthCheck: |  | ||||||
|     daemonHealth: |  | ||||||
|       mon: |  | ||||||
|         interval: 45s |  | ||||||
|         timeout: 600s |  | ||||||
|   priorityClassNames: |  | ||||||
|     all: system-node-critical |  | ||||||
|     mgr: system-cluster-critical |  | ||||||
|   disruptionManagement: |  | ||||||
|     managePodBudgets: true |  | ||||||
|  | @ -1,13 +0,0 @@ | ||||||
| kind: ConfigMap |  | ||||||
| apiVersion: v1 |  | ||||||
| metadata: |  | ||||||
|   name: rook-config-override |  | ||||||
|   namespace: rook-ceph # namespace:cluster |  | ||||||
| data: |  | ||||||
|   config: | |  | ||||||
|     [global] |  | ||||||
|     osd_pool_default_size = 1 |  | ||||||
|     mon_warn_on_pool_no_redundancy = false |  | ||||||
|     bdev_flock_retry = 20 |  | ||||||
|     bluefs_buffered_io = false |  | ||||||
|     mon_data_avail_warn = 10 |  | ||||||
|  | @ -1,130 +0,0 @@ | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: rook-ceph-tools |  | ||||||
|   namespace: rook-ceph # namespace:cluster |  | ||||||
|   labels: |  | ||||||
|     app: rook-ceph-tools |  | ||||||
| spec: |  | ||||||
|   replicas: 1 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: rook-ceph-tools |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: rook-ceph-tools |  | ||||||
|     spec: |  | ||||||
|       dnsPolicy: ClusterFirstWithHostNet |  | ||||||
|       containers: |  | ||||||
|         - name: rook-ceph-tools |  | ||||||
|           image: quay.io/ceph/ceph:v17.2.6 |  | ||||||
|           command: |  | ||||||
|             - /bin/bash |  | ||||||
|             - -c |  | ||||||
|             - | |  | ||||||
|               # Replicate the script from toolbox.sh inline so the ceph image |  | ||||||
|               # can be run directly, instead of requiring the rook toolbox |  | ||||||
|               CEPH_CONFIG="/etc/ceph/ceph.conf" |  | ||||||
|               MON_CONFIG="/etc/rook/mon-endpoints" |  | ||||||
|               KEYRING_FILE="/etc/ceph/keyring" |  | ||||||
| 
 |  | ||||||
|               # create a ceph config file in its default location so ceph/rados tools can be used |  | ||||||
|               # without specifying any arguments |  | ||||||
|               write_endpoints() { |  | ||||||
|                 endpoints=$(cat ${MON_CONFIG}) |  | ||||||
| 
 |  | ||||||
|                 # filter out the mon names |  | ||||||
|                 # external cluster can have numbers or hyphens in mon names, handling them in regex |  | ||||||
|                 # shellcheck disable=SC2001 |  | ||||||
|                 mon_endpoints=$(echo "${endpoints}"| sed 's/[a-z0-9_-]\+=//g') |  | ||||||
| 
 |  | ||||||
|                 DATE=$(date) |  | ||||||
|                 echo "$DATE writing mon endpoints to ${CEPH_CONFIG}: ${endpoints}" |  | ||||||
|                   cat <<EOF > ${CEPH_CONFIG} |  | ||||||
|               [global] |  | ||||||
|               mon_host = ${mon_endpoints} |  | ||||||
| 
 |  | ||||||
|               [client.admin] |  | ||||||
|               keyring = ${KEYRING_FILE} |  | ||||||
|               EOF |  | ||||||
|               } |  | ||||||
| 
 |  | ||||||
|               # watch the endpoints config file and update if the mon endpoints ever change |  | ||||||
|               watch_endpoints() { |  | ||||||
|                 # get the timestamp for the target of the soft link |  | ||||||
|                 real_path=$(realpath ${MON_CONFIG}) |  | ||||||
|                 initial_time=$(stat -c %Z "${real_path}") |  | ||||||
|                 while true; do |  | ||||||
|                   real_path=$(realpath ${MON_CONFIG}) |  | ||||||
|                   latest_time=$(stat -c %Z "${real_path}") |  | ||||||
| 
 |  | ||||||
|                   if [[ "${latest_time}" != "${initial_time}" ]]; then |  | ||||||
|                     write_endpoints |  | ||||||
|                     initial_time=${latest_time} |  | ||||||
|                   fi |  | ||||||
| 
 |  | ||||||
|                   sleep 10 |  | ||||||
|                 done |  | ||||||
|               } |  | ||||||
| 
 |  | ||||||
|               # read the secret from an env var (for backward compatibility), or from the secret file |  | ||||||
|               ceph_secret=${ROOK_CEPH_SECRET} |  | ||||||
|               if [[ "$ceph_secret" == "" ]]; then |  | ||||||
|                 ceph_secret=$(cat /var/lib/rook-ceph-mon/secret.keyring) |  | ||||||
|               fi |  | ||||||
| 
 |  | ||||||
|               # create the keyring file |  | ||||||
|               cat <<EOF > ${KEYRING_FILE} |  | ||||||
|               [${ROOK_CEPH_USERNAME}] |  | ||||||
|               key = ${ceph_secret} |  | ||||||
|               EOF |  | ||||||
| 
 |  | ||||||
|               # write the initial config file |  | ||||||
|               write_endpoints |  | ||||||
| 
 |  | ||||||
|               # continuously update the mon endpoints if they fail over |  | ||||||
|               watch_endpoints |  | ||||||
|           imagePullPolicy: IfNotPresent |  | ||||||
|           tty: true |  | ||||||
|           securityContext: |  | ||||||
|             runAsNonRoot: true |  | ||||||
|             runAsUser: 2016 |  | ||||||
|             runAsGroup: 2016 |  | ||||||
|             capabilities: |  | ||||||
|               drop: ["ALL"] |  | ||||||
|           env: |  | ||||||
|             - name: ROOK_CEPH_USERNAME |  | ||||||
|               valueFrom: |  | ||||||
|                 secretKeyRef: |  | ||||||
|                   name: rook-ceph-mon |  | ||||||
|                   key: ceph-username |  | ||||||
|           volumeMounts: |  | ||||||
|             - mountPath: /etc/ceph |  | ||||||
|               name: ceph-config |  | ||||||
|             - name: mon-endpoint-volume |  | ||||||
|               mountPath: /etc/rook |  | ||||||
|             - name: ceph-admin-secret |  | ||||||
|               mountPath: /var/lib/rook-ceph-mon |  | ||||||
|               readOnly: true |  | ||||||
|       volumes: |  | ||||||
|         - name: ceph-admin-secret |  | ||||||
|           secret: |  | ||||||
|             secretName: rook-ceph-mon |  | ||||||
|             optional: false |  | ||||||
|             items: |  | ||||||
|               - key: ceph-secret |  | ||||||
|                 path: secret.keyring |  | ||||||
|         - name: mon-endpoint-volume |  | ||||||
|           configMap: |  | ||||||
|             name: rook-ceph-mon-endpoints |  | ||||||
|             items: |  | ||||||
|               - key: data |  | ||||||
|                 path: mon-endpoints |  | ||||||
|         - name: ceph-config |  | ||||||
|           emptyDir: {} |  | ||||||
|       tolerations: |  | ||||||
|         - key: "node.kubernetes.io/unreachable" |  | ||||||
|           operator: "Exists" |  | ||||||
|           effect: "NoExecute" |  | ||||||
|           tolerationSeconds: 5 |  | ||||||
|  | @ -1,17 +0,0 @@ | ||||||
| apiVersion: ceph.rook.io/v1 |  | ||||||
| kind: CephFilesystem |  | ||||||
| metadata: |  | ||||||
|   name: ssdfs |  | ||||||
|   namespace: rook-ceph |  | ||||||
| spec: |  | ||||||
|   metadataPool: |  | ||||||
|     replicated: |  | ||||||
|       size: 1 |  | ||||||
|   dataPools: |  | ||||||
|     - name: replicated |  | ||||||
|       replicated: |  | ||||||
|         size: 1 |  | ||||||
|   preserveFilesystemOnDelete: true |  | ||||||
|   metadataServer: |  | ||||||
|     activeCount: 1 |  | ||||||
|     activeStandby: true |  | ||||||
|  | @ -1,24 +0,0 @@ | ||||||
| apiVersion: storage.k8s.io/v1 |  | ||||||
| kind: StorageClass |  | ||||||
| metadata: |  | ||||||
|    name: rook-cephfs-ssd |  | ||||||
| # Change "rook-ceph" provisioner prefix to match the operator namespace if needed |  | ||||||
| provisioner: rook-ceph.cephfs.csi.ceph.com |  | ||||||
| parameters: |  | ||||||
|     # clusterID is the namespace where the rook cluster is running |  | ||||||
|     clusterID: rook-ceph |  | ||||||
|     fsName: ssdfs |  | ||||||
| 
 |  | ||||||
|     # Ceph pool into which the image shall be created |  | ||||||
|     pool: ssdfs-replicated |  | ||||||
| 
 |  | ||||||
|     # The secrets contain Ceph admin credentials. |  | ||||||
|     csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner |  | ||||||
|     csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph |  | ||||||
|     csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner |  | ||||||
|     csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph |  | ||||||
|     csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node |  | ||||||
|     csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph |  | ||||||
| 
 |  | ||||||
| # Delete the rbd volume when a PVC is deleted |  | ||||||
| reclaimPolicy: Delete |  | ||||||
|  | @ -1,32 +0,0 @@ | ||||||
| apiVersion: storage.k8s.io/v1 |  | ||||||
| kind: StorageClass |  | ||||||
| metadata: |  | ||||||
|    name: rook-ceph-block-ssd |  | ||||||
|    annotations: |  | ||||||
|        storageclass.kubernetes.io/is-default-class: true |  | ||||||
| # Change "rook-ceph" provisioner prefix to match the operator namespace if needed |  | ||||||
| provisioner: rook-ceph.rbd.csi.ceph.com |  | ||||||
| parameters: |  | ||||||
|     # clusterID is the namespace where the rook cluster is running |  | ||||||
|     clusterID: rook-ceph |  | ||||||
|     # Ceph pool into which the RBD image shall be created |  | ||||||
|     pool: replicapool-ssd |  | ||||||
| 
 |  | ||||||
|     # RBD image format. Defaults to "2". |  | ||||||
|     imageFormat: "2" |  | ||||||
| 
 |  | ||||||
|     # RBD image features. Available for imageFormat: "2". CSI RBD currently supports only `layering` feature. |  | ||||||
|     imageFeatures: layering |  | ||||||
| 
 |  | ||||||
|     # The secrets contain Ceph admin credentials. |  | ||||||
|     csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner |  | ||||||
|     csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph |  | ||||||
|     csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node |  | ||||||
|     csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph |  | ||||||
| 
 |  | ||||||
|     # Specify the filesystem type of the volume. If not specified, csi-provisioner |  | ||||||
|     # will set default as `ext4`. |  | ||||||
|     csi.storage.k8s.io/fstype: xfs |  | ||||||
| 
 |  | ||||||
| # Delete the rbd volume when a PVC is deleted |  | ||||||
| reclaimPolicy: Delete |  | ||||||
|  | @ -38,7 +38,7 @@ metadata: | ||||||
|   annotations: |   annotations: | ||||||
|     configmap.reloader.stakater.com/reload: "ser2net" |     configmap.reloader.stakater.com/reload: "ser2net" | ||||||
| spec: | spec: | ||||||
|   replicas: 1 |   replicas: 0 | ||||||
|   strategy: |   strategy: | ||||||
|     type: Recreate |     type: Recreate | ||||||
|   selector: |   selector: | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ metadata: | ||||||
|   name: smb-films |   name: smb-films | ||||||
| provisioner: smb.csi.k8s.io | provisioner: smb.csi.k8s.io | ||||||
| parameters: | parameters: | ||||||
|   source: "//172.20.0.125/films" |   source: "//172.20.0.70/films" | ||||||
|   csi.storage.k8s.io/node-stage-secret-name: smb-creds |   csi.storage.k8s.io/node-stage-secret-name: smb-creds | ||||||
|   csi.storage.k8s.io/node-stage-secret-namespace: kube-system |   csi.storage.k8s.io/node-stage-secret-namespace: kube-system | ||||||
| reclaimPolicy: Retain | reclaimPolicy: Retain | ||||||
|  |  | ||||||
|  | @ -1,10 +1,10 @@ | ||||||
| apiVersion: storage.k8s.io/v1 | apiVersion: storage.k8s.io/v1 | ||||||
| kind: StorageClass | kind: StorageClass | ||||||
| metadata: | metadata: | ||||||
|   name: smb-oldseries |   name: smb-s3 | ||||||
| provisioner: smb.csi.k8s.io | provisioner: smb.csi.k8s.io | ||||||
| parameters: | parameters: | ||||||
|   source: "//hp40l/disk2/oldseries" |   source: "//172.20.0.69/s3" | ||||||
|   csi.storage.k8s.io/node-stage-secret-name: smb-creds |   csi.storage.k8s.io/node-stage-secret-name: smb-creds | ||||||
|   csi.storage.k8s.io/node-stage-secret-namespace: kube-system |   csi.storage.k8s.io/node-stage-secret-namespace: kube-system | ||||||
| reclaimPolicy: Retain | reclaimPolicy: Retain | ||||||
|  | @ -4,7 +4,7 @@ metadata: | ||||||
|   name: smb-series |   name: smb-series | ||||||
| provisioner: smb.csi.k8s.io | provisioner: smb.csi.k8s.io | ||||||
| parameters: | parameters: | ||||||
|   source: "//hp40l/disk2/series" |   source: "//172.20.0.70/series" | ||||||
|   csi.storage.k8s.io/node-stage-secret-name: smb-creds |   csi.storage.k8s.io/node-stage-secret-name: smb-creds | ||||||
|   csi.storage.k8s.io/node-stage-secret-namespace: kube-system |   csi.storage.k8s.io/node-stage-secret-namespace: kube-system | ||||||
| reclaimPolicy: Retain | reclaimPolicy: Retain | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								apps-kustomized/tailscale-proxy/configmap.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								apps-kustomized/tailscale-proxy/configmap.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: ConfigMap | ||||||
|  | metadata: | ||||||
|  |   name: tailscale-script | ||||||
|  | data: | ||||||
|  |   script.sh: | | ||||||
|  |     tailscaled --socks5-server=localhost:1055 --outbound-http-proxy-listen=localhost:1055 --tun=userspace-networking & | ||||||
|  |     tailscale up --authkey=$TS_AUTHKEY --advertise-tags=tag:k8s --hostname k8s-tailscale-proxy & | ||||||
|  |     sleep 3 | ||||||
|  |     echo "Waiting for $COUNTRY to do something" | ||||||
|  |     while ! tailscale exit-node list 2>/dev/null | grep $COUNTRY >/dev/null; do echo -n . ;sleep 5; done | ||||||
|  |     tailscale set --exit-node $(tailscale exit-node list | grep $COUNTRY | cut -f2 -d' ' | shuf | head -n1) | ||||||
|  |     while true; do sleep 1; done | ||||||
							
								
								
									
										100
									
								
								apps-kustomized/tailscale-proxy/deploy.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								apps-kustomized/tailscale-proxy/deploy.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,100 @@ | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app: tailscale-proxy | ||||||
|  |   name: tailscale-proxy | ||||||
|  | spec: | ||||||
|  |   replicas: 1 | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: tailscale-proxy | ||||||
|  |   strategy: | ||||||
|  |     rollingUpdate: | ||||||
|  |       maxSurge: 25% | ||||||
|  |       maxUnavailable: 25% | ||||||
|  |     type: RollingUpdate | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app: tailscale-proxy | ||||||
|  |     spec: | ||||||
|  |       containers: | ||||||
|  |       - command: | ||||||
|  |         - /bin/sh | ||||||
|  |         - -c | ||||||
|  |         - 'sh /script/script.sh' | ||||||
|  |         env: | ||||||
|  |         - name: TS_KUBE_SECRET | ||||||
|  |           value: tailscale | ||||||
|  |         - name: COUNTRY | ||||||
|  |           value: Switzerland | ||||||
|  |         - name: TS_AUTHKEY | ||||||
|  |           valueFrom: | ||||||
|  |             secretKeyRef: | ||||||
|  |               key: TS_AUTHKEY | ||||||
|  |               name: tailscale-auth | ||||||
|  |         image: ghcr.io/tailscale/tailscale:v1.80.3 | ||||||
|  |         imagePullPolicy: IfNotPresent | ||||||
|  |         startupProbe: | ||||||
|  |           exec: | ||||||
|  |             command: | ||||||
|  |               - /bin/sh | ||||||
|  |               - -c | ||||||
|  |               - tailscale ip | grep ^100 > /dev/null | ||||||
|  |           periodSeconds: 30 | ||||||
|  |           failureThreshold: 30 | ||||||
|  |         livenessProbe: | ||||||
|  |           exec: | ||||||
|  |             command: | ||||||
|  |               - /bin/sh | ||||||
|  |               - -c | ||||||
|  |               - tailscale ip | grep ^100 > /dev/null | ||||||
|  |           periodSeconds: 30 | ||||||
|  |           failureThreshold: 2 | ||||||
|  |         readinessProbe: | ||||||
|  |           exec: | ||||||
|  |             command: | ||||||
|  |               - /bin/sh | ||||||
|  |               - -c | ||||||
|  |               - http_proxy=127.0.0.1:1055 wget -O- ifconfig.co/country 2>&1 | grep $COUNTRY > /dev/null | ||||||
|  |           initialDelaySeconds: 60 | ||||||
|  |           periodSeconds: 60 | ||||||
|  |           failureThreshold: 3 | ||||||
|  |         name: tailscale | ||||||
|  |         securityContext: | ||||||
|  |           privileged: true | ||||||
|  |           runAsGroup: 0 | ||||||
|  |           runAsUser: 0 | ||||||
|  |         terminationMessagePath: /dev/termination-log | ||||||
|  |         terminationMessagePolicy: File | ||||||
|  |         volumeMounts: | ||||||
|  |         - mountPath: /var/run/secrets/kubernetes.io/serviceaccount | ||||||
|  |           name: kube-api-access-t4rzn | ||||||
|  |           readOnly: true | ||||||
|  |         - mountPath: /script | ||||||
|  |           name: script | ||||||
|  |       serviceAccount: tailscale | ||||||
|  |       serviceAccountName: tailscale | ||||||
|  |       volumes: | ||||||
|  |       - name: script | ||||||
|  |         configMap: | ||||||
|  |           name: tailscale-script | ||||||
|  |       - name: kube-api-access-t4rzn | ||||||
|  |         projected: | ||||||
|  |           defaultMode: 420 | ||||||
|  |           sources: | ||||||
|  |           - serviceAccountToken: | ||||||
|  |               expirationSeconds: 3607 | ||||||
|  |               path: token | ||||||
|  |           - configMap: | ||||||
|  |               items: | ||||||
|  |               - key: ca.crt | ||||||
|  |                 path: ca.crt | ||||||
|  |               name: kube-root-ca.crt | ||||||
|  |           - downwardAPI: | ||||||
|  |               items: | ||||||
|  |               - fieldRef: | ||||||
|  |                   apiVersion: v1 | ||||||
|  |                   fieldPath: metadata.namespace | ||||||
|  |                 path: namespace | ||||||
							
								
								
									
										4
									
								
								apps-kustomized/tailscale-proxy/sa.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								apps-kustomized/tailscale-proxy/sa.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: ServiceAccount | ||||||
|  | metadata: | ||||||
|  |   name: tailscale | ||||||
							
								
								
									
										15
									
								
								apps-kustomized/tailscale-proxy/svc.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								apps-kustomized/tailscale-proxy/svc.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app: tailscale-proxy | ||||||
|  |     app.kubernetes.io/instance: tailscale-proxy | ||||||
|  |   name: tailscale-proxy | ||||||
|  | spec: | ||||||
|  |   ports: | ||||||
|  |   - port: 1055 | ||||||
|  |     protocol: TCP | ||||||
|  |     targetPort: 1055 | ||||||
|  |   selector: | ||||||
|  |     app: tailscale-proxy | ||||||
|  |   type: LoadBalancer | ||||||
|  | @ -14,6 +14,7 @@ spec: | ||||||
|       labels: |       labels: | ||||||
|         app: qbittorrent |         app: qbittorrent | ||||||
|     spec: |     spec: | ||||||
|  |       initContainers: | ||||||
|       containers: |       containers: | ||||||
|       - image: qbittorrentofficial/qbittorrent-nox:latest |       - image: qbittorrentofficial/qbittorrent-nox:latest | ||||||
|         name: qbittorrent |         name: qbittorrent | ||||||
|  | @ -34,40 +35,6 @@ spec: | ||||||
|           value: "/config" |           value: "/config" | ||||||
|         - name: QBT_DOWNLOADS |         - name: QBT_DOWNLOADS | ||||||
|           value: "/downloads" |           value: "/downloads" | ||||||
|       - env: |  | ||||||
|         - name: TS_KUBE_SECRET |  | ||||||
|           value: tailscale |  | ||||||
|         - name: TS_USERSPACE |  | ||||||
|           value: "false" |  | ||||||
|         - name: TS_OUTBOUND_HTTP_PROXY_LISTEN |  | ||||||
|           value: "localhost:1055" |  | ||||||
|         - name: TS_SOCKS5_SERVER |  | ||||||
|           value: "localhost:1055" |  | ||||||
|         - name: TS_EXTRA_ARGS |  | ||||||
|           value: "--exit-node=100.90.55.121" |  | ||||||
|         - name: TS_AUTHKEY |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               key: TS_AUTHKEY |  | ||||||
|               name: tailscale-auth |  | ||||||
|               optional: true |  | ||||||
|         livenessProbe: |  | ||||||
|           exec: |  | ||||||
|             command: |  | ||||||
|             - ping |  | ||||||
|             - -c1 |  | ||||||
|             - 100.100.100.100 |  | ||||||
|           initialDelaySeconds: 120 |  | ||||||
|           periodSeconds: 5 |  | ||||||
|         image: ghcr.io/tailscale/tailscale:latest |  | ||||||
|         name: ts-sidecar |  | ||||||
|         securityContext: |  | ||||||
|           runAsGroup: 1000 |  | ||||||
|           runAsUser: 1000 |  | ||||||
|         volumeMounts: |  | ||||||
|         - mountPath: /var/run/secrets/kubernetes.io/serviceaccount |  | ||||||
|           name: kube-api-access-t4rzn |  | ||||||
|           readOnly: true |  | ||||||
|       preemptionPolicy: PreemptLowerPriority |       preemptionPolicy: PreemptLowerPriority | ||||||
|       priority: 0 |       priority: 0 | ||||||
|       serviceAccountName: tailscale |       serviceAccountName: tailscale | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ spec: | ||||||
|           value: en |           value: en | ||||||
|         - name: WHOOGLE_CONFIG_SEARCH_LANGUAGE |         - name: WHOOGLE_CONFIG_SEARCH_LANGUAGE | ||||||
|           value: en |           value: en | ||||||
|         image: benbusby/whoogle-search@sha256:ecccdb598f890140bf5564ea0307d3a72871ab3d14fbf22e308b904846e5c590 |         image: benbusby/whoogle-search@sha256:5bbb30fc4cf67563b48529c5291813b3d49c290e1e8b9e3aaa5081e9cb6e40c0 | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         livenessProbe: |         livenessProbe: | ||||||
|           failureThreshold: 3 |           failureThreshold: 3 | ||||||
|  |  | ||||||
|  | @ -8,4 +8,4 @@ spec: | ||||||
|   storageClassName: longhorn-fast |   storageClassName: longhorn-fast | ||||||
|   resources: |   resources: | ||||||
|     requests: |     requests: | ||||||
|       storage: 128Mi |       storage: 1280Mi | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ spec: | ||||||
|   source: |   source: | ||||||
|     chart: cilium |     chart: cilium | ||||||
|     repoURL: https://helm.cilium.io/ |     repoURL: https://helm.cilium.io/ | ||||||
|     targetRevision: 1.17.1 |     targetRevision: 1.17.2 | ||||||
|     helm: |     helm: | ||||||
|       parameters: |       parameters: | ||||||
|         - name: ipam.mode |         - name: ipam.mode | ||||||
|  |  | ||||||
|  | @ -14,6 +14,10 @@ spec: | ||||||
|     targetRevision: 4.12.0 |     targetRevision: 4.12.0 | ||||||
|     helm: |     helm: | ||||||
|       parameters: |       parameters: | ||||||
|  |       - name: controller.ingressClassResource.default | ||||||
|  |         value: "true" | ||||||
|  |       - name: controller.config.annotations-risk-level | ||||||
|  |         value: "Critical" | ||||||
|       - name: controller.service.type |       - name: controller.service.type | ||||||
|         value: LoadBalancer |         value: LoadBalancer | ||||||
|       - name: controller.allowSnippetAnnotations |       - name: controller.allowSnippetAnnotations | ||||||
|  | @ -33,6 +37,11 @@ spec: | ||||||
|           more_set_headers -a "X-Robots-Tag: anthropic-ai: none"; |           more_set_headers -a "X-Robots-Tag: anthropic-ai: none"; | ||||||
|           more_set_headers -a "X-Robots-Tag: CCBot: none"; |           more_set_headers -a "X-Robots-Tag: CCBot: none"; | ||||||
|           more_set_headers -a "X-Robots-Tag: semrushbot: none"; |           more_set_headers -a "X-Robots-Tag: semrushbot: none"; | ||||||
|  |           more_set_headers -a "X-Robots-Tag: Amazonbot: none"; | ||||||
|  |           more_set_headers -a "X-Robots-Tag: dotbot: none"; | ||||||
|  |           more_set_headers -a "X-Robots-Tag: AhrefsBot: none"; | ||||||
|  |       - name: controller.config.block-user-agents | ||||||
|  |         value: "~*Amazonbot,~*SemrushBot,~*DotBot,~*Ahrefsbot,~*GPT" | ||||||
|   syncPolicy: |   syncPolicy: | ||||||
|     automated: |     automated: | ||||||
|       selfHeal: true |       selfHeal: true | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ spec: | ||||||
|   source: |   source: | ||||||
|     chart: cert-manager |     chart: cert-manager | ||||||
|     repoURL: https://charts.jetstack.io |     repoURL: https://charts.jetstack.io | ||||||
|     targetRevision: v1.13.1 |     targetRevision: v1.17.1 | ||||||
|     helm: |     helm: | ||||||
|       parameters: |       parameters: | ||||||
|       - name: installCRDs |       - name: installCRDs | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ spec: | ||||||
|   source: |   source: | ||||||
|     chart: secrets-store-csi-driver |     chart: secrets-store-csi-driver | ||||||
|     repoURL: https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts |     repoURL: https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts | ||||||
|     targetRevision: 1.3.4 |     targetRevision: 1.4.8 | ||||||
|   syncPolicy: |   syncPolicy: | ||||||
|     automated: |     automated: | ||||||
|       selfHeal: true |       selfHeal: true | ||||||
|  |  | ||||||
|  | @ -1,44 +0,0 @@ | ||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: bikerwitch |  | ||||||
|   namespace: argocd |  | ||||||
| spec: |  | ||||||
|   destination: |  | ||||||
|     namespace: bikerwitch |  | ||||||
|     server: https://kubernetes.default.svc |  | ||||||
|   project: default |  | ||||||
|   source: |  | ||||||
|     helm: |  | ||||||
|       parameters: |  | ||||||
|       - name: service.type |  | ||||||
|         value: LoadBalancer |  | ||||||
|       - name: persistence.enabled |  | ||||||
|         value: "true" |  | ||||||
|       - name: persistence.storageClass |  | ||||||
|         value: "longhorn-fast" |  | ||||||
|       - name: image.repository |  | ||||||
|         value: drupal |  | ||||||
|       - name: image.tag |  | ||||||
|         value: 9.4-php8.0-apache |  | ||||||
|       values: |- |  | ||||||
|         ingress: |  | ||||||
|           enabled: true |  | ||||||
|           annotations: |  | ||||||
|             cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|             kubernetes.io/ingress.class: nginx |  | ||||||
|             external-dns.alpha.kubernetes.io/target: armnleg.martyn.berlin |  | ||||||
|           hosts: |  | ||||||
|           - host: bikerwitch.martyn.berlin |  | ||||||
|             paths: |  | ||||||
|             - / |  | ||||||
|           - host: www.bikerwitch.org.uk |  | ||||||
|             paths: |  | ||||||
|             - / |  | ||||||
|           tls: |  | ||||||
|           - hosts: |  | ||||||
|             - bikerwitch.martyn.berlin |  | ||||||
|             - www.bikerwitch.org.uk |  | ||||||
|     path: apps-helm/drupal |  | ||||||
|     repoURL: https://git.martyn.berlin/martyn/infra4talos.git |  | ||||||
|     targetRevision: HEAD |  | ||||||
|  | @ -11,7 +11,7 @@ spec: | ||||||
|   source: |   source: | ||||||
|     chart: csi-driver-smb |     chart: csi-driver-smb | ||||||
|     repoURL: https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts |     repoURL: https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts | ||||||
|     targetRevision: v1.13.0 |     targetRevision: v1.17.0 | ||||||
|   syncPolicy: |   syncPolicy: | ||||||
|     automated: |     automated: | ||||||
|       selfHeal: true |       selfHeal: true | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								everything-app/files-web.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								everything-app/files-web.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | apiVersion: argoproj.io/v1alpha1 | ||||||
|  | kind: Application | ||||||
|  | metadata: | ||||||
|  |   name: files-web | ||||||
|  |   namespace: argocd | ||||||
|  | spec: | ||||||
|  |   destination: | ||||||
|  |     namespace: files-web | ||||||
|  |     server: https://kubernetes.default.svc | ||||||
|  |   project: apps | ||||||
|  |   source: | ||||||
|  |     path: apps-kustomized/files-web | ||||||
|  |     repoURL: https://git.martyn.berlin/martyn/infra4talos | ||||||
|  |     targetRevision: HEAD | ||||||
|  |   syncPolicy: | ||||||
|  |     automated: | ||||||
|  |       selfHeal: true | ||||||
|  | @ -1,65 +0,0 @@ | ||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: garage |  | ||||||
|   namespace: argocd |  | ||||||
| spec: |  | ||||||
|   destination: |  | ||||||
|     namespace: garage |  | ||||||
|     server: https://kubernetes.default.svc |  | ||||||
|   project: infra |  | ||||||
|   source: |  | ||||||
|     helm: |  | ||||||
|       valuesObject: |  | ||||||
|         service: |  | ||||||
|           type: LoadBalancer |  | ||||||
|         persistence: |  | ||||||
|           enabled: "true" |  | ||||||
|           meta: |  | ||||||
|             storageClass: longhorn-fast |  | ||||||
|           data: |  | ||||||
|             storageClass: longhorn-spinny |  | ||||||
|             size: "1Gi" |  | ||||||
|         deployment: |  | ||||||
|           replicaCount: "1" |  | ||||||
|         garage: |  | ||||||
|           replicationMode: "1" |  | ||||||
|           s3: |  | ||||||
|             api: |  | ||||||
|               rootDomain: ".s3.files.martyn.berlin" |  | ||||||
|             web: |  | ||||||
|               rootDomain: ".martyn.berlin" |  | ||||||
|         ingress: |  | ||||||
|           s3: |  | ||||||
|             api: |  | ||||||
|               className: "nginx" |  | ||||||
|               enabled: "true" |  | ||||||
|               annotations:  |  | ||||||
|                 external-dns.alpha.kubernetes.io/target: armnleg.martyn.berlin |  | ||||||
|                 cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|                 nginx.ingress.kubernetes.io/proxy-body-size: "700m" |  | ||||||
|               tls: |  | ||||||
|               - hosts: |  | ||||||
|                 - "s3.files.martyn.berlin" |  | ||||||
|               hosts: |  | ||||||
|               - host: s3.files.martyn.berlin |  | ||||||
|                 paths: |  | ||||||
|                 - path: / |  | ||||||
|                   pathType: Prefix |  | ||||||
|             web: |  | ||||||
|               className: "nginx" |  | ||||||
|               enabled: "true" |  | ||||||
|               annotations:  |  | ||||||
|                 external-dns.alpha.kubernetes.io/target: armnleg.martyn.berlin |  | ||||||
|                 cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|               tls: |  | ||||||
|               - hosts: |  | ||||||
|                 - "files.martyn.berlin" |  | ||||||
|               hosts: |  | ||||||
|               - host: files.martyn.berlin |  | ||||||
|                 paths: |  | ||||||
|                 - path: / |  | ||||||
|                   pathType: Prefix |  | ||||||
|     path: script/helm/garage |  | ||||||
|     repoURL: https://git.deuxfleurs.fr/Deuxfleurs/garage |  | ||||||
|     targetRevision: HEAD |  | ||||||
|  | @ -31,7 +31,7 @@ spec: | ||||||
|           annotations: |           annotations: | ||||||
|             external-dns.alpha.kubernetes.io/hostname: nodered.martyn.berlin |             external-dns.alpha.kubernetes.io/hostname: nodered.martyn.berlin | ||||||
|     repoURL: https://k8s-at-home.com/charts/ |     repoURL: https://k8s-at-home.com/charts/ | ||||||
|     targetRevision: 5.3.1 |     targetRevision: 5.4.0 | ||||||
|   syncPolicy: |   syncPolicy: | ||||||
|     automated: |     automated: | ||||||
|       selfHeal: true |       selfHeal: true | ||||||
|  |  | ||||||
|  | @ -9,57 +9,9 @@ spec: | ||||||
|     server: https://kubernetes.default.svc |     server: https://kubernetes.default.svc | ||||||
|   project: apps |   project: apps | ||||||
|   source: |   source: | ||||||
|     chart: paperless-ngx |     path: apps-kustomized/paperless-ngx | ||||||
|     helm: |     repoURL: https://git.martyn.berlin/martyn/infra4talos | ||||||
|       parameters: |     targetRevision: HEAD | ||||||
|       - name: service.main.type |  | ||||||
|         value: "LoadBalancer" |  | ||||||
|       - name: persistence.data.enabled |  | ||||||
|         value: "true" |  | ||||||
|       - name: persistence.data.size |  | ||||||
|         value: "1Gi" |  | ||||||
|       - name: persistence.data.accessMode |  | ||||||
|         value: ReadWriteOnce |  | ||||||
|       - name: persistence.data.storageClass |  | ||||||
|         value: "longhorn-fast" |  | ||||||
|       - name: persistence.media.enabled |  | ||||||
|         value: "true" |  | ||||||
|       - name: persistence.media.size |  | ||||||
|         value: "8Gi" |  | ||||||
|       - name: persistence.media.accessMode |  | ||||||
|         value: ReadWriteOnce |  | ||||||
|       - name: persistence.media.storageClass |  | ||||||
|         value: "longhorn-fast" |  | ||||||
|       - name: persistence.export.enabled |  | ||||||
|         value: "true" |  | ||||||
|       - name: persistence.export.size |  | ||||||
|         value: "1Gi" |  | ||||||
|       - name: persistence.export.accessMode |  | ||||||
|         value: ReadWriteOnce |  | ||||||
|       - name: persistence.export.storageClass |  | ||||||
|         value: "longhorn-fast" |  | ||||||
|       - name: persistence.consume.enabled |  | ||||||
|         value: "true" |  | ||||||
|       - name: persistence.consume.size |  | ||||||
|         value: "1Gi" |  | ||||||
|       - name: persistence.consume.accessMode |  | ||||||
|         value: ReadWriteOnce |  | ||||||
|       - name: persistence.consume.storageClass |  | ||||||
|         value: "smb-scans" |  | ||||||
|       - name: postgresql.enabled |  | ||||||
|         value: "true" |  | ||||||
|       - name: postgresql.primary.persistence.enabled |  | ||||||
|         value: "true" |  | ||||||
|       - name: postgresql.primary.persistence.storageClass |  | ||||||
|         value: "longhorn-fast" |  | ||||||
|       - name: env.TZ |  | ||||||
|         value: "Europe/Berlin" |  | ||||||
|       - name: resources.requests.cpu |  | ||||||
|         value: "25m" |  | ||||||
|       - name: resources.requests.memory |  | ||||||
|         value: "511772986" |  | ||||||
|     repoURL: https://charts.gabe565.com |  | ||||||
|     targetRevision: 0.7.8 |  | ||||||
|   syncPolicy: |   syncPolicy: | ||||||
|     automated: |     automated: | ||||||
|       selfHeal: true |       selfHeal: true | ||||||
|  |  | ||||||
|  | @ -44,6 +44,9 @@ spec: | ||||||
|           - name: scans |           - name: scans | ||||||
|             size: 1Gi |             size: 1Gi | ||||||
|             storageClass: longhorn-fast |             storageClass: longhorn-fast | ||||||
|  |           - name: s3 | ||||||
|  |             size: 20Gi | ||||||
|  |             storageClass: longhorn-fast | ||||||
|     path: apps-helm/samba4 |     path: apps-helm/samba4 | ||||||
|     repoURL: https://git.martyn.berlin/martyn/infra4talos.git |     repoURL: https://git.martyn.berlin/martyn/infra4talos.git | ||||||
|     targetRevision: HEAD |     targetRevision: HEAD | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								everything-app/tailscale-proxy.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								everything-app/tailscale-proxy.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | apiVersion: argoproj.io/v1alpha1 | ||||||
|  | kind: Application | ||||||
|  | metadata: | ||||||
|  |   name: tailscale-proxy | ||||||
|  |   namespace: argocd | ||||||
|  | spec: | ||||||
|  |   destination: | ||||||
|  |     namespace: tailscale-proxy | ||||||
|  |     server: https://kubernetes.default.svc | ||||||
|  |   project: apps | ||||||
|  |   source: | ||||||
|  |     path: apps-kustomized/tailscale-proxy | ||||||
|  |     repoURL: https://git.martyn.berlin/martyn/infra4talos | ||||||
|  |     targetRevision: HEAD | ||||||
|  |   syncPolicy: | ||||||
|  |     automated: | ||||||
|  |       selfHeal: true | ||||||
|  | @ -2,5 +2,11 @@ | ||||||
|   "$schema": "https://docs.renovatebot.com/renovate-schema.json", |   "$schema": "https://docs.renovatebot.com/renovate-schema.json", | ||||||
|   "argocd": { |   "argocd": { | ||||||
| 	  "fileMatch": ["everything-app/.+\\.yaml$"] | 	  "fileMatch": ["everything-app/.+\\.yaml$"] | ||||||
|  |   }, | ||||||
|  |   "kubernetes": { | ||||||
|  | 	  "fileMatch": [ | ||||||
|  | 		  "apps-kustomized/.+\\.yaml$", | ||||||
|  | 		  "apps-helm/.+/tempates/.+\\.yaml" | ||||||
|  | 	  ] | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue