Compare commits

..

2 Commits

Author SHA1 Message Date
Morten Olsen
4d46998668 more-charts 2025-09-03 21:41:58 +02:00
Morten Olsen
00d90bfa21 more-stuff 2025-09-03 17:24:27 +02:00
51 changed files with 586 additions and 98 deletions

View File

@@ -0,0 +1,3 @@
apiVersion: v2
version: 1.0.0
name: audiobookshelf

View File

@@ -0,0 +1,13 @@
apiVersion: homelab.mortenolsen.pro/v1
kind: OidcClient
metadata:
name: '{{ .Release.Name }}'
spec:
environment: '{{ .Values.globals.environment }}'
redirectUris:
- path: /audiobookshelf/auth/openid/callback
subdomain: '{{ .Values.subdomain }}'
matchingMode: strict
- path: /audiobookshelf/auth/openid/mobile-redirect
subdomain: '{{ .Values.subdomain }}'
matchingMode: strict

View File

@@ -0,0 +1,52 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: '{{ .Release.Name }}'
spec:
strategy:
type: Recreate
replicas: 1
selector:
matchLabels:
app: '{{ .Release.Name }}'
template:
metadata:
labels:
app: '{{ .Release.Name }}'
spec:
containers:
- name: '{{ .Release.Name }}'
image: '{{ .Values.image.repository }}:{{ .Values.image.tag }}'
imagePullPolicy: '{{ .Values.image.pullPolicy }}'
ports:
- name: http
containerPort: 80
protocol: TCP
livenessProbe:
tcpSocket:
port: http
readinessProbe:
tcpSocket:
port: http
volumeMounts:
- mountPath: /config
name: config
- mountPath: /metadata
name: metadata
- mountPath: /audiobooks
name: audiobooks
- mountPath: /podcasts
name: podcasts
volumes:
- name: config
persistentVolumeClaim:
claimName: '{{ .Release.Name }}-config'
- name: metadata
persistentVolumeClaim:
claimName: '{{ .Release.Name }}-metadata'
- name: audiobooks
persistentVolumeClaim:
claimName: books
- name: podcasts
persistentVolumeClaim:
claimName: podcasts

View File

@@ -0,0 +1,11 @@
apiVersion: homelab.mortenolsen.pro/v1
kind: ExternalHttpService
metadata:
name: '{{ .Release.Name }}'
spec:
environment: '{{ .Values.globals.environment }}'
subdomain: '{{ .Values.subdomain }}'
destination:
host: '{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local'
port:
number: 80

View File

@@ -0,0 +1,24 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: '{{ .Release.Name }}-config'
spec:
accessModes:
- 'ReadWriteOnce'
resources:
requests:
storage: '1Gi'
storageClassName: '{{ .Values.globals.environment }}'
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: '{{ .Release.Name }}-metadata'
spec:
accessModes:
- 'ReadWriteOnce'
resources:
requests:
storage: '1Gi'
storageClassName: '{{ .Values.globals.environment }}'

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: '{{ .Release.Name }}'
labels:
app: '{{ .Release.Name }}'
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 80
protocol: TCP
name: http
selector:
app: '{{ .Release.Name }}'

View File

@@ -0,0 +1,7 @@
globals:
environment: prod
image:
repository: ghcr.io/advplyr/audiobookshelf
tag: 2.26.1
pullPolicy: IfNotPresent
subdomain: audiobookshelf

View File

@@ -3,7 +3,7 @@ kind: OidcClient
metadata: metadata:
name: '{{ .Release.Name }}' name: '{{ .Release.Name }}'
spec: spec:
environment: '{{ .Values.environment }}' environment: '{{ .Values.globals.environment }}'
redirectUris: redirectUris:
- path: /api/auth/oidc/callback - path: /api/auth/oidc/callback
subdomain: bytestash subdomain: bytestash

View File

@@ -1,5 +1,5 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: StatefulSet kind: Deployment
metadata: metadata:
name: '{{ .Release.Name }}' name: '{{ .Release.Name }}'
labels: labels:
@@ -22,6 +22,10 @@ spec:
- containerPort: 5000 - containerPort: 5000
name: http name: http
env: env:
- name: ALLOW_NEW_ACCOUNTS
value: 'true'
- name: DISABLE_INTERNAL_ACCOUNTS
value: 'true'
- name: OIDC_ENABLED - name: OIDC_ENABLED
value: 'true' value: 'true'
- name: OIDC_DISPLAY_NAME - name: OIDC_DISPLAY_NAME
@@ -44,20 +48,8 @@ spec:
volumeMounts: volumeMounts:
- mountPath: /data/snippets - mountPath: /data/snippets
name: bytestash-data name: data
volumes:
# Defines security context for the pod to avoid running as root. - name: data
# securityContext: persistentVolumeClaim:
# runAsUser: 1000 claimName: '{{ .Release.Name }}-data'
# runAsGroup: 1000
# fsGroup: 1000
volumeClaimTemplates:
- metadata:
name: bytestash-data
spec:
accessModes: ['ReadWriteOnce']
storageClassName: '{{ .Values.environment }}'
resources:
requests:
storage: 5Gi

