12 Commits

Author SHA1 Message Date
8282c9a8fb feat: add more
Some checks are pending
lint-test-helm / lint-helm (pull_request) Waiting to run
lint-test-helm / validate-kubeconform (pull_request) Blocked by required conditions
lint-test-docker / lint-docker-compose (pull_request) Successful in 32s
2026-04-22 17:44:05 -05:00
6e5435df6d feat: add matrix synapse
All checks were successful
lint-test-docker / lint-docker-compose (pull_request) Successful in 18s
lint-test-helm / lint-helm (pull_request) Successful in 11m19s
lint-test-helm / validate-kubeconform (pull_request) Successful in 11m1s
2026-04-22 17:19:58 -05:00
152f505392 feat: add more
All checks were successful
lint-test-docker / lint-docker-compose (pull_request) Successful in 1m29s
lint-test-helm / lint-helm (pull_request) Successful in 14m5s
lint-test-helm / validate-kubeconform (pull_request) Successful in 15m47s
2026-04-22 16:30:51 -05:00
ea88f7bedc feat: add kubelet-cerT
All checks were successful
lint-test-docker / lint-docker-compose (pull_request) Successful in 1m50s
lint-test-helm / lint-helm (pull_request) Successful in 15m8s
lint-test-helm / validate-kubeconform (pull_request) Successful in 17m33s
2026-04-22 15:55:48 -05:00
f99d2e89a1 feat: add prom
All checks were successful
lint-test-docker / lint-docker-compose (pull_request) Successful in 1m25s
lint-test-helm / lint-helm (pull_request) Successful in 8m17s
lint-test-helm / validate-kubeconform (pull_request) Successful in 9m55s
2026-04-22 15:50:30 -05:00
6b02b1d331 feat: remove 2026-04-22 15:50:30 -05:00
7116db2e89 fix: wrong indent 2026-04-22 15:50:30 -05:00
77e0319ec8 feat: Add ispon 2026-04-22 15:50:30 -05:00
b41ef0a840 chore(deps): update searxng/searxng:latest docker digest to 37c616a 2026-04-22 15:50:30 -05:00
f1137e7a58 chore(deps): update ghcr.io/linuxserver/lidarr:3.1.2-nightly docker digest to d17f32d 2026-04-22 15:50:30 -05:00
f2280ff40a feat: add more
All checks were successful
lint-test-helm / lint-helm (pull_request) Successful in 12m40s
lint-test-helm / validate-kubeconform (pull_request) Successful in 14m29s
2026-04-21 21:13:37 -05:00
e104eae55e feat: convert many
Some checks failed
lint-test-helm / lint-helm (pull_request) Successful in 9m13s
lint-test-helm / validate-kubeconform (pull_request) Failing after 10m43s
2026-04-21 20:47:16 -05:00
304 changed files with 2555 additions and 1524 deletions

View File

@@ -13,7 +13,7 @@ on:
jobs: jobs:
renovate: renovate:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/renovatebot/renovate:43.139.6@sha256:2ed9f867ea7a7d2448847ce704f78af09e9b881c63f843a1aa0f590691737c42 container: ghcr.io/renovatebot/renovate:43.138.2@sha256:79765b2442117d5c87e17456aa79ae54b4e0e2a4d9212a10508e233706375556
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -5,8 +5,8 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: {{ .Release.Name }}-tailscale app.kubernetes.io/name: {{ .Release.Name }}-tailscale
tailscale.com/proxy-class: no-metrics
{{- include "custom.labels" . | nindent 4 }} {{- include "custom.labels" . | nindent 4 }}
tailscale.com/proxy-class: no-metrics
annotations: annotations:
tailscale.com/experimental-forward-cluster-traffic-via-ingress: "true" tailscale.com/experimental-forward-cluster-traffic-via-ingress: "true"
spec: spec:
@@ -25,4 +25,4 @@ spec:
service: service:
name: authentik-server name: authentik-server
port: port:
number: 80 name: http

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -20,8 +20,6 @@ spec:
type: PathPrefix type: PathPrefix
value: / value: /
backendRefs: backendRefs:
- group: '' - kind: Service
kind: Service
name: hubble-ui name: hubble-ui
port: 80 port: 80
weight: 100

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,16 +1,15 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: synology-iscsi-config-secret name: synology-iscsi-config
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: synology-iscsi-config-secret app.kubernetes.io/name: synology-iscsi-config
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: driver-config-file.yaml - secretKey: driver-config-file.yaml
remoteRef: remoteRef:

View File

