Automated Manifest Update: 2025-12-01 (#2167)
This PR contains newly rendered Kubernetes manifests automatically generated by the CI workflow. Reviewed-on: #2167 Co-authored-by: gitea-bot <gitea-bot@alexlebens.net> Co-committed-by: gitea-bot <gitea-bot@alexlebens.net>
This commit was merged in pull request #2167.
This commit is contained in:
278
clusters/cl01tl/manifests/bazarr/bazarr.yaml
Normal file
278
clusters/cl01tl/manifests/bazarr/bazarr.yaml
Normal file
@@ -0,0 +1,278 @@
|
||||
---
|
||||
# Source: bazarr/templates/persistent-volume.yaml
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: bazarr-nfs-storage
|
||||
namespace: bazarr
|
||||
labels:
|
||||
app.kubernetes.io/name: bazarr-nfs-storage
|
||||
app.kubernetes.io/instance: bazarr
|
||||
app.kubernetes.io/part-of: bazarr
|
||||
spec:
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: nfs-client
|
||||
capacity:
|
||||
storage: 1Gi
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
nfs:
|
||||
path: /volume2/Storage
|
||||
server: synologybond.alexlebens.net
|
||||
mountOptions:
|
||||
- vers=4
|
||||
- minorversion=1
|
||||
- noac
|
||||
---
|
||||
# Source: bazarr/charts/bazarr/templates/common.yaml
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: bazarr-config
|
||||
labels:
|
||||
app.kubernetes.io/instance: bazarr
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: bazarr
|
||||
helm.sh/chart: bazarr-4.4.0
|
||||
annotations:
|
||||
helm.sh/resource-policy: keep
|
||||
namespace: bazarr
|
||||
spec:
|
||||
accessModes:
|
||||
- "ReadWriteOnce"
|
||||
resources:
|
||||
requests:
|
||||
storage: "5Gi"
|
||||
storageClassName: "ceph-block"
|
||||
---
|
||||
# Source: bazarr/templates/persistent-volume-claim.yaml
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: bazarr-nfs-storage
|
||||
namespace: bazarr
|
||||
labels:
|
||||
app.kubernetes.io/name: bazarr-nfs-storage
|
||||
app.kubernetes.io/instance: bazarr
|
||||
app.kubernetes.io/part-of: bazarr
|
||||
spec:
|
||||
volumeName: bazarr-nfs-storage
|
||||
storageClassName: nfs-client
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
---
|
||||
# Source: bazarr/charts/bazarr/templates/common.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: bazarr
|
||||
labels:
|
||||
app.kubernetes.io/instance: bazarr
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: bazarr
|
||||
app.kubernetes.io/service: bazarr
|
||||
helm.sh/chart: bazarr-4.4.0
|
||||
namespace: bazarr
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 6767
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: bazarr
|
||||
app.kubernetes.io/name: bazarr
|
||||
---
|
||||
# Source: bazarr/charts/bazarr/templates/common.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: bazarr
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: bazarr
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: bazarr
|
||||
helm.sh/chart: bazarr-4.4.0
|
||||
namespace: bazarr
|
||||
spec:
|
||||
revisionHistoryLimit: 3
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/name: bazarr
|
||||
app.kubernetes.io/instance: bazarr
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: bazarr
|
||||
app.kubernetes.io/name: bazarr
|
||||
spec:
|
||||
enableServiceLinks: false
|
||||
serviceAccountName: default
|
||||
automountServiceAccountToken: true
|
||||
securityContext:
|
||||
fsGroup: 1000
|
||||
fsGroupChangePolicy: OnRootMismatch
|
||||
runAsGroup: 1000
|
||||
runAsUser: 1000
|
||||
hostIPC: false
|
||||
hostNetwork: false
|
||||
hostPID: false
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- env:
|
||||
- name: TZ
|
||||
value: US/Central
|
||||
- name: PUID
|
||||
value: "1000"
|
||||
- name: PGID
|
||||
value: "1000"
|
||||
image: ghcr.io/linuxserver/bazarr:1.5.3@sha256:2be164c02c0bb311b6c32e57d3d0ddc2813d524e89ab51a3408c1bf6fafecda5
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: main
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 256Mi
|
||||
volumeMounts:
|
||||
- mountPath: /config
|
||||
name: config
|
||||
- mountPath: /mnt/store
|
||||
name: media
|
||||
volumes:
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: bazarr-config
|
||||
- name: media
|
||||
persistentVolumeClaim:
|
||||
claimName: bazarr-nfs-storage
|
||||
---
|
||||
# Source: bazarr/templates/external-secret.yaml
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: bazarr-config-backup-secret
|
||||
namespace: bazarr
|
||||
labels:
|
||||
app.kubernetes.io/name: bazarr-config-backup-secret
|
||||
app.kubernetes.io/instance: bazarr
|
||||
app.kubernetes.io/part-of: bazarr
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
target:
|
||||
template:
|
||||
mergePolicy: Merge
|
||||
engineVersion: v2
|
||||
data:
|
||||
RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/bazarr/bazarr-config"
|
||||
data:
|
||||
- secretKey: BUCKET_ENDPOINT
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cl01tl/volsync/restic/config
|
||||
metadataPolicy: None
|
||||
property: S3_BUCKET_ENDPOINT
|
||||
- secretKey: RESTIC_PASSWORD
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cl01tl/volsync/restic/config
|
||||
metadataPolicy: None
|
||||
property: RESTIC_PASSWORD
|
||||
- secretKey: AWS_DEFAULT_REGION
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cl01tl/volsync/restic/config
|
||||
metadataPolicy: None
|
||||
property: AWS_DEFAULT_REGION
|
||||
- secretKey: AWS_ACCESS_KEY_ID
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /digital-ocean/home-infra/volsync-backups
|
||||
metadataPolicy: None
|
||||
property: access_key
|
||||
- secretKey: AWS_SECRET_ACCESS_KEY
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /digital-ocean/home-infra/volsync-backups
|
||||
metadataPolicy: None
|
||||
property: secret_key
|
||||
---
|
||||
# Source: bazarr/templates/http-route.yaml
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: http-route-bazarr
|
||||
namespace: bazarr
|
||||
labels:
|
||||
app.kubernetes.io/name: http-route-bazarr
|
||||
app.kubernetes.io/instance: bazarr
|
||||
app.kubernetes.io/part-of: bazarr
|
||||
spec:
|
||||
parentRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: traefik-gateway
|
||||
namespace: traefik
|
||||
hostnames:
|
||||
- bazarr.alexlebens.net
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
backendRefs:
|
||||
- group: ''
|
||||
kind: Service
|
||||
name: bazarr
|
||||
port: 80
|
||||
weight: 100
|
||||
---
|
||||
# Source: bazarr/templates/replication-source.yaml
|
||||
apiVersion: volsync.backube/v1alpha1
|
||||
kind: ReplicationSource
|
||||
metadata:
|
||||
name: bazarr-config-backup-source
|
||||
namespace: bazarr
|
||||
labels:
|
||||
app.kubernetes.io/name: bazarr-config-backup-source
|
||||
app.kubernetes.io/instance: bazarr
|
||||
app.kubernetes.io/part-of: bazarr
|
||||
spec:
|
||||
sourcePVC: bazarr-config
|
||||
trigger:
|
||||
schedule: 0 4 * * *
|
||||
restic:
|
||||
pruneIntervalDays: 7
|
||||
repository: bazarr-config-backup-secret
|
||||
retain:
|
||||
hourly: 1
|
||||
daily: 3
|
||||
weekly: 2
|
||||
monthly: 2
|
||||
yearly: 4
|
||||
moverSecurityContext:
|
||||
runAsUser: 1000
|
||||
runAsGroup: 1000
|
||||
fsGroup: 1000
|
||||
fsGroupChangePolicy: OnRootMismatch
|
||||
copyMethod: Snapshot
|
||||
storageClassName: ceph-block
|
||||
volumeSnapshotClassName: ceph-blockpool-snapshot
|
||||
251
clusters/cl01tl/manifests/code-server/code-server.yaml
Normal file
251
clusters/cl01tl/manifests/code-server/code-server.yaml
Normal file
@@ -0,0 +1,251 @@
|
||||
---
|
||||
# Source: code-server/templates/persistent-volume-claim.yaml
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: code-server-nfs-storage
|
||||
namespace: code-server
|
||||
labels:
|
||||
app.kubernetes.io/name: code-server-nfs-storage
|
||||
app.kubernetes.io/instance: code-server
|
||||
app.kubernetes.io/part-of: code-server
|
||||
spec:
|
||||
volumeMode: Filesystem
|
||||
storageClassName: nfs-client
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
---
|
||||
# Source: code-server/charts/code-server/templates/common.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: code-server
|
||||
labels:
|
||||
app.kubernetes.io/instance: code-server
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: code-server
|
||||
app.kubernetes.io/service: code-server
|
||||
helm.sh/chart: code-server-4.4.0
|
||||
namespace: code-server
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 8443
|
||||
targetPort: 8443
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: code-server
|
||||
app.kubernetes.io/name: code-server
|
||||
---
|
||||
# Source: code-server/charts/cloudflared/templates/common.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: code-server-cloudflared
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: code-server
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: cloudflared
|
||||
app.kubernetes.io/version: 2025.10.0
|
||||
helm.sh/chart: cloudflared-1.23.0
|
||||
namespace: code-server
|
||||
spec:
|
||||
revisionHistoryLimit: 3
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/name: cloudflared
|
||||
app.kubernetes.io/instance: code-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: code-server
|
||||
app.kubernetes.io/name: cloudflared
|
||||
spec:
|
||||
enableServiceLinks: false
|
||||
serviceAccountName: default
|
||||
automountServiceAccountToken: true
|
||||
hostIPC: false
|
||||
hostNetwork: false
|
||||
hostPID: false
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- args:
|
||||
- tunnel
|
||||
- --protocol
|
||||
- http2
|
||||
- --no-autoupdate
|
||||
- run
|
||||
- --token
|
||||
- $(CF_MANAGED_TUNNEL_TOKEN)
|
||||
env:
|
||||
- name: CF_MANAGED_TUNNEL_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: cf-tunnel-token
|
||||
name: code-server-cloudflared-secret
|
||||
image: cloudflare/cloudflared:2025.11.1
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: main
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 128Mi
|
||||
---
|
||||
# Source: code-server/charts/code-server/templates/common.yaml
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: code-server
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: code-server
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: code-server
|
||||
helm.sh/chart: code-server-4.4.0
|
||||
namespace: code-server
|
||||
spec:
|
||||
revisionHistoryLimit: 3
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/name: code-server
|
||||
app.kubernetes.io/instance: code-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: code-server
|
||||
app.kubernetes.io/name: code-server
|
||||
spec:
|
||||
enableServiceLinks: false
|
||||
serviceAccountName: default
|
||||
automountServiceAccountToken: true
|
||||
hostIPC: false
|
||||
hostNetwork: false
|
||||
hostPID: false
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- env:
|
||||
- name: TZ
|
||||
value: US/Central
|
||||
- name: PUID
|
||||
value: "1000"
|
||||
- name: PGID
|
||||
value: "1000"
|
||||
- name: DEFAULT_WORKSPACE
|
||||
value: /config
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: codeserver-password-secret
|
||||
image: ghcr.io/linuxserver/code-server:4.106.2@sha256:a98afdbcb59559f11e5e8df284062e55da1076b2e470e13db4aae133ea82bad0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: main
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 128Mi
|
||||
volumeMounts:
|
||||
- mountPath: /config
|
||||
name: config
|
||||
volumes:
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: code-server-nfs-storage
|
||||
---
|
||||
# Source: code-server/templates/external-secret.yaml
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: codeserver-password-secret
|
||||
namespace: code-server
|
||||
labels:
|
||||
app.kubernetes.io/name: codeserver-password-secret
|
||||
app.kubernetes.io/instance: code-server
|
||||
app.kubernetes.io/part-of: code-server
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: PASSWORD
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cl01tl/code-server/auth
|
||||
metadataPolicy: None
|
||||
property: PASSWORD
|
||||
- secretKey: SUDO_PASSWORD
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cl01tl/code-server/auth
|
||||
metadataPolicy: None
|
||||
property: SUDO_PASSWORD
|
||||
---
|
||||
# Source: code-server/templates/external-secret.yaml
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: code-server-cloudflared-secret
|
||||
namespace: code-server
|
||||
labels:
|
||||
app.kubernetes.io/name: code-server-cloudflared-secret
|
||||
app.kubernetes.io/instance: code-server
|
||||
app.kubernetes.io/part-of: code-server
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: cf-tunnel-token
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cloudflare/tunnels/codeserver
|
||||
metadataPolicy: None
|
||||
property: token
|
||||
---
|
||||
# Source: code-server/templates/http-route.yaml
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: http-route-code-server
|
||||
namespace: code-server
|
||||
labels:
|
||||
app.kubernetes.io/name: http-route-code-server
|
||||
app.kubernetes.io/instance: code-server
|
||||
app.kubernetes.io/part-of: code-server
|
||||
spec:
|
||||
parentRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: traefik-gateway
|
||||
namespace: traefik
|
||||
hostnames:
|
||||
- code-server.alexlebens.net
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
backendRefs:
|
||||
- group: ''
|
||||
kind: Service
|
||||
name: code-server
|
||||
port: 8443
|
||||
weight: 100
|
||||
258
clusters/cl01tl/manifests/element-web/element-web.yaml
Normal file
258
clusters/cl01tl/manifests/element-web/element-web.yaml
Normal file
@@ -0,0 +1,258 @@
|
||||
---
|
||||
# Source: element-web/charts/element-web/templates/serviceaccount.yaml
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: element-web
|
||||
labels:
|
||||
helm.sh/chart: element-web-1.4.24
|
||||
app.kubernetes.io/name: element-web
|
||||
app.kubernetes.io/instance: element-web
|
||||
app.kubernetes.io/version: "1.12.4"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
---
|
||||
# Source: element-web/charts/element-web/templates/configuration-nginx.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: element-web-nginx
|
||||
labels:
|
||||
helm.sh/chart: element-web-1.4.24
|
||||
app.kubernetes.io/name: element-web
|
||||
app.kubernetes.io/instance: element-web
|
||||
app.kubernetes.io/version: "1.12.4"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
data:
|
||||
default.conf: |
|
||||
server {
|
||||
listen 8080;
|
||||
listen [::]:8080;
|
||||
server_name localhost;
|
||||
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
add_header X-Frame-Options SAMEORIGIN;
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header Content-Security-Policy "frame-ancestors 'self'";
|
||||
|
||||
# Set no-cache for the index.html only so that browsers always check for a new copy of Element Web.
|
||||
location = /index.html {
|
||||
add_header Cache-Control "no-cache";
|
||||
}
|
||||
|
||||
# redirect server error pages to the static page /50x.html
|
||||
#
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
}
|
||||
---
|
||||
# Source: element-web/charts/element-web/templates/configuration.yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: element-web
|
||||
labels:
|
||||
helm.sh/chart: element-web-1.4.24
|
||||
app.kubernetes.io/name: element-web
|
||||
app.kubernetes.io/instance: element-web
|
||||
app.kubernetes.io/version: "1.12.4"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
data:
|
||||
config.json: |
|
||||
{"brand":"Alex Lebens","branding":{"auth_header_logo_url":"https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.png","welcome_background_url":"https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/background.jpg"},"default_country_code":"US","default_server_config":{"m.homeserver":{"base_url":"https://matrix.alexlebens.dev","server_name":"alexlebens.dev"},"m.identity_server":{"base_url":"https://alexlebens.dev"}},"default_theme":"dark","disable_3pid_login":true,"sso_redirect_options":{"immediate":true}}
|
||||
---
|
||||
# Source: element-web/charts/element-web/templates/service.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: element-web
|
||||
labels:
|
||||
helm.sh/chart: element-web-1.4.24
|
||||
app.kubernetes.io/name: element-web
|
||||
app.kubernetes.io/instance: element-web
|
||||
app.kubernetes.io/version: "1.12.4"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/name: element-web
|
||||
app.kubernetes.io/instance: element-web
|
||||
---
|
||||
# Source: element-web/charts/cloudflared/templates/common.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: element-web-cloudflared
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: element-web
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: cloudflared
|
||||
app.kubernetes.io/version: 2025.10.0
|
||||
helm.sh/chart: cloudflared-1.23.0
|
||||
namespace: element-web
|
||||
spec:
|
||||
revisionHistoryLimit: 3
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/name: cloudflared
|
||||
app.kubernetes.io/instance: element-web
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: element-web
|
||||
app.kubernetes.io/name: cloudflared
|
||||
spec:
|
||||
enableServiceLinks: false
|
||||
serviceAccountName: default
|
||||
automountServiceAccountToken: true
|
||||
hostIPC: false
|
||||
hostNetwork: false
|
||||
hostPID: false
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- args:
|
||||
- tunnel
|
||||
- --protocol
|
||||
- http2
|
||||
- --no-autoupdate
|
||||
- run
|
||||
- --token
|
||||
- $(CF_MANAGED_TUNNEL_TOKEN)
|
||||
env:
|
||||
- name: CF_MANAGED_TUNNEL_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: cf-tunnel-token
|
||||
name: element-web-cloudflared-secret
|
||||
image: cloudflare/cloudflared:2025.11.1
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: main
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 128Mi
|
||||
---
|
||||
# Source: element-web/charts/element-web/templates/deployment.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: element-web
|
||||
labels:
|
||||
helm.sh/chart: element-web-1.4.24
|
||||
app.kubernetes.io/name: element-web
|
||||
app.kubernetes.io/instance: element-web
|
||||
app.kubernetes.io/version: "1.12.4"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: element-web
|
||||
app.kubernetes.io/instance: element-web
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
checksum/config: e4e49fadd0eaedd59d5adab594fb3e159fcaaecf883c31012f72a55c7785e1c4
|
||||
checksum/config-nginx: 0d6dce57e41259f77d072cd0381296fb272ba1c62d8817d5fd742da9ccce5aa1
|
||||
labels:
|
||||
app.kubernetes.io/name: element-web
|
||||
app.kubernetes.io/instance: element-web
|
||||
spec:
|
||||
serviceAccountName: element-web
|
||||
securityContext:
|
||||
{}
|
||||
containers:
|
||||
- name: element-web
|
||||
securityContext:
|
||||
{}
|
||||
image: "vectorim/element-web:v1.12.4"
|
||||
imagePullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: ELEMENT_WEB_PORT
|
||||
value: '8080'
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 128Mi
|
||||
volumeMounts:
|
||||
- mountPath: /app/config.json
|
||||
name: config
|
||||
subPath: config.json
|
||||
- mountPath: /etc/nginx/conf.d/config.json
|
||||
name: config-nginx
|
||||
subPath: config.json
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: element-web
|
||||
- name: config-nginx
|
||||
configMap:
|
||||
name: element-web-nginx
|
||||
---
|
||||
# Source: element-web/templates/external-secret.yaml
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: element-web-cloudflared-secret
|
||||
namespace: element-web
|
||||
labels:
|
||||
app.kubernetes.io/name: element-web-cloudflared-secret
|
||||
app.kubernetes.io/instance: element-web
|
||||
app.kubernetes.io/part-of: element-web
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: cf-tunnel-token
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cloudflare/tunnels/element
|
||||
metadataPolicy: None
|
||||
property: token
|
||||
---
|
||||
# Source: element-web/charts/element-web/templates/tests/test-connection.yaml
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: "element-web-test-connection"
|
||||
labels:
|
||||
helm.sh/chart: element-web-1.4.24
|
||||
app.kubernetes.io/name: element-web
|
||||
app.kubernetes.io/instance: element-web
|
||||
app.kubernetes.io/version: "1.12.4"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
annotations:
|
||||
"helm.sh/hook": test-success
|
||||
spec:
|
||||
containers:
|
||||
- name: wget
|
||||
image: busybox
|
||||
command: ['wget']
|
||||
args: ['element-web:80']
|
||||
restartPolicy: Never
|
||||
283
clusters/cl01tl/manifests/home-assistant/home-assistant.yaml
Normal file
283
clusters/cl01tl/manifests/home-assistant/home-assistant.yaml
Normal file
@@ -0,0 +1,283 @@
|
||||
---
|
||||
# Source: home-assistant/charts/home-assistant/templates/common.yaml
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: home-assistant-config
|
||||
labels:
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: home-assistant
|
||||
helm.sh/chart: home-assistant-4.4.0
|
||||
namespace: home-assistant
|
||||
spec:
|
||||
accessModes:
|
||||
- "ReadWriteOnce"
|
||||
resources:
|
||||
requests:
|
||||
storage: "5Gi"
|
||||
storageClassName: "ceph-block"
|
||||
---
|
||||
# Source: home-assistant/charts/home-assistant/templates/common.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: home-assistant-code-server
|
||||
labels:
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: home-assistant
|
||||
app.kubernetes.io/service: home-assistant-code-server
|
||||
helm.sh/chart: home-assistant-4.4.0
|
||||
namespace: home-assistant
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 8443
|
||||
targetPort: 8443
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/name: home-assistant
|
||||
---
|
||||
# Source: home-assistant/charts/home-assistant/templates/common.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: home-assistant-main
|
||||
labels:
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: home-assistant
|
||||
app.kubernetes.io/service: home-assistant-main
|
||||
helm.sh/chart: home-assistant-4.4.0
|
||||
namespace: home-assistant
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 8123
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/name: home-assistant
|
||||
---
|
||||
# Source: home-assistant/charts/home-assistant/templates/common.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: home-assistant
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: home-assistant
|
||||
helm.sh/chart: home-assistant-4.4.0
|
||||
namespace: home-assistant
|
||||
spec:
|
||||
revisionHistoryLimit: 3
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/name: home-assistant
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/name: home-assistant
|
||||
spec:
|
||||
enableServiceLinks: false
|
||||
serviceAccountName: default
|
||||
automountServiceAccountToken: true
|
||||
hostIPC: false
|
||||
hostNetwork: false
|
||||
hostPID: false
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- env:
|
||||
- name: TZ
|
||||
value: US/Central
|
||||
- name: PUID
|
||||
value: "1000"
|
||||
- name: PGID
|
||||
value: "1000"
|
||||
- name: DEFAULT_WORKSPACE
|
||||
value: /config
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: home-assistant-code-server-password-secret
|
||||
image: ghcr.io/linuxserver/code-server:4.106.2@sha256:a98afdbcb59559f11e5e8df284062e55da1076b2e470e13db4aae133ea82bad0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: code-server
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 128Mi
|
||||
volumeMounts:
|
||||
- mountPath: /config/home-assistant
|
||||
name: config
|
||||
- env:
|
||||
- name: TZ
|
||||
value: US/Central
|
||||
image: ghcr.io/home-assistant/home-assistant:2025.11.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: main
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
- mountPath: /config
|
||||
name: config
|
||||
volumes:
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: home-assistant-config
|
||||
---
|
||||
# Source: home-assistant/templates/external-secret.yaml
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: home-assistant-code-server-password-secret
|
||||
namespace: home-assistant
|
||||
labels:
|
||||
app.kubernetes.io/name: home-assistant-code-server-password-secret
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/part-of: home-assistant
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: PASSWORD
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cl01tl/home-assistant/code-server/auth
|
||||
metadataPolicy: None
|
||||
property: PASSWORD
|
||||
- secretKey: SUDO_PASSWORD
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cl01tl/home-assistant/code-server/auth
|
||||
metadataPolicy: None
|
||||
property: SUDO_PASSWORD
|
||||
---
|
||||
# Source: home-assistant/templates/external-secret.yaml
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: home-assistant-token-secret
|
||||
namespace: home-assistant
|
||||
labels:
|
||||
app.kubernetes.io/name: home-assistant-token-secret
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/part-of: home-assistant
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: bearer-token
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cl01tl/home-assistant/auth
|
||||
metadataPolicy: None
|
||||
property: bearer-token
|
||||
---
|
||||
# Source: home-assistant/templates/http-route.yaml
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: http-route-home-assistant
|
||||
namespace: home-assistant
|
||||
labels:
|
||||
app.kubernetes.io/name: http-route-home-assistant
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/part-of: home-assistant
|
||||
spec:
|
||||
parentRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: traefik-gateway
|
||||
namespace: traefik
|
||||
hostnames:
|
||||
- home-assistant.alexlebens.net
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
backendRefs:
|
||||
- group: ''
|
||||
kind: Service
|
||||
name: home-assistant-main
|
||||
port: 80
|
||||
weight: 100
|
||||
---
|
||||
# Source: home-assistant/templates/http-route.yaml
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: http-route-home-assistant-code-server
|
||||
namespace: home-assistant
|
||||
labels:
|
||||
app.kubernetes.io/name: http-route-home-assistant-code-server
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/part-of: home-assistant
|
||||
spec:
|
||||
parentRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: traefik-gateway
|
||||
namespace: traefik
|
||||
hostnames:
|
||||
- home-assistant-code-server.alexlebens.net
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
backendRefs:
|
||||
- group: ''
|
||||
kind: Service
|
||||
name: home-assistant-code-server
|
||||
port: 8443
|
||||
weight: 100
|
||||
---
|
||||
# Source: home-assistant/templates/service-monitor.yaml
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: home-assistant
|
||||
namespace: home-assistant
|
||||
labels:
|
||||
app.kubernetes.io/name: home-assistant
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
app.kubernetes.io/part-of: home-assistant
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: home-assistant
|
||||
app.kubernetes.io/service: home-assistant-main
|
||||
app.kubernetes.io/instance: home-assistant
|
||||
endpoints:
|
||||
- port: http
|
||||
interval: 3m
|
||||
scrapeTimeout: 1m
|
||||
path: /api/prometheus
|
||||
bearerTokenSecret:
|
||||
name: home-assistant-token-secret
|
||||
key: bearer-token
|
||||
307
clusters/cl01tl/manifests/homepage-dev/homepage-dev.yaml
Normal file
307
clusters/cl01tl/manifests/homepage-dev/homepage-dev.yaml
Normal file
@@ -0,0 +1,307 @@
|
||||
---
|
||||
# Source: homepage/charts/homepage/templates/common.yaml
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: homepage-dev
|
||||
labels:
|
||||
app.kubernetes.io/instance: homepage-dev
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: homepage
|
||||
helm.sh/chart: homepage-4.4.0
|
||||
namespace: homepage-dev
|
||||
data:
|
||||
bookmarks.yaml: ""
|
||||
docker.yaml: ""
|
||||
kubernetes.yaml: ""
|
||||
services.yaml: |
|
||||
- Applications:
|
||||
- Auth:
|
||||
icon: sh-authentik.webp
|
||||
description: Authentik
|
||||
href: https://auth.alexlebens.dev
|
||||
siteMonitor: https://auth.alexlebens.dev
|
||||
statusStyle: dot
|
||||
- Gitea:
|
||||
icon: sh-gitea.webp
|
||||
description: Gitea
|
||||
href: https://gitea.alexlebens.dev
|
||||
siteMonitor: https://gitea.alexlebens.dev
|
||||
statusStyle: dot
|
||||
- Code:
|
||||
icon: sh-visual-studio-code.webp
|
||||
description: VS Code
|
||||
href: https://codeserver.alexlebens.dev
|
||||
siteMonitor: https://codeserver.alexlebens.dev
|
||||
statusStyle: dot
|
||||
- Site:
|
||||
icon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.png
|
||||
description: Profile Website
|
||||
href: https://www.alexlebens.dev
|
||||
siteMonitor: https://www.alexlebens.dev
|
||||
statusStyle: dot
|
||||
- Content Management:
|
||||
icon: directus.png
|
||||
description: Directus
|
||||
href: https://directus.alexlebens.dev
|
||||
siteMonitor: https://directus.alexlebens.dev
|
||||
statusStyle: dot
|
||||
- Social Media Management:
|
||||
icon: sh-postiz.webp
|
||||
description: Postiz
|
||||
href: https://postiz.alexlebens.dev
|
||||
siteMonitor: https://postiz.alexlebens.dev
|
||||
statusStyle: dot
|
||||
- Chat:
|
||||
icon: sh-element.webp
|
||||
description: Matrix
|
||||
href: https://chat.alexlebens.dev
|
||||
siteMonitor: https://chat.alexlebens.dev
|
||||
statusStyle: dot
|
||||
- Wiki:
|
||||
icon: sh-outline.webp
|
||||
description: Outline
|
||||
href: https://wiki.alexlebens.dev
|
||||
siteMonitor: https://wiki.alexlebens.dev
|
||||
statusStyle: dot
|
||||
- Passwords:
|
||||
icon: sh-vaultwarden-light.webp
|
||||
description: Vaultwarden
|
||||
href: https://passwords.alexlebens.dev
|
||||
siteMonitor: https://passwords.alexlebens.dev
|
||||
statusStyle: dot
|
||||
- Bookmarks:
|
||||
icon: sh-karakeep-light.webp
|
||||
description: Karakeep
|
||||
href: https://karakeep.alexlebens.dev
|
||||
siteMonitor: https://karakeep.alexlebens.dev
|
||||
statusStyle: dot
|
||||
- RSS:
|
||||
icon: sh-freshrss.webp
|
||||
description: FreshRSS
|
||||
href: https://rss.alexlebens.dev
|
||||
siteMonitor: https://rss.alexlebens.dev
|
||||
statusStyle: dot
|
||||
settings.yaml: |
|
||||
favicon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.svg
|
||||
headerStyle: clean
|
||||
hideVersion: true
|
||||
color: zinc
|
||||
background:
|
||||
image: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/background.jpg
|
||||
brightness: 50
|
||||
theme: dark
|
||||
disableCollapse: true
|
||||
widgets.yaml: |
|
||||
- logo:
|
||||
icon: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.png
|
||||
- datetime:
|
||||
text_size: xl
|
||||
format:
|
||||
dateStyle: long
|
||||
timeStyle: short
|
||||
hour12: false
|
||||
- openmeteo:
|
||||
label: St. Paul
|
||||
latitude: 44.954445
|
||||
longitude: -93.091301
|
||||
timezone: America/Chicago
|
||||
units: metric
|
||||
cache: 5
|
||||
format:
|
||||
maximumFractionDigits: 0
|
||||
---
|
||||
# Source: homepage/charts/homepage/templates/common.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: homepage-dev
|
||||
labels:
|
||||
app.kubernetes.io/instance: homepage-dev
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: homepage
|
||||
app.kubernetes.io/service: homepage-dev
|
||||
helm.sh/chart: homepage-4.4.0
|
||||
namespace: homepage-dev
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 3000
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: homepage-dev
|
||||
app.kubernetes.io/name: homepage
|
||||
---
|
||||
# Source: homepage/charts/cloudflared/templates/common.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: homepage-dev-cloudflared
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: homepage-dev
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: cloudflared
|
||||
app.kubernetes.io/version: 2025.10.0
|
||||
helm.sh/chart: cloudflared-1.23.0
|
||||
namespace: homepage-dev
|
||||
spec:
|
||||
revisionHistoryLimit: 3
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/name: cloudflared
|
||||
app.kubernetes.io/instance: homepage-dev
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: homepage-dev
|
||||
app.kubernetes.io/name: cloudflared
|
||||
spec:
|
||||
enableServiceLinks: false
|
||||
serviceAccountName: default
|
||||
automountServiceAccountToken: true
|
||||
hostIPC: false
|
||||
hostNetwork: false
|
||||
hostPID: false
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- args:
|
||||
- tunnel
|
||||
- --protocol
|
||||
- http2
|
||||
- --no-autoupdate
|
||||
- run
|
||||
- --token
|
||||
- $(CF_MANAGED_TUNNEL_TOKEN)
|
||||
env:
|
||||
- name: CF_MANAGED_TUNNEL_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: cf-tunnel-token
|
||||
name: homepage-dev-cloudflared-secret
|
||||
image: cloudflare/cloudflared:2025.11.1
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: main
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 128Mi
|
||||
---
|
||||
# Source: homepage/charts/homepage/templates/common.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: homepage-dev
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: homepage-dev
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: homepage
|
||||
helm.sh/chart: homepage-4.4.0
|
||||
annotations:
|
||||
reloader.stakater.com/auto: "true"
|
||||
namespace: homepage-dev
|
||||
spec:
|
||||
revisionHistoryLimit: 3
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/name: homepage
|
||||
app.kubernetes.io/instance: homepage-dev
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
checksum/configMaps: d1306b9af923c5b3f02566a43c7a141c7168ebf8a74e5ff1a2d5d8082001c1a1
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: homepage-dev
|
||||
app.kubernetes.io/name: homepage
|
||||
spec:
|
||||
enableServiceLinks: false
|
||||
serviceAccountName: default
|
||||
automountServiceAccountToken: true
|
||||
hostIPC: false
|
||||
hostNetwork: false
|
||||
hostPID: false
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- env:
|
||||
- name: HOMEPAGE_ALLOWED_HOSTS
|
||||
value: home.alexlebens.dev
|
||||
image: ghcr.io/gethomepage/homepage:v1.7.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: main
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 128Mi
|
||||
volumeMounts:
|
||||
- mountPath: /app/config/bookmarks.yaml
|
||||
mountPropagation: None
|
||||
name: config
|
||||
readOnly: true
|
||||
subPath: bookmarks.yaml
|
||||
- mountPath: /app/config/docker.yaml
|
||||
mountPropagation: None
|
||||
name: config
|
||||
readOnly: true
|
||||
subPath: docker.yaml
|
||||
- mountPath: /app/config/kubernetes.yaml
|
||||
mountPropagation: None
|
||||
name: config
|
||||
readOnly: true
|
||||
subPath: kubernetes.yaml
|
||||
- mountPath: /app/config/services.yaml
|
||||
mountPropagation: None
|
||||
name: config
|
||||
readOnly: true
|
||||
subPath: services.yaml
|
||||
- mountPath: /app/config/settings.yaml
|
||||
mountPropagation: None
|
||||
name: config
|
||||
readOnly: true
|
||||
subPath: settings.yaml
|
||||
- mountPath: /app/config/widgets.yaml
|
||||
mountPropagation: None
|
||||
name: config
|
||||
readOnly: true
|
||||
subPath: widgets.yaml
|
||||
volumes:
|
||||
- configMap:
|
||||
name: homepage-dev
|
||||
name: config
|
||||
---
|
||||
# Source: homepage/templates/external-secret.yaml
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: homepage-dev-cloudflared-secret
|
||||
namespace: homepage-dev
|
||||
labels:
|
||||
app.kubernetes.io/name: homepage-dev-cloudflared-secret
|
||||
app.kubernetes.io/instance: homepage-dev
|
||||
app.kubernetes.io/part-of: homepage-dev
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
data:
|
||||
- secretKey: cf-tunnel-token
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: /cloudflare/tunnels/homepage-dev
|
||||
metadataPolicy: None
|
||||
property: token
|
||||
129
clusters/cl01tl/manifests/huntarr/huntarr.yaml
Normal file
129
clusters/cl01tl/manifests/huntarr/huntarr.yaml
Normal file
@@ -0,0 +1,129 @@
|
||||
---
|
||||
# Source: huntarr/charts/huntarr/templates/common.yaml
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: huntarr-config
|
||||
labels:
|
||||
app.kubernetes.io/instance: huntarr
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: huntarr
|
||||
helm.sh/chart: huntarr-4.4.0
|
||||
namespace: huntarr
|
||||
spec:
|
||||
accessModes:
|
||||
- "ReadWriteOnce"
|
||||
resources:
|
||||
requests:
|
||||
storage: "5Gi"
|
||||
storageClassName: "ceph-block"
|
||||
---
|
||||
# Source: huntarr/charts/huntarr/templates/common.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: huntarr
|
||||
labels:
|
||||
app.kubernetes.io/instance: huntarr
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: huntarr
|
||||
app.kubernetes.io/service: huntarr
|
||||
helm.sh/chart: huntarr-4.4.0
|
||||
namespace: huntarr
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 9705
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: huntarr
|
||||
app.kubernetes.io/name: huntarr
|
||||
---
|
||||
# Source: huntarr/charts/huntarr/templates/common.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: huntarr
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: huntarr
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: huntarr
|
||||
helm.sh/chart: huntarr-4.4.0
|
||||
namespace: huntarr
|
||||
spec:
|
||||
revisionHistoryLimit: 3
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/name: huntarr
|
||||
app.kubernetes.io/instance: huntarr
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: huntarr
|
||||
app.kubernetes.io/name: huntarr
|
||||
spec:
|
||||
enableServiceLinks: false
|
||||
serviceAccountName: default
|
||||
automountServiceAccountToken: true
|
||||
hostIPC: false
|
||||
hostNetwork: false
|
||||
hostPID: false
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- env:
|
||||
- name: TZ
|
||||
value: US/Central
|
||||
image: ghcr.io/plexguide/huntarr:8.2.10
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: main
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
volumeMounts:
|
||||
- mountPath: /config
|
||||
name: config
|
||||
volumes:
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: huntarr-config
|
||||
---
|
||||
# Source: huntarr/templates/http-route.yaml
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: http-route-huntarr
|
||||
namespace: huntarr
|
||||
labels:
|
||||
app.kubernetes.io/name: http-route-huntarr
|
||||
app.kubernetes.io/instance: huntarr
|
||||
app.kubernetes.io/part-of: huntarr
|
||||
spec:
|
||||
parentRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: traefik-gateway
|
||||
namespace: traefik
|
||||
hostnames:
|
||||
- huntarr.alexlebens.net
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
backendRefs:
|
||||
- group: ''
|
||||
kind: Service
|
||||
name: huntarr
|
||||
port: 80
|
||||
weight: 100
|
||||
157
clusters/cl01tl/manifests/kiwix/kiwix.yaml
Normal file
157
clusters/cl01tl/manifests/kiwix/kiwix.yaml
Normal file
@@ -0,0 +1,157 @@
|
||||
---
|
||||
# Source: kiwix/templates/persistent-volume.yaml
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: kiwix-nfs-storage
|
||||
namespace: kiwix
|
||||
labels:
|
||||
app.kubernetes.io/name: kiwix-nfs-storage
|
||||
app.kubernetes.io/instance: kiwix
|
||||
app.kubernetes.io/part-of: kiwix
|
||||
spec:
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: nfs-client
|
||||
capacity:
|
||||
storage: 1Gi
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
nfs:
|
||||
path: /volume2/Storage/Kiwix
|
||||
server: synologybond.alexlebens.net
|
||||
mountOptions:
|
||||
- vers=4
|
||||
- minorversion=1
|
||||
- noac
|
||||
---
|
||||
# Source: kiwix/templates/persistent-volume-claim.yaml
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: kiwix-nfs-storage
|
||||
namespace: kiwix
|
||||
labels:
|
||||
app.kubernetes.io/name: kiwix-nfs-storage
|
||||
app.kubernetes.io/instance: kiwix
|
||||
app.kubernetes.io/part-of: kiwix
|
||||
spec:
|
||||
volumeName: kiwix-nfs-storage
|
||||
storageClassName: nfs-client
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
---
|
||||
# Source: kiwix/charts/kiwix/templates/common.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: kiwix
|
||||
labels:
|
||||
app.kubernetes.io/instance: kiwix
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: kiwix
|
||||
app.kubernetes.io/service: kiwix
|
||||
helm.sh/chart: kiwix-4.4.0
|
||||
namespace: kiwix
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: kiwix
|
||||
app.kubernetes.io/name: kiwix
|
||||
---
|
||||
# Source: kiwix/charts/kiwix/templates/common.yaml
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: kiwix
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: kiwix
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: kiwix
|
||||
helm.sh/chart: kiwix-4.4.0
|
||||
namespace: kiwix
|
||||
spec:
|
||||
revisionHistoryLimit: 3
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/name: kiwix
|
||||
app.kubernetes.io/instance: kiwix
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: kiwix
|
||||
app.kubernetes.io/name: kiwix
|
||||
spec:
|
||||
enableServiceLinks: false
|
||||
serviceAccountName: default
|
||||
automountServiceAccountToken: true
|
||||
hostIPC: false
|
||||
hostNetwork: false
|
||||
hostPID: false
|
||||
dnsPolicy: ClusterFirst
|
||||
containers:
|
||||
- args:
|
||||
- '*.zim'
|
||||
env:
|
||||
- name: PORT
|
||||
value: "8080"
|
||||
image: ghcr.io/kiwix/kiwix-serve:3.8.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: main
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: media
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: media
|
||||
persistentVolumeClaim:
|
||||
claimName: kiwix-nfs-storage
|
||||
---
|
||||
# Source: kiwix/templates/http-route.yaml
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: http-route-kiwix
|
||||
namespace: kiwix
|
||||
labels:
|
||||
app.kubernetes.io/name: http-route-kiwix
|
||||
app.kubernetes.io/instance: kiwix
|
||||
app.kubernetes.io/part-of: kiwix
|
||||
spec:
|
||||
parentRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: traefik-gateway
|
||||
namespace: traefik
|
||||
hostnames:
|
||||
- kiwix.alexlebens.net
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
backendRefs:
|
||||
- group: ''
|
||||
kind: Service
|
||||
name: kiwix
|
||||
port: 80
|
||||
weight: 100
|
||||
129
clusters/cl01tl/manifests/libation/libation.yaml
Normal file
129
clusters/cl01tl/manifests/libation/libation.yaml
Normal file
@@ -0,0 +1,129 @@
|
||||
---
|
||||
# Source: libation/templates/persistent-volume.yaml
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: libation-nfs-storage
|
||||
namespace: libation
|
||||
labels:
|
||||
app.kubernetes.io/name: libation-nfs-storage
|
||||
app.kubernetes.io/instance: libation
|
||||
app.kubernetes.io/part-of: libation
|
||||
spec:
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: nfs-client
|
||||
capacity:
|
||||
storage: 1Gi
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
nfs:
|
||||
path: /volume2/Storage/Audiobooks/
|
||||
server: synologybond.alexlebens.net
|
||||
mountOptions:
|
||||
- vers=4
|
||||
- minorversion=1
|
||||
- noac
|
||||
---
|
||||
# Source: libation/templates/persistent-volume-claim.yaml
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: libation-config
|
||||
namespace: libation
|
||||
labels:
|
||||
app.kubernetes.io/name: libation-config
|
||||
app.kubernetes.io/instance: libation
|
||||
app.kubernetes.io/part-of: libation
|
||||
spec:
|
||||
storageClassName: nfs-client
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
volumeMode: Filesystem
|
||||
---
|
||||
# Source: libation/templates/persistent-volume-claim.yaml
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: libation-nfs-storage
|
||||
namespace: libation
|
||||
labels:
|
||||
app.kubernetes.io/name: libation-nfs-storage
|
||||
app.kubernetes.io/instance: libation
|
||||
app.kubernetes.io/part-of: libation
|
||||
spec:
|
||||
volumeName: libation-nfs-storage
|
||||
storageClassName: nfs-client
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
---
|
||||
# Source: libation/charts/libation/templates/common.yaml
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: libation
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: libation
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: libation
|
||||
helm.sh/chart: libation-4.4.0
|
||||
namespace: libation
|
||||
spec:
|
||||
suspend: false
|
||||
concurrencyPolicy: Forbid
|
||||
startingDeadlineSeconds: 90
|
||||
timeZone: US/Central
|
||||
schedule: "30 4 * * *"
|
||||
successfulJobsHistoryLimit: 3
|
||||
failedJobsHistoryLimit: 3
|
||||
jobTemplate:
|
||||
spec:
|
||||
parallelism: 1
|
||||
backoffLimit: 3
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/controller: main
|
||||
app.kubernetes.io/instance: libation
|
||||
app.kubernetes.io/name: libation
|
||||
spec:
|
||||
enableServiceLinks: false
|
||||
serviceAccountName: default
|
||||
automountServiceAccountToken: true
|
||||
hostIPC: false
|
||||
hostNetwork: false
|
||||
hostPID: false
|
||||
dnsPolicy: ClusterFirst
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- env:
|
||||
- name: SLEEP_TIME
|
||||
value: "-1"
|
||||
- name: LIBATION_BOOKS_DIR
|
||||
value: /data
|
||||
image: rmcrackan/libation:12.7.4
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: main
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 128Mi
|
||||
volumeMounts:
|
||||
- mountPath: /config
|
||||
name: config
|
||||
- mountPath: /data
|
||||
name: data
|
||||
volumes:
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: libation-config
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: libation-nfs-storage
|
||||
Reference in New Issue
Block a user