View File

@@ -3,7 +3,7 @@ kind: ExternalHttpService
metadata: metadata:
name: '{{ .Release.Name }}' name: '{{ .Release.Name }}'
spec: spec:
environment: '{{ .Values.environment }}' environment: '{{ .Values.globals.environment }}'
subdomain: '{{ .Values.subdomain }}' subdomain: '{{ .Values.subdomain }}'
destination: destination:
host: '{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local' host: '{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local'

View File

@@ -0,0 +1,11 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: '{{ .Release.Name }}-data'
spec:
accessModes:
- 'ReadWriteOnce'
resources:
requests:
storage: '1Gi'
storageClassName: '{{ .Values.globals.environment }}'

View File

@@ -1,2 +1,3 @@
environment: prod globals:
environment: prod
subdomain: bytestash subdomain: bytestash

View File

@@ -6,5 +6,5 @@ spec:
environment: '{{ .Values.environment }}' environment: '{{ .Values.environment }}'
redirectUris: redirectUris:
- path: /sso/OID/redirect/Authentik - path: /sso/OID/redirect/Authentik
subdomain: '{{ .Values.subdomain }}' subdomain: '{{ .Values.globals.subdomain }}'
matchingMode: strict matchingMode: strict

View File

@@ -3,7 +3,7 @@ kind: ExternalHttpService
metadata: metadata:
name: '{{ .Release.Name }}' name: '{{ .Release.Name }}'
spec: spec:
environment: '{{ .Values.environment }}' environment: '{{ .Values.globals.environment }}'
subdomain: '{{ .Values.subdomain }}' subdomain: '{{ .Values.subdomain }}'
destination: destination:
host: '{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local' host: '{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local'

View File

@@ -1,6 +1,7 @@
globals:
environment: prod
image: image:
repository: docker.io/jellyfin/jellyfin repository: docker.io/jellyfin/jellyfin
tag: latest tag: latest
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
environment: prod
subdomain: jellyfin subdomain: jellyfin

View File

@@ -0,0 +1,3 @@
apiVersion: v2
version: 1.0.0
name: ByteStash

View File

@@ -0,0 +1,10 @@
apiVersion: homelab.mortenolsen.pro/v1
kind: OidcClient
metadata:
name: '{{ .Release.Name }}'
spec:
environment: '{{ .Values.globals.environment }}'
redirectUris:
- path: /api/auth/oidc/callback
subdomain: bytestash
matchingMode: strict

View File

@@ -0,0 +1,55 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: '{{ .Release.Name }}'
labels:
app: '{{ .Release.Name }}'
spec:
serviceName: '{{ .Release.Name }}-headless'
replicas: 1
selector:
matchLabels:
app: '{{ .Release.Name }}'
template:
metadata:
labels:
app: '{{ .Release.Name }}'
spec:
containers:
- name: '{{ .Release.Name }}'
image: ghcr.io/miniflux/miniflux:latest
ports:
- containerPort: 8080
name: http
env:
- name: ALLOW_NEW_ACCOUNTS
value: 'true'
- name: DISABLE_INTERNAL_ACCOUNTS
value: 'true'
- name: OIDC_ENABLED
value: 'true'
- name: OIDC_DISPLAY_NAME
value: OIDC
- name: OIDC_CLIENT_ID
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-client'
key: clientId
- name: OIDC_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-client'
key: clientSecret
- name: OIDC_ISSUER_URL
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-client'
key: configuration
volumeMounts:
- mountPath: /data/snippets
name: data
volumes:
- name: data
persistentVolumeClaim:
claimName: '{{ .Release.Name }}-data'

View File

@@ -0,0 +1,11 @@
apiVersion: homelab.mortenolsen.pro/v1
kind: ExternalHttpService
metadata:
name: '{{ .Release.Name }}'
spec:
environment: '{{ .Values.globals.environment }}'
subdomain: '{{ .Values.subdomain }}'
destination:
host: '{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local'
port:
number: 80

View File