@@ -1,11 +1,10 @@
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
name: democratic-csi-synology-iscsi name: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: democratic-csi-synology-iscsi app.kubernetes.io/name: {{ .Release.Namespace }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
pod-security.kubernetes.io/audit: privileged pod-security.kubernetes.io/audit: privileged
pod-security.kubernetes.io/enforce: privileged pod-security.kubernetes.io/enforce: privileged
pod-security.kubernetes.io/warn: privileged pod-security.kubernetes.io/warn: privileged

View File

@@ -3,7 +3,7 @@ democratic-csi:
image: image:
registry: ghcr.io/democratic-csi/democratic-csi registry: ghcr.io/democratic-csi/democratic-csi
tag: v1.9.5@@sha256:fc3b7d7ed3a616714139525075312758e23a5d425ffb539ad12c9bd20fb6001f tag: v1.9.5@@sha256:fc3b7d7ed3a616714139525075312758e23a5d425ffb539ad12c9bd20fb6001f
existingConfigSecret: synology-iscsi-config-secret existingConfigSecret: synology-iscsi-config
config: config:
driver: synology-iscsi driver: synology-iscsi
resources: resources:

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -5,7 +5,7 @@ description: Directus
keywords: keywords:
- directus - directus
- content-management-system - content-management-system
home: https://docs.alexlebens.dev/applications/descheduler/ home: https://docs.alexlebens.dev/applications/directus/
sources: sources:
- https://github.com/directus/directus - https://github.com/directus/directus
- https://github.com/directus/directus/pkgs/container/directus - https://github.com/directus/directus/pkgs/container/directus

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -5,13 +5,20 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: directus-config app.kubernetes.io/name: directus-config
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: key
remoteRef:
key: /cl01tl/directus/key
property: key
- secretKey: secret
remoteRef:
key: /cl01tl/directus/key
property: secret
- secretKey: admin-email - secretKey: admin-email
remoteRef: remoteRef:
key: /cl01tl/directus/config key: /cl01tl/directus/config
@@ -20,38 +27,6 @@ spec:
remoteRef: remoteRef:
key: /cl01tl/directus/config key: /cl01tl/directus/config
property: admin-password property: admin-password
- secretKey: secret
remoteRef:
key: /cl01tl/directus/config
property: secret
- secretKey: key
remoteRef:
key: /cl01tl/directus/config
property: key
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: directus-oidc-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: directus-oidc-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: OIDC_CLIENT_ID
remoteRef:
key: /authentik/oidc/directus
property: client
- secretKey: OIDC_CLIENT_SECRET
remoteRef:
key: /authentik/oidc/directus
property: secret
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
@@ -61,18 +36,67 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: directus-metric-token app.kubernetes.io/name: directus-metric-token
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: metric-token - secretKey: metric-token
remoteRef: remoteRef:
key: /cl01tl/directus/metrics key: /cl01tl/directus/metrics
property: metric-token property: metric-token
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: directus-valkey-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: directus-valkey-config
{{- include "custom.labels" . | nindent 4 }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: openbao
data:
- secretKey: user
remoteRef:
key: /cl01tl/directus/valkey
property: user
- secretKey: password
remoteRef:
key: /cl01tl/directus/valkey
property: password
- secretKey: default
remoteRef:
key: /cl01tl/directus/valkey
property: password
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: directus-oidc-authentik
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: directus-oidc-authentik
{{- include "custom.labels" . | nindent 4 }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: openbao
data:
- secretKey: OIDC_CLIENT_ID
remoteRef:
key: /cl01tl/authentik/oidc/directus
property: client
- secretKey: OIDC_CLIENT_SECRET
remoteRef:
key: /cl01tl/authentik/oidc/directus
property: secret
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
@@ -81,12 +105,11 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: directus-bucket-garage app.kubernetes.io/name: directus-bucket-garage
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: ACCESS_KEY_ID - secretKey: ACCESS_KEY_ID
remoteRef: remoteRef:
@@ -100,31 +123,3 @@ spec:
remoteRef: remoteRef:
key: /garage/home-infra/directus-assets key: /garage/home-infra/directus-assets
property: ACCESS_REGION property: ACCESS_REGION
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: directus-valkey-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: directus-valkey-config
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: default
remoteRef:
key: /cl01tl/directus/valkey
property: password
- secretKey: user
remoteRef:
key: /cl01tl/directus/valkey
property: user
- secretKey: password
remoteRef:
key: /cl01tl/directus/valkey
property: password

View File

@@ -113,12 +113,12 @@ directus:
- name: AUTH_AUTHENTIK_CLIENT_ID - name: AUTH_AUTHENTIK_CLIENT_ID
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: directus-oidc-secret name: directus-oidc-authentik
key: OIDC_CLIENT_ID key: OIDC_CLIENT_ID
- name: AUTH_AUTHENTIK_CLIENT_SECRET - name: AUTH_AUTHENTIK_CLIENT_SECRET
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: directus-oidc-secret name: directus-oidc-authentik
key: OIDC_CLIENT_SECRET key: OIDC_CLIENT_SECRET
- name: AUTH_AUTHENTIK_SCOPE - name: AUTH_AUTHENTIK_SCOPE
value: openid profile email value: openid profile email

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -5,7 +5,7 @@ description: Excalidraw
keywords: keywords:
- excalidraw - excalidraw
- drawing - drawing
home: https://docs.alexlebens.dev/applications/eraser/ home: https://docs.alexlebens.dev/applications/excalidraw/
sources: sources:
- https://github.com/excalidraw/excalidraw - https://github.com/excalidraw/excalidraw
- https://hub.docker.com/r/excalidraw/excalidraw - https://hub.docker.com/r/excalidraw/excalidraw

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -5,7 +5,7 @@ description: External DNS
keywords: keywords:
- external-dns - external-dns
- dns - dns
home: https://docs.alexlebens.dev/applications/eraser/ home: https://docs.alexlebens.dev/applications/external-dns/
sources: sources:
- https://github.com/kubernetes-sigs/external-dns - https://github.com/kubernetes-sigs/external-dns
- https://explore.ggcr.dev/?repo=registry.k8s.io%2Fexternal-dns%2Fexternal-dns - https://explore.ggcr.dev/?repo=registry.k8s.io%2Fexternal-dns%2Fexternal-dns

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: external-device-names app.kubernetes.io/name: external-device-names
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
endpoints: endpoints:
# Unifi UDM # Unifi UDM
@@ -48,8 +47,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: iot-device-names app.kubernetes.io/name: iot-device-names
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
endpoints: endpoints:
# Airgradient # Airgradient
@@ -82,6 +80,18 @@ spec:
recordType: A recordType: A
targets: targets:
- 10.230.0.100 - 10.230.0.100
# HD Homerun
- dnsName: dv01hr.alexlebens.net
recordTTL: 180
recordType: A
targets:
- 10.232.1.72
# Pi KVM
- dnsName: dv02kv.alexlebens.net
recordTTL: 180
recordType: A
targets:
- 10.232.1.71
--- ---
apiVersion: externaldns.k8s.io/v1alpha1 apiVersion: externaldns.k8s.io/v1alpha1
@@ -91,8 +101,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: server-host-names app.kubernetes.io/name: server-host-names
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
endpoints: endpoints:
# Unifi Gateway # Unifi Gateway
@@ -125,6 +134,18 @@ spec:
recordType: A recordType: A
targets: targets:
- 10.232.1.52 - 10.232.1.52
# Desktop
- dnsName: pd05wd.alexlebens.net
recordTTL: 180
recordType: A
targets:
- 10.230.0.115
# Laptop
- dnsName: pl02mc.alexlebens.net
recordTTL: 180
recordType: A
targets:
- 10.230.0.105
--- ---
apiVersion: externaldns.k8s.io/v1alpha1 apiVersion: externaldns.k8s.io/v1alpha1
@@ -134,8 +155,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: cluster-service-names app.kubernetes.io/name: cluster-service-names
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
endpoints: endpoints:
# Treafik Proxy # Treafik Proxy

View File

@@ -5,12 +5,11 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: external-dns-unifi-secret app.kubernetes.io/name: external-dns-unifi-secret
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: api-key - secretKey: api-key
remoteRef: remoteRef:

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -5,13 +5,12 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: external-secrets app.kubernetes.io/name: external-secrets
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole
name: system:auth-delegator name: system:auth-delegator
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: external-secrets name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: vault app.kubernetes.io/name: vault
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
provider: provider:
vault: vault:
@@ -26,8 +25,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: openbao app.kubernetes.io/name: openbao
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
provider: provider:
vault: vault:
@@ -39,7 +37,7 @@ spec:
mountPath: kubernetes mountPath: kubernetes
role: external-secrets role: external-secrets
serviceAccountRef: serviceAccountRef:
name: external-secrets name: {{ .Release.Name }}
namespace: {{ .Release.Name }} namespace: {{ .Release.Namespace }}
audiences: audiences:
- openbao - openbao

View File

@@ -0,0 +1,21 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}
{{/*
NFS names
*/}}
{{- define "custom.storageNfsName" -}}
foldergram-pictures-collections-nfs-storage
{{- end -}}

View File

@@ -1,14 +1,13 @@
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: foldergram-pictures-collections-nfs-storage name: {{ include "custom.storageNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: foldergram-pictures-collections-nfs-storage app.kubernetes.io/name: {{ include "custom.storageNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: foldergram-pictures-collections-nfs-storage volumeName: {{ include "custom.storageNfsName" . }}
storageClassName: nfs-client storageClassName: nfs-client
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany

View File

@@ -1,12 +1,11 @@
apiVersion: v1 apiVersion: v1
kind: PersistentVolume kind: PersistentVolume
metadata: metadata:
name: foldergram-pictures-collections-nfs-storage name: {{ include "custom.storageNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: foldergram-pictures-collections-nfs-storage app.kubernetes.io/name: {{ include "custom.storageNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client storageClassName: nfs-client

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,54 +1,52 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: freshrss-install-secret name: freshrss-install-config
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: freshrss-install-secret app.kubernetes.io/name: freshrss-install-config
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: ADMIN_EMAIL - secretKey: ADMIN_EMAIL
remoteRef: remoteRef:
key: /cl01tl/freshrss/config key: /cl01tl/freshrss/config
property: ADMIN_EMAIL property: admin-email
- secretKey: ADMIN_PASSWORD - secretKey: ADMIN_PASSWORD
remoteRef: remoteRef:
key: /cl01tl/freshrss/config key: /cl01tl/freshrss/config
property: ADMIN_PASSWORD property: admin-password
- secretKey: ADMIN_API_PASSWORD - secretKey: ADMIN_API_PASSWORD
remoteRef: remoteRef:
key: /cl01tl/freshrss/config key: /cl01tl/freshrss/config
property: ADMIN_API_PASSWORD property: admin-api-password
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: freshrss-oidc-secret name: freshrss-oidc-authentik
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: freshrss-oidc-secret app.kubernetes.io/name: freshrss-oidc-authentik
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: OIDC_CLIENT_ID - secretKey: OIDC_CLIENT_ID
remoteRef: remoteRef:
key: /authentik/oidc/freshrss key: /cl01tl/authentik/oidc/freshrss
property: client property: client
- secretKey: OIDC_CLIENT_SECRET - secretKey: OIDC_CLIENT_SECRET
remoteRef: remoteRef:
key: /authentik/oidc/freshrss key: /cl01tl/authentik/oidc/freshrss
property: secret property: secret
- secretKey: OIDC_CLIENT_CRYPTO_KEY - secretKey: OIDC_CLIENT_CRYPTO_KEY
remoteRef: remoteRef:
key: /authentik/oidc/freshrss key: /cl01tl/freshrss/key
property: crypto-key property: oidc-client-crypto-key

View File

@@ -73,9 +73,9 @@ freshrss:
value: preferred_username value: preferred_username
envFrom: envFrom:
- secretRef: - secretRef:
name: freshrss-oidc-secret name: freshrss-oidc-authentik
- secretRef: - secretRef:
name: freshrss-install-secret name: freshrss-install-config
resources: resources:
requests: requests:
cpu: 1m cpu: 1m

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,26 +1,25 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: garage-token-secret name: garage-token
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: garage-token-secret app.kubernetes.io/name: garage-token
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: GARAGE_RPC_SECRET - secretKey: GARAGE_RPC_SECRET
remoteRef: remoteRef:
key: /cl01tl/garage/token key: /cl01tl/garage/config
property: rpc property: rpc-secret
- secretKey: GARAGE_ADMIN_TOKEN - secretKey: GARAGE_ADMIN_TOKEN
remoteRef: remoteRef:
key: /cl01tl/garage/token key: /cl01tl/garage/config
property: admin property: admin-token
- secretKey: GARAGE_METRICS_TOKEN - secretKey: GARAGE_METRICS_TOKEN
remoteRef: remoteRef:
key: /cl01tl/garage/token key: /cl01tl/garage/config
property: metric property: metrics-token

View File

@@ -6,8 +6,7 @@ metadata:
labels: labels:
app.kubernetes.io/name: garage-main app.kubernetes.io/name: garage-main
app.kubernetes.io/service: garage-main app.kubernetes.io/service: garage-main
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
ports: ports:
- name: admin - name: admin
@@ -27,6 +26,6 @@ spec:
protocol: TCP protocol: TCP
targetPort: 3902 targetPort: 3902
selector: selector:
app.kubernetes.io/instance: garage
app.kubernetes.io/name: garage app.kubernetes.io/name: garage
app.kubernetes.io/instance: garage
garage-type: server garage-type: server

View File

@@ -24,7 +24,7 @@ garage:
tag: v2.3.0@sha256:866bd13ed2038ba7e7190e840482bc27234c4afaf77be8cfa439ae088c1e4690 tag: v2.3.0@sha256:866bd13ed2038ba7e7190e840482bc27234c4afaf77be8cfa439ae088c1e4690
envFrom: envFrom:
- secretRef: - secretRef:
name: garage-token-secret name: garage-token
resources: resources:
requests: requests:
cpu: 10m cpu: 10m
@@ -53,7 +53,7 @@ garage:
tag: v2.3.0@sha256:866bd13ed2038ba7e7190e840482bc27234c4afaf77be8cfa439ae088c1e4690 tag: v2.3.0@sha256:866bd13ed2038ba7e7190e840482bc27234c4afaf77be8cfa439ae088c1e4690
envFrom: envFrom:
- secretRef: - secretRef:
name: garage-token-secret name: garage-token
resources: resources:
requests: requests:
cpu: 10m cpu: 10m
@@ -82,7 +82,7 @@ garage:
tag: v2.3.0@sha256:866bd13ed2038ba7e7190e840482bc27234c4afaf77be8cfa439ae088c1e4690 tag: v2.3.0@sha256:866bd13ed2038ba7e7190e840482bc27234c4afaf77be8cfa439ae088c1e4690
envFrom: envFrom:
- secretRef: - secretRef:
name: garage-token-secret name: garage-token
resources: resources:
requests: requests:
cpu: 10m cpu: 10m
@@ -104,7 +104,7 @@ garage:
- name: API_ADMIN_KEY - name: API_ADMIN_KEY
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: garage-token-secret name: garage-token
key: GARAGE_ADMIN_TOKEN key: GARAGE_ADMIN_TOKEN
resources: resources:
requests: requests:
@@ -273,7 +273,7 @@ garage:
scrapeTimeout: 2m scrapeTimeout: 2m
path: /metrics path: /metrics
bearerTokenSecret: bearerTokenSecret:
name: garage-token-secret name: garage-token
key: GARAGE_METRICS_TOKEN key: GARAGE_METRICS_TOKEN
route: route:
webui: webui:

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,42 +1,40 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: gatus-config-secret name: gatus-config
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gatus-config-secret app.kubernetes.io/name: gatus-config-secret
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: NTFY_TOKEN - secretKey: NTFY_TOKEN
remoteRef: remoteRef:
key: /ntfy/user/cl01tl key: /cl01tl/ntfy/users/cl01tl
property: token property: token
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: gatus-oidc-secret name: gatus-oidc-authentik
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gatus-oidc-secret app.kubernetes.io/name: gatus-oidc-authentik
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: OIDC_CLIENT_ID - secretKey: OIDC_CLIENT_ID
remoteRef: remoteRef:
key: /authentik/oidc/gatus key: /cl01tl/authentik/oidc/gatus
property: client property: client
- secretKey: OIDC_CLIENT_SECRET - secretKey: OIDC_CLIENT_SECRET
remoteRef: remoteRef:
key: /authentik/oidc/gatus key: /cl01tl/authentik/oidc/gatus
property: secret property: secret

View File

@@ -20,17 +20,17 @@ gatus:
NTFY_TOKEN: NTFY_TOKEN:
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: gatus-config-secret name: gatus-config
key: NTFY_TOKEN key: NTFY_TOKEN
OIDC_CLIENT_ID: OIDC_CLIENT_ID:
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: gatus-oidc-secret name: gatus-oidc-authentik
key: OIDC_CLIENT_ID key: OIDC_CLIENT_ID
OIDC_CLIENT_SECRET: OIDC_CLIENT_SECRET:
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: gatus-oidc-secret name: gatus-oidc-authentik
key: OIDC_CLIENT_SECRET key: OIDC_CLIENT_SECRET
POSTGRES_USER: POSTGRES_USER:
valueFrom: valueFrom:

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,11 +1,10 @@
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
name: generic-device-plugin name: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: generic-device-plugin app.kubernetes.io/name: {{ .Release.Namespace }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
pod-security.kubernetes.io/audit: privileged pod-security.kubernetes.io/audit: privileged
pod-security.kubernetes.io/enforce: privileged pod-security.kubernetes.io/enforce: privileged
pod-security.kubernetes.io/warn: privileged pod-security.kubernetes.io/warn: privileged

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gitea-custom-templates app.kubernetes.io/name: gitea-custom-templates
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
data: data:
header.tmpl: | header.tmpl: |
<script defer src="https://rybbit.alexlebens.dev/api/script.js" data-site-id="b515c34a6dcc"></script> <script defer src="https://rybbit.alexlebens.dev/api/script.js" data-site-id="b515c34a6dcc"></script>

View File

@@ -1,64 +1,15 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata:
name: gitea-admin-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: gitea-admin-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: username
remoteRef:
key: /cl01tl/gitea/auth/admin
property: username
- secretKey: password
remoteRef:
key: /cl01tl/gitea/auth/admin
property: password
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: gitea-oidc-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: gitea-oidc-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: secret
remoteRef:
key: /authentik/oidc/gitea
property: secret
- secretKey: key
remoteRef:
key: /authentik/oidc/gitea
property: client
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata: metadata:
name: gitea-runner-secret name: gitea-runner-secret
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gitea-runner-secret app.kubernetes.io/name: gitea-runner-secret
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: token - secretKey: token
remoteRef: remoteRef:
@@ -69,80 +20,15 @@ spec:
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: gitea-renovate-secret name: gitea-meilisearch-key
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gitea-renovate-secret app.kubernetes.io/name: gitea-meilisearch-key
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data:
- secretKey: RENOVATE_ENDPOINT
remoteRef:
key: /cl01tl/gitea/renovate
property: RENOVATE_ENDPOINT
- secretKey: RENOVATE_GIT_AUTHOR
remoteRef:
key: /cl01tl/gitea/renovate
property: RENOVATE_GIT_AUTHOR
- secretKey: RENOVATE_TOKEN
remoteRef:
key: /cl01tl/gitea/renovate
property: RENOVATE_TOKEN
- secretKey: RENOVATE_GIT_PRIVATE_KEY
remoteRef:
key: /cl01tl/gitea/renovate
property: id_rsa
- secretKey: RENOVATE_GITHUB_COM_TOKEN
remoteRef:
key: /github/gitea-cl01tl
property: token
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: gitea-renovate-ssh-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: gitea-renovate-ssh-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: config
remoteRef:
key: /cl01tl/gitea/renovate
property: ssh_config
- secretKey: id_rsa
remoteRef:
key: /cl01tl/gitea/renovate
property: id_rsa
- secretKey: id_rsa.pub
remoteRef:
key: /cl01tl/gitea/renovate
property: id_rsa.pub
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: gitea-meilisearch-master-key-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: gitea-meilisearch-master-key-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
target: target:
template: template:
mergePolicy: Merge mergePolicy: Merge
@@ -153,4 +39,27 @@ spec:
- secretKey: MEILI_MASTER_KEY - secretKey: MEILI_MASTER_KEY
remoteRef: remoteRef:
key: /cl01tl/gitea/meilisearch key: /cl01tl/gitea/meilisearch
property: MEILI_MASTER_KEY property: master-key
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: gitea-oidc-authentik
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: gitea-oidc-authentik
{{- include "custom.labels" . | nindent 4 }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: openbao
data:
- secretKey: secret
remoteRef:
key: /cl01tl/authentik/oidc/gitea
property: secret
- secretKey: key
remoteRef:
key: /cl01tl/authentik/oidc/gitea
property: client

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gitea app.kubernetes.io/name: gitea
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:
- group: gateway.networking.k8s.io - group: gateway.networking.k8s.io
@@ -21,8 +20,6 @@ spec:
type: PathPrefix type: PathPrefix
value: / value: /
backendRefs: backendRefs:
- group: '' - kind: Service
kind: Service
name: gitea-http name: gitea-http
port: 3000 port: 3000
weight: 100

View File

@@ -1,12 +1,11 @@
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: gitea-tailscale name: {{ .Release.Name }}-tailscale
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gitea-tailscale app.kubernetes.io/name: {{ .Release.Name }}-tailscale
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
tailscale.com/proxy-class: no-metrics tailscale.com/proxy-class: no-metrics
annotations: annotations:
tailscale.com/experimental-forward-cluster-traffic-via-ingress: "true" tailscale.com/experimental-forward-cluster-traffic-via-ingress: "true"
@@ -21,7 +20,7 @@ spec:
http: http:
paths: paths:
- path: / - path: /
pathType: ImplementationSpecific pathType: Prefix
backend: backend:
service: service:
name: gitea-http name: gitea-http

View File

@@ -1,11 +1,10 @@
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
name: gitea name: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gitea app.kubernetes.io/name: {{ .Release.Namespace }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
pod-security.kubernetes.io/audit: privileged pod-security.kubernetes.io/audit: privileged
pod-security.kubernetes.io/enforce: privileged pod-security.kubernetes.io/enforce: privileged
pod-security.kubernetes.io/warn: privileged pod-security.kubernetes.io/warn: privileged

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gitea-themes-storage app.kubernetes.io/name: gitea-themes-storage
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeMode: Filesystem volumeMode: Filesystem
storageClassName: ceph-filesystem storageClassName: ceph-filesystem

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gitea app.kubernetes.io/name: gitea
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
selector: selector:
matchLabels: matchLabels:

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: gitea-ssh app.kubernetes.io/name: gitea-ssh
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
parentRefs: parentRefs:
- group: gateway.networking.k8s.io - group: gateway.networking.k8s.io
@@ -16,8 +15,6 @@ spec:
sectionName: ssh sectionName: ssh
rules: rules:
- backendRefs: - backendRefs:
- group: '' - kind: Service
kind: Service
name: gitea-ssh name: gitea-ssh
port: 22 port: 22
weight: 100

View File

@@ -59,7 +59,7 @@ gitea:
oauth: oauth:
- name: Authentik - name: Authentik
provider: openidConnect provider: openidConnect
existingSecret: gitea-oidc-secret existingSecret: gitea-oidc-authentik
autoDiscoverUrl: https://auth.alexlebens.dev/application/o/gitea/.well-known/openid-configuration autoDiscoverUrl: https://auth.alexlebens.dev/application/o/gitea/.well-known/openid-configuration
iconUrl: https://goauthentik.io/img/icon.png iconUrl: https://goauthentik.io/img/icon.png
scopes: "email profile" scopes: "email profile"
@@ -137,7 +137,7 @@ gitea:
- name: GITEA__INDEXER__ISSUE_INDEXER_CONN_STR - name: GITEA__INDEXER__ISSUE_INDEXER_CONN_STR
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: gitea-meilisearch-master-key-secret name: gitea-meilisearch-key
key: ISSUE_INDEXER_CONN_STR key: ISSUE_INDEXER_CONN_STR
valkey-cluster: valkey-cluster:
enabled: false enabled: false
@@ -235,7 +235,7 @@ meilisearch:
MEILI_ENV: production MEILI_ENV: production
MEILI_EXPERIMENTAL_DUMPLESS_UPGRADE: true MEILI_EXPERIMENTAL_DUMPLESS_UPGRADE: true
auth: auth:
existingMasterKeySecret: gitea-meilisearch-master-key-secret existingMasterKeySecret: gitea-meilisearch-key
persistence: persistence:
enabled: true enabled: true
storageClass: ceph-block storageClass: ceph-block

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,98 +1,44 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: grafana-auth-secret name: grafana-config
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-auth-secret app.kubernetes.io/name: grafana-config
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: admin-user - secretKey: admin-user
remoteRef: remoteRef:
key: /cl01tl/grafana/auth key: /cl01tl/grafana/config
property: admin-user property: admin-user
- secretKey: admin-password - secretKey: admin-password
remoteRef: remoteRef:
key: /cl01tl/grafana/auth key: /cl01tl/grafana/config
property: admin-password property: admin-password
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: grafana-oauth-secret name: grafana-oidc-authentik
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-oauth-secret app.kubernetes.io/name: grafana-oidc-authentik
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: AUTH_CLIENT_ID - secretKey: AUTH_CLIENT_ID
remoteRef: remoteRef:
key: /authentik/oidc/grafana key: /cl01tl/authentik/oidc/grafana
property: client property: client
- secretKey: AUTH_CLIENT_SECRET - secretKey: AUTH_CLIENT_SECRET
remoteRef: remoteRef:
key: /authentik/oidc/grafana key: /cl01tl/authentik/oidc/grafana
property: secret property: secret
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: grafana-operator-postgresql-18-cluster-backup-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: grafana-operator-postgresql-18-cluster-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: ACCESS_KEY_ID
remoteRef:
key: /digital-ocean/home-infra/postgres-backups
property: access
- secretKey: ACCESS_SECRET_KEY
remoteRef:
key: /digital-ocean/home-infra/postgres-backups
property: secret
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: grafana-operator-postgresql-18-cluster-backup-secret-garage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: grafana-operator-postgresql-18-cluster-backup-secret-garage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: ACCESS_KEY_ID
remoteRef:
key: /garage/home-infra/postgres-backups
property: ACCESS_KEY_ID
- secretKey: ACCESS_SECRET_KEY
remoteRef:
key: /garage/home-infra/postgres-backups
property: ACCESS_SECRET_KEY
- secretKey: ACCESS_REGION
remoteRef:
key: /garage/home-infra/postgres-backups
property: ACCESS_REGION

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-ceph app.kubernetes.io/name: grafana-dashboard-ceph
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -24,8 +23,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-coredns app.kubernetes.io/name: grafana-dashboard-coredns
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -43,8 +41,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-etcd app.kubernetes.io/name: grafana-dashboard-etcd
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -62,8 +59,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-garage app.kubernetes.io/name: grafana-dashboard-garage
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -81,8 +77,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-loki app.kubernetes.io/name: grafana-dashboard-loki
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -100,8 +95,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-node-full app.kubernetes.io/name: grafana-dashboard-node-full
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -119,8 +113,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-node-short app.kubernetes.io/name: grafana-dashboard-node-short
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -138,8 +131,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-pods app.kubernetes.io/name: grafana-dashboard-pods
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -157,8 +149,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-argocd app.kubernetes.io/name: grafana-dashboard-argocd
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -176,8 +167,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-blocky app.kubernetes.io/name: grafana-dashboard-blocky
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -195,8 +185,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-cert-manager app.kubernetes.io/name: grafana-dashboard-cert-manager
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -214,8 +203,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-cloudnative-pg app.kubernetes.io/name: grafana-dashboard-cloudnative-pg
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -233,8 +221,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-descheduler app.kubernetes.io/name: grafana-dashboard-descheduler
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -252,8 +239,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-external-dns app.kubernetes.io/name: grafana-dashboard-external-dns
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -271,8 +257,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-external-secrets app.kubernetes.io/name: grafana-dashboard-external-secrets
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -290,8 +275,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-gatus app.kubernetes.io/name: grafana-dashboard-gatus
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -309,8 +293,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-operator app.kubernetes.io/name: grafana-dashboard-operator
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -328,8 +311,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-harbor app.kubernetes.io/name: grafana-dashboard-harbor
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -347,8 +329,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-speedtest-exporter app.kubernetes.io/name: grafana-dashboard-speedtest-exporter
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -366,8 +347,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-spegel app.kubernetes.io/name: grafana-dashboard-spegel
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -385,8 +365,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-traefik app.kubernetes.io/name: grafana-dashboard-traefik
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -404,8 +383,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-tdarr app.kubernetes.io/name: grafana-dashboard-tdarr
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -423,8 +401,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-unpoller app.kubernetes.io/name: grafana-dashboard-unpoller
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -442,8 +419,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-version-checker-internal app.kubernetes.io/name: grafana-dashboard-version-checker-internal
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -461,8 +437,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-version-checker app.kubernetes.io/name: grafana-dashboard-version-checker
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -480,8 +455,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-volsync app.kubernetes.io/name: grafana-dashboard-volsync
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -499,8 +473,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-s3 app.kubernetes.io/name: grafana-dashboard-s3
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -518,8 +491,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-authentik app.kubernetes.io/name: grafana-dashboard-authentik
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -537,8 +509,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-gitea app.kubernetes.io/name: grafana-dashboard-gitea
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -556,8 +527,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-ntfy app.kubernetes.io/name: grafana-dashboard-ntfy
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -575,8 +545,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-openbao app.kubernetes.io/name: grafana-dashboard-openbao
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -594,8 +563,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-qbittorrent app.kubernetes.io/name: grafana-dashboard-qbittorrent
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -613,8 +581,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-vault app.kubernetes.io/name: grafana-dashboard-vault
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -632,8 +599,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-unpackerr app.kubernetes.io/name: grafana-dashboard-unpackerr
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -651,8 +617,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-airgradient app.kubernetes.io/name: grafana-dashboard-airgradient
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -670,8 +635,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-server-power-consumption app.kubernetes.io/name: grafana-dashboard-server-power-consumption
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -689,8 +653,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-immich app.kubernetes.io/name: grafana-dashboard-immich
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -708,8 +671,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-jellyfin app.kubernetes.io/name: grafana-dashboard-jellyfin
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -727,8 +689,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-navidrome app.kubernetes.io/name: grafana-dashboard-navidrome
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -746,8 +707,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-radarr app.kubernetes.io/name: grafana-dashboard-radarr
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -765,8 +725,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-servarr app.kubernetes.io/name: grafana-dashboard-servarr
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -784,8 +743,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-dashboard-sonarr app.kubernetes.io/name: grafana-dashboard-sonarr
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-datasource-prometheus app.kubernetes.io/name: grafana-datasource-prometheus
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
datasource: datasource:
name: Prometheus name: Prometheus
@@ -33,8 +32,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-datasource-loki app.kubernetes.io/name: grafana-datasource-loki
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
datasource: datasource:
name: Loki name: Loki

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-folder-application app.kubernetes.io/name: grafana-folder-application
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -40,8 +39,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-folder-iot app.kubernetes.io/name: grafana-folder-iot
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -75,8 +73,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-folder-platform app.kubernetes.io/name: grafana-folder-platform
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -110,8 +107,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-folder-service app.kubernetes.io/name: grafana-folder-service
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:
@@ -145,8 +141,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-folder-system app.kubernetes.io/name: grafana-folder-system
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
instanceSelector: instanceSelector:
matchLabels: matchLabels:

View File

@@ -5,8 +5,7 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grafana-main app.kubernetes.io/name: grafana-main
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
app: grafana-main app: grafana-main
spec: spec:
config: config:
@@ -66,22 +65,22 @@ spec:
- name: AUTH_CLIENT_ID - name: AUTH_CLIENT_ID
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: grafana-oauth-secret name: grafana-oidc-authentik
key: AUTH_CLIENT_ID key: AUTH_CLIENT_ID
- name: AUTH_CLIENT_SECRET - name: AUTH_CLIENT_SECRET
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: grafana-oauth-secret name: grafana-oidc-authentik
key: AUTH_CLIENT_SECRET key: AUTH_CLIENT_SECRET
- name: ADMIN_USER - name: ADMIN_USER
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: grafana-auth-secret name: grafana-config
key: admin-user key: admin-user
- name: ADMIN_PASSWORD - name: ADMIN_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: grafana-auth-secret name: grafana-config
key: admin-password key: admin-password
- name: DB_HOST - name: DB_HOST
valueFrom: valueFrom:

View File

@@ -0,0 +1,24 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}
{{/*
NFS names
*/}}
{{- define "custom.booksNfsName" -}}
grimmory-books-nfs-storage
{{- end -}}
{{- define "custom.booksImportNfsName" -}}
grimmory-books-import-nfs-storage
{{- end -}}

View File

@@ -1,42 +1,21 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: grimmory-database-secret name: grimmory-database-config
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grimmory-database-secret app.kubernetes.io/name: grimmory-database-config
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: password - secretKey: password
remoteRef: remoteRef:
key: /cl01tl/grimmory/database key: /cl01tl/grimmory/database
property: password property: password
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: grimmory-data-replication-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: grimmory-data-replication-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: psk.txt
remoteRef:
key: /cl01tl/grimmory/replication
property: psk.txt
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
@@ -45,12 +24,11 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grimmory-mariadb-cluster-backup-secret-external app.kubernetes.io/name: grimmory-mariadb-cluster-backup-secret-external
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: access - secretKey: access
remoteRef: remoteRef:
@@ -69,18 +47,17 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grimmory-mariadb-cluster-backup-secret-garage app.kubernetes.io/name: grimmory-mariadb-cluster-backup-secret-garage
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: access - secretKey: access
remoteRef: remoteRef:
key: /garage/home-infra/mariadb-backups key: /garage/home-infra/mariadb-backups
property: access property: ACCESS_KEY_ID
- secretKey: secret - secretKey: secret
remoteRef: remoteRef:
key: /garage/home-infra/mariadb-backups key: /garage/home-infra/mariadb-backups
property: secret property: ACCESS_SECRET_KEY

View File

@@ -1,13 +1,7 @@
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
name: grimmory name: {{ .Release.Namespace }}
annotations:
volsync.backube/privileged-movers: "true"
labels: labels:
app.kubernetes.io/name: grimmory app.kubernetes.io/name: {{ .Release.Namespace }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
pod-security.kubernetes.io/audit: privileged
pod-security.kubernetes.io/enforce: privileged
pod-security.kubernetes.io/warn: privileged

View File

@@ -1,14 +1,13 @@
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: grimmory-books-nfs-storage name: {{ include "custom.booksNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grimmory-books-nfs-storage app.kubernetes.io/name: {{ include "custom.booksNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: grimmory-books-nfs-storage volumeName: {{ include "custom.booksNfsName" . }}
storageClassName: nfs-client storageClassName: nfs-client
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
@@ -20,14 +19,13 @@ spec:
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: grimmory-books-import-nfs-storage name: {{ include "custom.booksImportNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grimmory-books-import-nfs-storage app.kubernetes.io/name: {{ include "custom.booksImportNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: grimmory-books-import-nfs-storage volumeName: {{ include "custom.booksImportNfsName" . }}
storageClassName: nfs-client storageClassName: nfs-client
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany

View File

@@ -1,12 +1,11 @@
apiVersion: v1 apiVersion: v1
kind: PersistentVolume kind: PersistentVolume
metadata: metadata:
name: grimmory-books-nfs-storage name: {{ include "custom.booksNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grimmory-books-nfs-storage app.kubernetes.io/name: {{ include "custom.booksNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client storageClassName: nfs-client
@@ -26,12 +25,11 @@ spec:
apiVersion: v1 apiVersion: v1
kind: PersistentVolume kind: PersistentVolume
metadata: metadata:
name: grimmory-books-import-nfs-storage name: {{ include "custom.booksImportNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: grimmory-books-import-nfs-storage app.kubernetes.io/name: {{ include "custom.booksImportNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client storageClassName: nfs-client
@@ -40,7 +38,7 @@ spec:
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
nfs: nfs:
path: /volume2/Storage/Books Import path: '/volume2/Storage/Books Import'
server: synologybond.alexlebens.net server: synologybond.alexlebens.net
mountOptions: mountOptions:
- vers=4 - vers=4

View File

@@ -27,7 +27,7 @@ grimmory:
- name: DATABASE_PASSWORD - name: DATABASE_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: grimmory-database-secret name: grimmory-database-config
key: password key: password
- name: GRIMMORY_PORT - name: GRIMMORY_PORT
value: 6060 value: 6060
@@ -98,7 +98,7 @@ mariadb-cluster:
mariadb: mariadb:
rootPasswordSecretKeyRef: rootPasswordSecretKeyRef:
generate: false generate: false
name: grimmory-database-secret name: grimmory-database-config
key: password key: password
storage: storage:
size: 5Gi size: 5Gi

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -5,12 +5,11 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: harbor-secret app.kubernetes.io/name: harbor-secret
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: HARBOR_ADMIN_PASSWORD - secretKey: HARBOR_ADMIN_PASSWORD
remoteRef: remoteRef:
@@ -18,12 +17,12 @@ spec:
property: admin-password property: admin-password
- secretKey: secretKey - secretKey: secretKey
remoteRef: remoteRef:
key: /cl01tl/harbor/config key: /cl01tl/harbor/key
property: secretKey property: secret-key
- secretKey: CSRF_KEY - secretKey: CSRF_KEY
remoteRef: remoteRef:
key: /cl01tl/harbor/core key: /cl01tl/harbor/key
property: CSRF_KEY property: csrf-key
- secretKey: secret - secretKey: secret
remoteRef: remoteRef:
key: /cl01tl/harbor/core key: /cl01tl/harbor/core
@@ -39,24 +38,20 @@ spec:
- secretKey: JOBSERVICE_SECRET - secretKey: JOBSERVICE_SECRET
remoteRef: remoteRef:
key: /cl01tl/harbor/jobservice key: /cl01tl/harbor/jobservice
property: JOBSERVICE_SECRET property: secret
- secretKey: REGISTRY_HTTP_SECRET - secretKey: REGISTRY_HTTP_SECRET
remoteRef: remoteRef:
key: /cl01tl/harbor/registry key: /cl01tl/harbor/registry
property: REGISTRY_HTTP_SECRET property: http-secret
- secretKey: REGISTRY_REDIS_PASSWORD
remoteRef:
key: /cl01tl/harbor/registry
property: REGISTRY_REDIS_PASSWORD
- secretKey: REGISTRY_HTPASSWD - secretKey: REGISTRY_HTPASSWD
remoteRef: remoteRef:
key: /cl01tl/harbor/registry key: /cl01tl/harbor/registry
property: REGISTRY_HTPASSWD property: ht-passwd
- secretKey: REGISTRY_CREDENTIAL_PASSWORD - secretKey: REGISTRY_CREDENTIAL_PASSWORD
remoteRef: remoteRef:
key: /cl01tl/harbor/registry key: /cl01tl/harbor/registry
property: REGISTRY_CREDENTIAL_PASSWORD property: credential-password
- secretKey: REGISTRY_PASSWD - secretKey: REGISTRY_PASSWD
remoteRef: remoteRef:
key: /cl01tl/harbor/registry key: /cl01tl/harbor/registry
property: REGISTRY_CREDENTIAL_PASSWORD property: credential-password

View File

@@ -0,0 +1,21 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}
{{/*
ServiceAccount name
*/}}
{{- define "custom.serviceAccountName" -}}
headlamp-admin
{{- end -}}

View File

@@ -5,16 +5,15 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: cluster-admin-oidc app.kubernetes.io/name: cluster-admin-oidc
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole
name: cluster-admin name: cluster-admin
apiGroup: rbac.authorization.k8s.io
subjects: subjects:
- kind: User - apiGroup: rbac.authorization.k8s.io
kind: User
name: https://authentik.alexlebens.net/application/o/headlamp/#alexanderlebens@gmail.com name: https://authentik.alexlebens.net/application/o/headlamp/#alexanderlebens@gmail.com
apiGroup: rbac.authorization.k8s.io
- kind: ServiceAccount - kind: ServiceAccount
name: headlamp-admin name: {{ include "custom.serviceAccountName" . }}
namespace: headlamp namespace: {{ .Release.Namespace }}

View File

@@ -1,38 +1,37 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: headlamp-oidc-secret name: headlamp-oidc-authentik
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: headlamp-oidc-secret app.kubernetes.io/name: headlamp-oidc-authentik
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: OIDC_CLIENT_ID - secretKey: OIDC_CLIENT_ID
remoteRef: remoteRef:
key: /authentik/oidc/headlamp key: /cl01tl/authentik/oidc/headlamp
property: client property: client
- secretKey: OIDC_CLIENT_SECRET - secretKey: OIDC_CLIENT_SECRET
remoteRef: remoteRef:
key: /authentik/oidc/headlamp key: /cl01tl/authentik/oidc/headlamp
property: secret property: secret
- secretKey: OIDC_ISSUER_URL - secretKey: OIDC_ISSUER_URL
remoteRef: remoteRef:
key: /authentik/oidc/headlamp key: /cl01tl/authentik/oidc/headlamp
property: issuer property: issuer
- secretKey: OIDC_SCOPES - secretKey: OIDC_SCOPES
remoteRef: remoteRef:
key: /authentik/oidc/headlamp key: /cl01tl/authentik/oidc/headlamp
property: scopes property: scopes
- secretKey: HEADLAMP_CONFIG_OIDC_VALIDATOR_IDP_ISSUER_URL - secretKey: HEADLAMP_CONFIG_OIDC_VALIDATOR_IDP_ISSUER_URL
remoteRef: remoteRef:
key: /authentik/oidc/headlamp key: /cl01tl/authentik/oidc/headlamp
property: validator-issuer-url property: issuer
- secretKey: HEADLAMP_CONFIG_OIDC_VALIDATOR_CLIENT_ID - secretKey: HEADLAMP_CONFIG_OIDC_VALIDATOR_CLIENT_ID
remoteRef: remoteRef:
key: /authentik/oidc/headlamp key: /cl01tl/authentik/oidc/headlamp
property: validator-client-id property: client

View File

@@ -1,9 +1,8 @@
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: headlamp-admin name: {{ include "custom.serviceAccountName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: headlamp-admin app.kubernetes.io/name: {{ include "custom.serviceAccountName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}

View File

@@ -10,7 +10,7 @@ headlamp:
create: false create: false
externalSecret: externalSecret:
enabled: true enabled: true
name: headlamp-oidc-secret name: headlamp-oidc-authentik
watchPlugins: true watchPlugins: true
httpRoute: httpRoute:
enabled: true enabled: true
@@ -27,11 +27,9 @@ headlamp:
type: PathPrefix type: PathPrefix
value: / value: /
backendRefs: backendRefs:
- group: '' - kind: Service
kind: Service
name: headlamp name: headlamp
port: 80 port: 80
weight: 100
resources: resources:
requests: requests:
cpu: 1m cpu: 1m

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,42 +1,40 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: home-assistant-code-server-password-secret name: home-assistant-code-server-password
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: home-assistant-code-server-password-secret app.kubernetes.io/name: home-assistant-code-server-password
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: PASSWORD - secretKey: PASSWORD
remoteRef: remoteRef:
key: /cl01tl/home-assistant/code-server/auth key: /cl01tl/home-assistant/code-server
property: PASSWORD property: password
- secretKey: SUDO_PASSWORD - secretKey: SUDO_PASSWORD
remoteRef: remoteRef:
key: /cl01tl/home-assistant/code-server/auth key: /cl01tl/home-assistant/code-server
property: SUDO_PASSWORD property: sudo-password
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: home-assistant-token-secret name: home-assistant-metric-token
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: home-assistant-token-secret app.kubernetes.io/name: home-assistant-metric-token
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: bearer-token - secretKey: bearer-token
remoteRef: remoteRef:
key: /cl01tl/home-assistant/auth key: /cl01tl/home-assistant/config
property: bearer-token property: bearer-token

View File

@@ -35,7 +35,7 @@ home-assistant:
value: /config value: /config
envFrom: envFrom:
- secretRef: - secretRef:
name: home-assistant-code-server-password-secret name: home-assistant-code-server-password
service: service:
main: main:
controller: main controller: main
@@ -63,7 +63,7 @@ home-assistant:
scrapeTimeout: 1m scrapeTimeout: 1m
path: /api/prometheus path: /api/prometheus
bearerTokenSecret: bearerTokenSecret:
name: home-assistant-token-secret name: home-assistant-metric-token
key: bearer-token key: bearer-token
route: route:
main: main:

View File

@@ -0,0 +1,21 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}
{{/*
CluserRole Name
*/}}
{{- define "custom.clusterRoleName" -}}
homepage
{{- end -}}

View File

@@ -1,16 +1,15 @@
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
name: homepage name: {{ include "custom.clusterRoleName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: homepage app.kubernetes.io/name: {{ include "custom.clusterRoleName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
roleRef: roleRef:
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
kind: ClusterRole kind: ClusterRole
name: homepage name: {{ include "custom.clusterRoleName" . }}
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: homepage name: homepage

View File

@@ -1,12 +1,11 @@
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
name: homepage name: {{ include "custom.clusterRoleName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: homepage app.kubernetes.io/name: {{ include "custom.clusterRoleName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
rules: rules:
- apiGroups: - apiGroups:
- "" - ""

View File

@@ -1,20 +1,19 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: homepage-keys-secret name: homepage-secrets
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: homepage-keys-secret app.kubernetes.io/name: homepage-secrets
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: HOMEPAGE_VAR_GITEA_API_TOKEN - secretKey: HOMEPAGE_VAR_GITEA_API_TOKEN
remoteRef: remoteRef:
key: /cl01tl/gitea/auth/homepage key: /cl01tl/gitea/users/bot
property: token property: token
- secretKey: HOMEPAGE_VAR_ARGOCD_API_TOKEN - secretKey: HOMEPAGE_VAR_ARGOCD_API_TOKEN
remoteRef: remoteRef:
@@ -34,47 +33,47 @@ spec:
property: key property: key
- secretKey: HOMEPAGE_VAR_SYNOLOGY_USER - secretKey: HOMEPAGE_VAR_SYNOLOGY_USER
remoteRef: remoteRef:
key: /synology/auth/cl01tl key: /synology/users/remote_stats
property: user property: user
- secretKey: HOMEPAGE_VAR_SYNOLOGY_PASSWORD - secretKey: HOMEPAGE_VAR_SYNOLOGY_PASSWORD
remoteRef: remoteRef:
key: /synology/auth/cl01tl key: /synology/users/remote_stats
property: password property: password
- secretKey: HOMEPAGE_VAR_UNIFI_API_KEY - secretKey: HOMEPAGE_VAR_UNIFI_API_KEY
remoteRef: remoteRef:
key: /unifi/auth/cl01tl key: /unifi/users/cl01tl
property: api-key property: api-key
- secretKey: HOMEPAGE_VAR_SONARR_KEY - secretKey: HOMEPAGE_VAR_SONARR_KEY
remoteRef: remoteRef:
key: /cl01tl/sonarr4/key key: /cl01tl/sonarr/key
property: key property: key
- secretKey: HOMEPAGE_VAR_SONARR4K_KEY - secretKey: HOMEPAGE_VAR_SONARR4K_KEY
remoteRef: remoteRef:
key: /cl01tl/sonarr4-4k/key key: /cl01tl/sonarr-4k/key
property: key property: key
- secretKey: HOMEPAGE_VAR_SONARRANIME_KEY - secretKey: HOMEPAGE_VAR_SONARRANIME_KEY
remoteRef: remoteRef:
key: /cl01tl/sonarr4-anime/key key: /cl01tl/sonarr-anime/key
property: key property: key
- secretKey: HOMEPAGE_VAR_RADARR_KEY - secretKey: HOMEPAGE_VAR_RADARR_KEY
remoteRef: remoteRef:
key: /cl01tl/radarr5/key key: /cl01tl/radarr/key
property: key property: key
- secretKey: HOMEPAGE_VAR_RADARR4K_KEY - secretKey: HOMEPAGE_VAR_RADARR4K_KEY
remoteRef: remoteRef:
key: /cl01tl/radarr5-4k/key key: /cl01tl/radarr-4k/key
property: key property: key
- secretKey: HOMEPAGE_VAR_RADARRANIME_KEY - secretKey: HOMEPAGE_VAR_RADARRANIME_KEY
remoteRef: remoteRef:
key: /cl01tl/radarr5-anime/key key: /cl01tl/radarr-anime/key
property: key property: key
- secretKey: HOMEPAGE_VAR_RADARRSTANDUP_KEY - secretKey: HOMEPAGE_VAR_RADARRSTANDUP_KEY
remoteRef: remoteRef:
key: /cl01tl/radarr5-standup/key key: /cl01tl/radarr-standup/key
property: key property: key
- secretKey: HOMEPAGE_VAR_LIDARR_KEY - secretKey: HOMEPAGE_VAR_LIDARR_KEY
remoteRef: remoteRef:
key: /cl01tl/lidarr2/key key: /cl01tl/lidarr/key
property: key property: key
- secretKey: HOMEPAGE_VAR_PROWLARR_KEY - secretKey: HOMEPAGE_VAR_PROWLARR_KEY
remoteRef: remoteRef:

View File

@@ -22,7 +22,7 @@ homepage:
value: home.alexlebens.net value: home.alexlebens.net
envFrom: envFrom:
- secretRef: - secretRef:
name: homepage-keys-secret name: homepage-secrets
resources: resources:
requests: requests:
cpu: 1m cpu: 1m

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,18 +0,0 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: immich-config-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: immich-config-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: immich.json
remoteRef:
key: /cl01tl/immich/config
property: immich.json

View File

@@ -0,0 +1,18 @@
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: immich-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: immich-config
{{- include "custom.labels" . | nindent 4 }}
spec:
provider: openbao
parameters:
baoAddress: "http://openbao-internal.openbao:8200"
roleName: immich
objects: |
- objectName: immich.json
fileName: immich.json
secretPath: secret/data/cl01tl/immich/config
secretKey: immich.json

View File

@@ -4,6 +4,8 @@ immich:
type: deployment type: deployment
replicas: 1 replicas: 1
strategy: Recreate strategy: Recreate
serviceAccount:
name: immich
containers: containers:
main: main:
image: image:
@@ -86,6 +88,10 @@ immich:
gpu.intel.com/i915: 1 gpu.intel.com/i915: 1
cpu: 10m cpu: 10m
memory: 500Mi memory: 500Mi
serviceAccount:
immich:
enabled: true
staticToken: true
service: service:
main: main:
controller: main controller: main
@@ -135,9 +141,13 @@ immich:
value: / value: /
persistence: persistence:
config: config:
enabled: true type: custom
type: secret volumeSpec:
name: immich-config-secret csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: immich-config
advancedMounts: advancedMounts:
main: main:
main: main:

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,11 +1,10 @@
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
name: intel-device-plugin name: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: intel-device-plugin app.kubernetes.io/name: {{ .Release.Namespace }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
pod-security.kubernetes.io/audit: privileged pod-security.kubernetes.io/audit: privileged
pod-security.kubernetes.io/enforce: privileged pod-security.kubernetes.io/enforce: privileged
pod-security.kubernetes.io/warn: privileged pod-security.kubernetes.io/warn: privileged

View File

@@ -0,0 +1,24 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}
{{/*
NFS names
*/}}
{{- define "custom.storageNfsName" -}}
jellyfin-nfs-storage
{{- end -}}
{{- define "custom.storageYoutubeNfsName" -}}
jellyfin-youtube-nfs-storage
{{- end -}}

View File

@@ -1,38 +1,36 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: jellyfin-exporter-secret name: jellyfin-metric-token
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: jellyfin-exporter-secret app.kubernetes.io/name: jellyfin-metric-token
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: token - secretKey: token
remoteRef: remoteRef:
key: /cl01tl/jellyfin/exporter key: /cl01tl/jellyfin/metrics
property: token property: token
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: jellyfin-meilisearch-master-key-secret name: jellyfin-meilisearch-key
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: jellyfin-meilisearch-master-key-secret app.kubernetes.io/name: jellyfin-meilisearch-key
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: MEILI_MASTER_KEY - secretKey: MEILI_MASTER_KEY
remoteRef: remoteRef:
key: /cl01tl/jellyfin/meilisearch key: /cl01tl/jellyfin/meilisearch
property: MEILI_MASTER_KEY property: master-key

View File

@@ -1,14 +1,13 @@
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: jellyfin-nfs-storage name: {{ include "custom.storageNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: jellyfin-nfs-storage app.kubernetes.io/name: {{ include "custom.storageNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: jellyfin-nfs-storage volumeName: {{ include "custom.storageNfsName" . }}
storageClassName: nfs-client storageClassName: nfs-client
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany
@@ -20,14 +19,13 @@ spec:
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: jellyfin-youtube-nfs-storage name: {{ include "custom.storageYoutubeNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: jellyfin-youtube-nfs-storage app.kubernetes.io/name: {{ include "custom.storageYoutubeNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: jellyfin-youtube-nfs-storage volumeName: {{ include "custom.storageYoutubeNfsName" . }}
storageClassName: nfs-client storageClassName: nfs-client
accessModes: accessModes:
- ReadOnlyMany - ReadOnlyMany

View File

@@ -1,12 +1,11 @@
apiVersion: v1 apiVersion: v1
kind: PersistentVolume kind: PersistentVolume
metadata: metadata:
name: jellyfin-nfs-storage name: {{ include "custom.storageNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: jellyfin-nfs-storage app.kubernetes.io/name: {{ include "custom.storageNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client storageClassName: nfs-client
@@ -26,12 +25,11 @@ spec:
apiVersion: v1 apiVersion: v1
kind: PersistentVolume kind: PersistentVolume
metadata: metadata:
name: jellyfin-youtube-nfs-storage name: {{ include "custom.storageYoutubeNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: jellyfin-youtube-nfs-storage app.kubernetes.io/name: {{ include "custom.storageYoutubeNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
persistentVolumeReclaimPolicy: Retain persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client storageClassName: nfs-client

View File

@@ -48,7 +48,7 @@ jellyfin:
- name: TOKEN - name: TOKEN
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: jellyfin-exporter-secret name: jellyfin-metric-token
key: token key: token
service: service:
main: main:
@@ -133,7 +133,7 @@ meilisearch:
MEILI_ENV: production MEILI_ENV: production
MEILI_EXPERIMENTAL_DUMPLESS_UPGRADE: true MEILI_EXPERIMENTAL_DUMPLESS_UPGRADE: true
auth: auth:
existingMasterKeySecret: jellyfin-meilisearch-master-key-secret existingMasterKeySecret: jellyfin-meilisearch-key
persistence: persistence:
enabled: true enabled: true
storageClass: ceph-block storageClass: ceph-block

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,26 +1,25 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: jellystat-secret name: jellystat-config
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: jellystat-secret app.kubernetes.io/name: jellystat-config
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: secret-key - secretKey: secret-key
remoteRef: remoteRef:
key: /cl01tl/jellystat/auth key: /cl01tl/jellystat/key
property: secret-key property: secret-key
- secretKey: user - secretKey: user
remoteRef: remoteRef:
key: /cl01tl/jellystat/auth key: /cl01tl/jellystat/config
property: user property: user
- secretKey: password - secretKey: password
remoteRef: remoteRef:
key: /cl01tl/jellystat/auth key: /cl01tl/jellystat/cconfig
property: password property: password

View File

@@ -15,17 +15,17 @@ jellystat:
- name: JWT_SECRET - name: JWT_SECRET
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: jellystat-secret name: jellystat-config
key: secret-key key: secret-key
- name: JS_USER - name: JS_USER
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: jellystat-secret name: jellystat-config
key: user key: user
- name: JS_PASSWORD - name: JS_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: jellystat-secret name: jellystat-config
key: password key: password
- name: POSTGRES_USER - name: POSTGRES_USER
valueFrom: valueFrom:

View File

@@ -0,0 +1,14 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -1,48 +1,80 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: karakeep-key-secret name: karakeep-key
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: karakeep-key-secret app.kubernetes.io/name: karakeep-key
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: key - secretKey: key
remoteRef: remoteRef:
key: /cl01tl/karakeep/key key: /cl01tl/karakeep/key
property: key property: key
- secretKey: prometheus-token
remoteRef:
key: /cl01tl/karakeep/key
property: prometheus-token
--- ---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: karakeep-oidc-secret name: karakeep-metric-token
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: karakeep-oidc-secret app.kubernetes.io/name: karakeep-key-secret
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data:
- secretKey: prometheus-token
remoteRef:
key: /cl01tl/karakeep/metrics
property: token
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: karakeep-meilisearch-key
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: karakeep-meilisearch-key
{{- include "custom.labels" . | nindent 4 }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: openbao
data:
- secretKey: MEILI_MASTER_KEY
remoteRef:
key: /cl01tl/karakeep/meilisearch
property: master-key
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: karakeep-oidc-authentik
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: karakeep-oidc-authentik
{{- include "custom.labels" . | nindent 4 }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: openbao
data: data:
- secretKey: AUTHENTIK_CLIENT_ID - secretKey: AUTHENTIK_CLIENT_ID
remoteRef: remoteRef:
key: /authentik/oidc/karakeep key: /cl01tl/authentik/oidc/karakeep
property: client property: client
- secretKey: AUTHENTIK_CLIENT_SECRET - secretKey: AUTHENTIK_CLIENT_SECRET
remoteRef: remoteRef:
key: /authentik/oidc/karakeep key: /cl01tl/authentik/oidc/karakeep
property: secret property: secret
--- ---
@@ -53,12 +85,11 @@ metadata:
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: karakeep-bucket-garage app.kubernetes.io/name: karakeep-bucket-garage
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: ACCESS_KEY_ID - secretKey: ACCESS_KEY_ID
remoteRef: remoteRef:
@@ -72,23 +103,11 @@ spec:
remoteRef: remoteRef:
key: /garage/home-infra/karakeep-assets key: /garage/home-infra/karakeep-assets
property: ACCESS_REGION property: ACCESS_REGION
- secretKey: BUCKET
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: karakeep-meilisearch-master-key-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: karakeep-meilisearch-master-key-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: MEILI_MASTER_KEY
remoteRef: remoteRef:
key: /cl01tl/karakeep/meilisearch key: /garage/home-infra/karakeep-assets
property: MEILI_MASTER_KEY property: BUCKET
- secretKey: ENDPOINT
remoteRef:
key: /garage/config
property: ENDPOINT_LOCAL

View File

@@ -19,22 +19,28 @@ karakeep:
- name: NEXTAUTH_SECRET - name: NEXTAUTH_SECRET
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: karakeep-key-secret name: karakeep-key
key: key key: key
- name: PROMETHEUS_AUTH_TOKEN - name: PROMETHEUS_AUTH_TOKEN
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: karakeep-key-secret name: karakeep-metric-token
key: prometheus-token key: prometheus-token
- name: ASSET_STORE_S3_ENDPOINT - name: ASSET_STORE_S3_ENDPOINT
value: http://garage-main.garage:3900 valueFrom:
secretKeyRef:
name: karakeep-bucket-garage
key: ENDPOINT
- name: ASSET_STORE_S3_REGION - name: ASSET_STORE_S3_REGION
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: karakeep-bucket-garage name: karakeep-bucket-garage
key: ACCESS_REGION key: ACCESS_REGION
- name: ASSET_STORE_S3_BUCKET - name: ASSET_STORE_S3_BUCKET
value: karakeep-assets valueFrom:
secretKeyRef:
name: karakeep-bucket-garage
key: BUCKET
- name: ASSET_STORE_S3_ACCESS_KEY_ID - name: ASSET_STORE_S3_ACCESS_KEY_ID
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
@@ -52,7 +58,7 @@ karakeep:
- name: MEILI_MASTER_KEY - name: MEILI_MASTER_KEY
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: karakeep-meilisearch-master-key-secret name: karakeep-meilisearch-key
key: MEILI_MASTER_KEY key: MEILI_MASTER_KEY
- name: BROWSER_WEB_URL - name: BROWSER_WEB_URL
value: http://karakeep.karakeep:9222 value: http://karakeep.karakeep:9222
@@ -67,12 +73,12 @@ karakeep:
- name: OAUTH_CLIENT_ID - name: OAUTH_CLIENT_ID
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: karakeep-oidc-secret name: karakeep-oidc-authentik
key: AUTHENTIK_CLIENT_ID key: AUTHENTIK_CLIENT_ID
- name: OAUTH_CLIENT_SECRET - name: OAUTH_CLIENT_SECRET
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: karakeep-oidc-secret name: karakeep-oidc-authentik
key: AUTHENTIK_CLIENT_SECRET key: AUTHENTIK_CLIENT_SECRET
- name: OLLAMA_BASE_URL - name: OLLAMA_BASE_URL
value: http://ollama-server-3.ollama:11434 value: http://ollama-server-3.ollama:11434
@@ -126,7 +132,7 @@ karakeep:
authorization: authorization:
credentials: credentials:
key: prometheus-token key: prometheus-token
name: karakeep-key-secret name: karakeep-metric-token
persistence: persistence:
data: data:
forceRename: karakeep forceRename: karakeep
@@ -144,7 +150,7 @@ meilisearch:
MEILI_ENV: production MEILI_ENV: production
MEILI_EXPERIMENTAL_DUMPLESS_UPGRADE: true MEILI_EXPERIMENTAL_DUMPLESS_UPGRADE: true
auth: auth:
existingMasterKeySecret: karakeep-meilisearch-master-key-secret existingMasterKeySecret: karakeep-meilisearch-key
persistence: persistence:
enabled: true enabled: true
storageClass: ceph-block storageClass: ceph-block

View File

@@ -0,0 +1,21 @@
{{/*
Common labels
*/}}
{{- define "custom.labels" -}}
{{ include "custom.selectorLabels" $ }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "custom.selectorLabels" -}}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}
{{/*
NFS names
*/}}
{{- define "custom.storageNfsName" -}}
kiwix-nfs-storage
{{- end -}}

View File

@@ -1,14 +1,13 @@
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: kiwix-nfs-storage name: {{ include "custom.storageNfsName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: kiwix-nfs-storage app.kubernetes.io/name: {{ include "custom.storageNfsName" . }}
app.kubernetes.io/instance: {{ .Release.Name }} {{- include "custom.labels" . | nindent 4 }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec: spec:
volumeName: kiwix-nfs-storage volumeName: {{ include "custom.storageNfsName" . }}
storageClassName: nfs-client storageClassName: nfs-client
accessModes: accessModes:
- ReadWriteMany - ReadWriteMany

Some files were not shown because too many files have changed in this diff Show More