@@ -0,0 +1,11 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: '{{ .Release.Name }}-data'
spec:
accessModes:
- 'ReadWriteOnce'
resources:
requests:
storage: '1Gi'
storageClassName: '{{ .Values.globals.environment }}'

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: '{{ .Release.Name }}'
labels:
app: '{{ .Release.Name }}'
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: '{{ .Release.Name }}'

View File

@@ -0,0 +1,3 @@
globals:
environment: prod
subdomain: miniflux

View File

@@ -0,0 +1,3 @@
apiVersion: v2
version: 1.0.0
name: Jellyfin

View File

@@ -0,0 +1,6 @@
apiVersion: homelab.mortenolsen.pro/v1
kind: PostgresDatabase
metadata:
name: '{{ .Release.Name }}'
spec:
environment: '{{ .Values.globals.environment }}'

View File

@@ -0,0 +1,73 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: '{{ .Release.Name }}'
spec:
strategy:
type: Recreate
replicas: 1
selector:
matchLabels:
app: '{{ .Release.Name }}'
template:
metadata:
labels:
app: '{{ .Release.Name }}'
spec:
containers:
- name: '{{ .Release.Name }}'
image: '{{ .Values.image.repository }}:{{ .Values.image.tag }}'
imagePullPolicy: '{{ .Values.image.pullPolicy }}'
ports:
- name: http
containerPort: 5678
protocol: TCP
livenessProbe:
tcpSocket:
port: http
readinessProbe:
tcpSocket:
port: http
volumeMounts:
- mountPath: /home/node/.n8n
name: data
env:
- name: TZ
value: '{{ .Values.globals.timezone }}'
- name: GENERIC_TIMEZONE
value: '{{ .Values.globals.timezone }}'
- name: N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS
value: 'true'
- name: N8N_RUNNERS_ENABLED
value: 'true'
- name: DB_TYPE
value: postgresdb
- name: DB_POSTGRESDB_DATABASE
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-pg-connection'
key: database
- name: DB_POSTGRESDB_HOST
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-pg-connection'
key: host
- name: DB_POSTGRESDB_PORT
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-pg-connection'
key: port
- name: DB_POSTGRESDB_USER
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-pg-connection'
key: user
- name: DB_POSTGRESDB_PASSWORD
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-pg-connection'
key: password
volumes:
- name: data
persistentVolumeClaim:
claimName: '{{ .Release.Name }}-data'

View File

@@ -0,0 +1,11 @@
apiVersion: homelab.mortenolsen.pro/v1
kind: ExternalHttpService
metadata:
name: '{{ .Release.Name }}'
spec:
environment: '{{ .Values.globals.environment }}'
subdomain: '{{ .Values.subdomain }}'
destination:
host: '{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local'
port:
number: 80

View File

@@ -0,0 +1,11 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: '{{ .Release.Name }}-data'
spec:
accessModes:
- 'ReadWriteOnce'
resources:
requests:
storage: '1Gi'
storageClassName: '{{ .Values.globals.environment }}'

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: '{{ .Release.Name }}'
labels:
app: '{{ .Release.Name }}'
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 5678
protocol: TCP
name: http
selector:
app: '{{ .Release.Name }}'

View File

@@ -0,0 +1,8 @@
globals:
environment: prod
timezone: Europe/Amsterdam
image:
repository: docker.n8n.io/n8nio/n8n
tag: latest
pullPolicy: IfNotPresent
subdomain: n8n

View File

@@ -1,3 +1,3 @@
apiVersion: v2 apiVersion: v2
version: 1.0.0 version: 1.0.0
name: Ollama name: ollama

View File

@@ -0,0 +1,10 @@
apiVersion: homelab.mortenolsen.pro/v1
kind: OidcClient
metadata:
name: '{{ .Release.Name }}'
spec:
environment: '{{ .Values.globals.environment }}'
redirectUris:
- path: /oauth/oidc/callback
subdomain: '{{ .Values.subdomain }}'
matchingMode: strict

View File

@@ -2,9 +2,9 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: '{{ .Release.Name }}' name: '{{ .Release.Name }}'
labels:
app: '{{ .Release.Name }}'
spec: spec:
strategy:
type: Recreate
replicas: 1 replicas: 1
selector: selector:
matchLabels: matchLabels:
@@ -15,38 +15,24 @@ spec:
app: '{{ .Release.Name }}' app: '{{ .Release.Name }}'
spec: spec:
containers: containers:
- name: ollama - name: '{{ .Release.Name }}'
image: ghcr.io/ollama/ollama:latest # Official image image: '{{ .Values.image.repository }}:{{ .Values.image.tag }}'
imagePullPolicy: IfNotPresent imagePullPolicy: '{{ .Values.image.pullPolicy }}'
ports: ports:
- containerPort: 11434 - name: http
name: http containerPort: 11434
volumeMounts: protocol: TCP
- name: ollama-data livenessProbe:
mountPath: /root/.ollama tcpSocket:
env: port: http
# If you want to prestart a model, set this env var to the
# model name (e.g., "gpt-4o-mini"). The container will download
# it automatically at startup.
# - name: OLLAMA_MODEL
# value: "gpt-4o-mini"
readinessProbe: readinessProbe:
httpGet: tcpSocket:
scheme: HTTP port: http
path: /api/status volumeMounts:
port: 11434 - mountPath: /root/.ollama
initialDelaySeconds: 5 name: data
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 2000m
memory: 4Gi
volumes: volumes:
- name: ollama-data - name: data
persistentVolumeClaim: persistentVolumeClaim:
claimName: '{{ .Release.Name }}-data' claimName: '{{ .Release.Name }}-data'

View File

@@ -1,11 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
apiVersion: v1
metadata: metadata:
name: '{{ .Release.Name }}-data' name: '{{ .Release.Name }}-data'
spec: spec:
storageClassName: '{{ .Values.environment }}'
accessModes: accessModes:
- ReadWriteOnce - 'ReadWriteOnce'
resources: resources:
requests: requests:
storage: 20Gi storage: '1Gi'
storageClassName: '{{ .Values.globals.environment }}'

View File

@@ -5,11 +5,11 @@ metadata:
labels: labels:
app: '{{ .Release.Name }}' app: '{{ .Release.Name }}'
spec: spec:
type: LoadBalancer # Set to NodePort/ClusterIP if you prefer type: ClusterIP
ports: ports:
- name: http - port: 80
port: 11434 targetPort: 11434
targetPort: http
protocol: TCP protocol: TCP
name: http
selector: selector:
app: '{{ .Release.Name }}' app: '{{ .Release.Name }}'

View File

@@ -1,2 +1,7 @@
environment: dev globals:
subdomain: bytestash environment: prod
image:
repository: ollama/ollama
tag: 0.11.8
pullPolicy: IfNotPresent
subdomain: openwebui

View File

@@ -0,0 +1,3 @@
apiVersion: v2
version: 1.0.0
name: openwebui

View File

@@ -0,0 +1,10 @@
apiVersion: homelab.mortenolsen.pro/v1
kind: OidcClient
metadata:
name: '{{ .Release.Name }}'
spec:
environment: '{{ .Values.globals.environment }}'
redirectUris:
- path: /oauth/oidc/callback
subdomain: '{{ .Values.subdomain }}'
matchingMode: strict

View File

@@ -0,0 +1,70 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: '{{ .Release.Name }}'
spec:
strategy:
type: Recreate
replicas: 1
selector:
matchLabels:
app: '{{ .Release.Name }}'
template:
metadata:
labels:
app: '{{ .Release.Name }}'
spec:
containers:
- name: '{{ .Release.Name }}'
image: '{{ .Values.image.repository }}:{{ .Values.image.tag }}'
imagePullPolicy: '{{ .Values.image.pullPolicy }}'
ports:
- name: http
containerPort: 8080
protocol: TCP
livenessProbe:
tcpSocket:
port: http
readinessProbe:
tcpSocket:
port: http
volumeMounts:
- mountPath: /app/backend/data
name: data
env:
- name: ENABLE_SIGNUP
value: 'false'
- name: WEBUI_URL # TODO: remove
value: https://openwebui.olsen.cloud
- name: ENABLE_OAUTH_PERSISTENT_CONFIG
value: 'false'
- name: ENABLE_OAUTH_SIGNUP
value: 'true'
- name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL
value: 'true'
- name: OAUTH_PROVIDER_NAME
value: authentik
- name: OPENID_PROVIDER_URL
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-client'
key: configuration
- name: OAUTH_CLIENT_ID
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-client'
key: clientId
- name: OAUTH_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: '{{ .Release.Name }}-client'
key: clientSecret
- name: ENABLE_LOGIN_FORM
value: 'false'
- name: OPENID_REDIRECT
value: https://openwebui.olsen.cloud/oauth/oidc/callback
volumes:
- name: data
persistentVolumeClaim:
claimName: '{{ .Release.Name }}-data'

View File

@@ -0,0 +1,11 @@
apiVersion: homelab.mortenolsen.pro/v1
kind: ExternalHttpService
metadata:
name: '{{ .Release.Name }}'
spec:
environment: '{{ .Values.globals.environment }}'
subdomain: '{{ .Values.subdomain }}'
destination:
host: '{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local'
port:
number: 80

View File

@@ -0,0 +1,11 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: '{{ .Release.Name }}-data'
spec:
accessModes:
- 'ReadWriteOnce'
resources:
requests:
storage: '1Gi'
storageClassName: '{{ .Values.globals.environment }}'

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: '{{ .Release.Name }}'
labels:
app: '{{ .Release.Name }}'
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: '{{ .Release.Name }}'

View File

@@ -0,0 +1,7 @@
globals:
environment: prod
image:
repository: ghcr.io/open-webui/open-webui
tag: main
pullPolicy: IfNotPresent
subdomain: openwebui

View File

@@ -5,24 +5,25 @@ metadata:
namespace: '{{ .Values.env }}-argo' namespace: '{{ .Values.env }}-argo'
spec: spec:
generators: generators:
- directory: - git:
path: charts/apps repoURL: '{{ .Values.repo }}'
recurse: false revision: '{{ .Values.ref }}'
directories:
- path: charts/apps/*
include: '.*' include: '.*'
filter: | exclude: '.*.disabled'
.is_dir == true and (.path | endswith(".disabled") | not)
template: template:
metadata: metadata:
name: '{{path.basename}}' name: '{{`{{path.basename}}`}}'
spec: spec:
project: default project: default
source: source:
repoURL: '{{ .Values.repo }}' repoURL: '{{ .Values.repo }}'
targetRevision: '{{ .Values.ref }}' targetRevision: '{{ .Values.ref }}'
path: charts/apps/{{path.basename}} path: charts/apps/{{`{{path.basename}}`}}
helm: helm:
values: | values: |
global: {{ .Values.global | toYaml | nindent 14 }} globals: {{ .Values.globals | toYaml | nindent 14 }}
destination: destination:
server: https://kubernetes.default.svc server: https://kubernetes.default.svc
namespace: '{{ .Values.globals.env }}' namespace: '{{ .Values.globals.env }}'

View File

@@ -10,19 +10,17 @@ spec:
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
storageClassName: manual storageClassName: manual-books
hostPath: null
nfs: nfs:
path: '{{ .Values.books.path }}' path: '{{ .Values.books.path }}'
server: '{{ .Values.host }}' server: '{{ .Values.host }}'
readOnly: true
--- ---
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: books name: books
spec: spec:
storageClassName: manual storageClassName: manual-books
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
resources: resources:

View File

@@ -10,19 +10,17 @@ spec:
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
storageClassName: manual storageClassName: manual-movies
hostPath: null
nfs: nfs:
path: '{{ .Values.movies.path }}' path: '{{ .Values.movies.path }}'
server: '{{ .Values.host }}' server: '{{ .Values.host }}'
readOnly: true
--- ---
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: movies name: movies
spec: spec:
storageClassName: manual storageClassName: manual-movies
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
resources: resources:

View File

@@ -10,19 +10,17 @@ spec:
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
storageClassName: manual storageClassName: manual-music
hostPath: null
nfs: nfs:
path: '{{ .Values.music.path }}' path: '{{ .Values.music.path }}'
server: '{{ .Values.host }}' server: '{{ .Values.host }}'
readOnly: true
--- ---
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: music name: music
spec: spec:
storageClassName: manual storageClassName: manual-music
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
resources: resources:

View File

@@ -10,19 +10,17 @@ spec:
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
storageClassName: manual storageClassName: manual-podcasts
hostPath: null
nfs: nfs:
path: '{{ .Values.podcasts.path }}' path: '{{ .Values.podcasts.path }}'
server: '{{ .Values.host }}' server: '{{ .Values.host }}'
readOnly: true
--- ---
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: podcasts name: podcasts
spec: spec:
storageClassName: manual storageClassName: manual-podcasts
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
resources: resources:

View File

@@ -10,19 +10,17 @@ spec:
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
storageClassName: manual storageClassName: manual-tvshows
hostPath: null
nfs: nfs:
path: '{{ .Values.tvshows.path }}' path: '{{ .Values.tvshows.path }}'
server: '{{ .Values.host }}' server: '{{ .Values.host }}'
readOnly: true
--- ---
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: tvshows name: tvshows
spec: spec:
storageClassName: manual storageClassName: manual-tvshows
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
resources: resources:

View File

@@ -204,7 +204,11 @@ class Environment extends CustomResource<typeof specSchema> {
spec: { spec: {
targetNamespace: this.#argoNamespace.name, targetNamespace: this.#argoNamespace.name,
interval: '1h', interval: '1h',
values: {}, values: {
applicationset: {
enabled: true,
},
},
chart: { chart: {
spec: { spec: {
chart: 'argo-cd', chart: 'argo-cd',