Compare commits

...

6 Commits

Author SHA1 Message Date
9b50e6b890 feat: tidy external secrets
All checks were successful
lint-and-test / lint-helm (push) Successful in 20s
release-charts-postgres-cluster / release (push) Successful in 16s
lint-and-test / chart-testing (push) Successful in 3m51s
renovate / renovate (push) Successful in 3m6s
2026-04-24 15:39:30 -05:00
617b14b7aa feat: switch to openbao
All checks were successful
lint-and-test / lint-helm (push) Successful in 25s
release-charts-volsync-target / release (push) Successful in 37s
renovate / renovate (push) Successful in 59s
lint-and-test / chart-testing (push) Successful in 2m1s
2026-04-24 15:38:27 -05:00
47a93ddf40 feat: switch to openbao
All checks were successful
lint-and-test / lint-helm (push) Successful in 42s
release-charts-postgres-cluster / release (push) Successful in 47s
release-charts-valkey / release (push) Successful in 33s
renovate / renovate (push) Successful in 47s
release-charts-generic-device-plugin / release (push) Successful in 1m22s
lint-and-test / chart-testing (push) Successful in 4m59s
2026-04-24 15:14:43 -05:00
9f3b66af07 feat: switch to openbao
All checks were successful
lint-and-test / lint-helm (push) Successful in 36s
renovate / renovate (push) Successful in 53s
release-charts-cloudflared / release (push) Successful in 1m30s
lint-and-test / chart-testing (push) Successful in 6m33s
2026-04-24 15:06:34 -05:00
b69b96e97b Merge pull request 'chore(deps): update ghcr.io/squat/generic-device-plugin:latest docker digest to d9e098e' (#193) from renovate/unified-squatgeneric-device-plugin into main
All checks were successful
lint-and-test / lint-helm (push) Successful in 50s
lint-and-test / chart-testing (push) Successful in 1m1s
release-charts-generic-device-plugin / release (push) Successful in 1m0s
renovate / renovate (push) Successful in 1m39s
2026-04-15 00:02:40 +00:00
178176fd4b chore(deps): update ghcr.io/squat/generic-device-plugin:latest docker digest to d9e098e
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
lint-and-test / lint-helm (pull_request) Failing after 58s
lint-and-test / chart-testing (pull_request) Successful in 2m52s
2026-04-15 00:02:09 +00:00
15 changed files with 70 additions and 121 deletions

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: cloudflared name: cloudflared
version: 2.5.0 version: 2.6.0
description: Cloudflared Tunnel description: Cloudflared Tunnel
keywords: keywords:
- cloudflare - cloudflare

View File

@@ -1,6 +1,6 @@
# cloudflared # cloudflared
![Version: 2.5.0](https://img.shields.io/badge/Version-2.5.0-informational?style=flat-square) ![AppVersion: 2026.3.0](https://img.shields.io/badge/AppVersion-2026.3.0-informational?style=flat-square) ![Version: 2.6.0](https://img.shields.io/badge/Version-2.6.0-informational?style=flat-square) ![AppVersion: 2026.3.0](https://img.shields.io/badge/AppVersion-2026.3.0-informational?style=flat-square)
Cloudflared Tunnel Cloudflared Tunnel
@@ -29,11 +29,11 @@ Cloudflared Tunnel
| image | object | `{"pullPolicy":"IfNotPresent","repository":"cloudflare/cloudflared","tag":"2026.3.0@sha256:6b599ca3e974349ead3286d178da61d291961182ec3fe9c505e1dd02c8ac31b0"}` | Default image | | image | object | `{"pullPolicy":"IfNotPresent","repository":"cloudflare/cloudflared","tag":"2026.3.0@sha256:6b599ca3e974349ead3286d178da61d291961182ec3fe9c505e1dd02c8ac31b0"}` | Default image |
| name | string | `""` | Name override of release | | name | string | `""` | Name override of release |
| resources | object | `{"requests":{"cpu":"1m","memory":"20Mi"}}` | Default resources | | resources | object | `{"requests":{"cpu":"1m","memory":"20Mi"}}` | Default resources |
| secret | object | `{"existingSecret":{"key":"cf-tunnel-token","name":"cloudflared-secret"},"externalSecret":{"additionalLabels":{},"enabled":true,"nameOverride":"","store":{"name":"vault","path":"/cloudflare/tunnels","property":"token"}}}` | Secret configuration | | secret | object | `{"existingSecret":{"key":"cf-tunnel-token","name":"cloudflared-secret"},"externalSecret":{"additionalLabels":{},"enabled":true,"nameOverride":"","store":{"name":"openbao","path":"/cloudflare/tunnels","property":"token"}}}` | Secret configuration |
| secret.existingSecret | object | `{"key":"cf-tunnel-token","name":"cloudflared-secret"}` | Name of existing secret that contains Cloudflare token | | secret.existingSecret | object | `{"key":"cf-tunnel-token","name":"cloudflared-secret"}` | Name of existing secret that contains Cloudflare token |
| secret.externalSecret | object | `{"additionalLabels":{},"enabled":true,"nameOverride":"","store":{"name":"vault","path":"/cloudflare/tunnels","property":"token"}}` | External Secret configuration | | secret.externalSecret | object | `{"additionalLabels":{},"enabled":true,"nameOverride":"","store":{"name":"openbao","path":"/cloudflare/tunnels","property":"token"}}` | External Secret configuration |
| secret.externalSecret.additionalLabels | object | `{}` | Add additional labels | | secret.externalSecret.additionalLabels | object | `{}` | Add additional labels |
| secret.externalSecret.store | object | `{"name":"vault","path":"/cloudflare/tunnels","property":"token"}` | Cluster store config | | secret.externalSecret.store | object | `{"name":"openbao","path":"/cloudflare/tunnels","property":"token"}` | Cluster store config |
---------------------------------------------- ----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2) Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)

View File

@@ -14,10 +14,6 @@ spec:
data: data:
- secretKey: {{ include "secret.key" . }} - secretKey: {{ include "secret.key" . }}
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ include "secret.path" . }} key: {{ include "secret.path" . }}
metadataPolicy: None
property: {{ .Values.secret.externalSecret.store.property | required "External Secret store property is required" }} property: {{ .Values.secret.externalSecret.store.property | required "External Secret store property is required" }}
{{- end }} {{- end }}

View File

@@ -11,7 +11,7 @@ secret:
# -- Cluster store config # -- Cluster store config
store: store:
name: vault name: openbao
path: /cloudflare/tunnels path: /cloudflare/tunnels
property: token property: token

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: generic-device-plugin name: generic-device-plugin
version: 0.20.30 version: 0.20.31
description: Generic Device Plugin description: Generic Device Plugin
keywords: keywords:
- generic-device-plugin - generic-device-plugin

View File

@@ -1,6 +1,6 @@
# generic-device-plugin # generic-device-plugin
![Version: 0.20.29](https://img.shields.io/badge/Version-0.20.29-informational?style=flat-square) ![AppVersion: 0.20.17](https://img.shields.io/badge/AppVersion-0.20.17-informational?style=flat-square) ![Version: 0.20.31](https://img.shields.io/badge/Version-0.20.31-informational?style=flat-square) ![AppVersion: 0.20.17](https://img.shields.io/badge/AppVersion-0.20.17-informational?style=flat-square)
Generic Device Plugin Generic Device Plugin
@@ -28,7 +28,7 @@ Generic Device Plugin
| config | object | `{"data":"devices:\n - name: serial\n groups:\n - paths:\n - path: /dev/ttyUSB*\n - paths:\n - path: /dev/ttyACM*\n - paths:\n - path: /dev/tty.usb*\n - paths:\n - path: /dev/cu.*\n - paths:\n - path: /dev/cuaU*\n - paths:\n - path: /dev/rfcomm*\n - name: video\n groups:\n - paths:\n - path: /dev/video0\n - name: fuse\n groups:\n - count: 10\n paths:\n - path: /dev/fuse\n - name: audio\n groups:\n - count: 10\n paths:\n - path: /dev/snd\n - name: capture\n groups:\n - paths:\n - path: /dev/snd/controlC0\n - path: /dev/snd/pcmC0D0c\n - paths:\n - path: /dev/snd/controlC1\n mountPath: /dev/snd/controlC0\n - path: /dev/snd/pcmC1D0c\n mountPath: /dev/snd/pcmC0D0c\n - paths:\n - path: /dev/snd/controlC2\n mountPath: /dev/snd/controlC0\n - path: /dev/snd/pcmC2D0c\n mountPath: /dev/snd/pcmC0D0c\n - paths:\n - path: /dev/snd/controlC3\n mountPath: /dev/snd/controlC0\n - path: /dev/snd/pcmC3D0c\n mountPath: /dev/snd/pcmC0D0c\n","enabled":true}` | Config map | | config | object | `{"data":"devices:\n - name: serial\n groups:\n - paths:\n - path: /dev/ttyUSB*\n - paths:\n - path: /dev/ttyACM*\n - paths:\n - path: /dev/tty.usb*\n - paths:\n - path: /dev/cu.*\n - paths:\n - path: /dev/cuaU*\n - paths:\n - path: /dev/rfcomm*\n - name: video\n groups:\n - paths:\n - path: /dev/video0\n - name: fuse\n groups:\n - count: 10\n paths:\n - path: /dev/fuse\n - name: audio\n groups:\n - count: 10\n paths:\n - path: /dev/snd\n - name: capture\n groups:\n - paths:\n - path: /dev/snd/controlC0\n - path: /dev/snd/pcmC0D0c\n - paths:\n - path: /dev/snd/controlC1\n mountPath: /dev/snd/controlC0\n - path: /dev/snd/pcmC1D0c\n mountPath: /dev/snd/pcmC0D0c\n - paths:\n - path: /dev/snd/controlC2\n mountPath: /dev/snd/controlC0\n - path: /dev/snd/pcmC2D0c\n mountPath: /dev/snd/pcmC0D0c\n - paths:\n - path: /dev/snd/controlC3\n mountPath: /dev/snd/controlC0\n - path: /dev/snd/pcmC3D0c\n mountPath: /dev/snd/pcmC0D0c\n","enabled":true}` | Config map |
| config.data | string | See [values.yaml](./values.yaml) | generic-device-plugin config file [[ref]](https://github.com/squat/generic-device-plugin#usage) | | config.data | string | See [values.yaml](./values.yaml) | generic-device-plugin config file [[ref]](https://github.com/squat/generic-device-plugin#usage) |
| deviceDomain | string | `"devic.es"` | Domain used by devices for identifcation | | deviceDomain | string | `"devic.es"` | Domain used by devices for identifcation |
| image | object | `{"pullPolicy":"Always","repository":"ghcr.io/squat/generic-device-plugin","tag":"latest@sha256:c4e3a24a5f20449e027b9de2c3cee790169ab42220818315f5f8ee9830788981"}` | Default image | | image | object | `{"pullPolicy":"Always","repository":"ghcr.io/squat/generic-device-plugin","tag":"latest@sha256:d9e098e33a20c32a561adb1ef8cace7d5912cd5ffb38f07dd9f83af4bdf38505"}` | Default image |
| name | string | `"generic-device-plugin"` | Name override of release | | name | string | `"generic-device-plugin"` | Name override of release |
| resources | object | `{"requests":{"cpu":"50m","memory":"10Mi"}}` | Default resources | | resources | object | `{"requests":{"cpu":"50m","memory":"10Mi"}}` | Default resources |
| service | object | `{"listenPort":8080}` | Service port | | service | object | `{"listenPort":8080}` | Service port |

View File

@@ -4,7 +4,7 @@ name: generic-device-plugin
# -- Default image # -- Default image
image: image:
repository: ghcr.io/squat/generic-device-plugin repository: ghcr.io/squat/generic-device-plugin
tag: latest@sha256:e11621c21460d231a9d3acfa6fc34be34111fadb85f6842e7c01b3f94899f003 tag: latest@sha256:d9e098e33a20c32a561adb1ef8cace7d5912cd5ffb38f07dd9f83af4bdf38505
pullPolicy: Always pullPolicy: Always
# -- Domain used by devices for identifcation # -- Domain used by devices for identifcation

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: postgres-cluster name: postgres-cluster
version: 7.11.2 version: 7.12.1
description: Cloudnative-pg Cluster description: Cloudnative-pg Cluster
keywords: keywords:
- database - database

View File

@@ -1,6 +1,6 @@
# postgres-cluster # postgres-cluster
![Version: 7.11.2](https://img.shields.io/badge/Version-7.11.2-informational?style=flat-square) ![AppVersion: v1.29.0](https://img.shields.io/badge/AppVersion-v1.29.0-informational?style=flat-square) ![Version: 7.12.1](https://img.shields.io/badge/Version-7.12.1-informational?style=flat-square) ![AppVersion: v1.29.0](https://img.shields.io/badge/AppVersion-v1.29.0-informational?style=flat-square)
Cloudnative-pg Cluster Cloudnative-pg Cluster

View File

@@ -16,28 +16,19 @@ metadata:
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: ACCESS_REGION - secretKey: ACCESS_REGION
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .externalSecretCredentialPath | required "External Secret Credential local path is required" }} key: {{ .externalSecretCredentialPath | required "External Secret Credential local path is required" }}
metadataPolicy: None
property: ACCESS_REGION property: ACCESS_REGION
- secretKey: ACCESS_KEY_ID - secretKey: ACCESS_KEY_ID
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .externalSecretCredentialPath | required "External Secret Credential local path is required" }} key: {{ .externalSecretCredentialPath | required "External Secret Credential local path is required" }}
metadataPolicy: None
property: ACCESS_KEY_ID property: ACCESS_KEY_ID
- secretKey: ACCESS_SECRET_KEY - secretKey: ACCESS_SECRET_KEY
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .externalSecretCredentialPath| required "External Secret Credential local path is required" }} key: {{ .externalSecretCredentialPath| required "External Secret Credential local path is required" }}
metadataPolicy: None
property: ACCESS_SECRET_KEY property: ACCESS_SECRET_KEY
{{ end -}} {{ end -}}
{{ end }} {{ end }}
@@ -58,27 +49,18 @@ metadata:
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
data: data:
- secretKey: ACCESS_REGION - secretKey: ACCESS_REGION
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.recovery.objectStore.externalSecret.credentialPath | required "External Secret Credential local path is required" }} key: {{ .Values.recovery.objectStore.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
metadataPolicy: None
property: ACCESS_REGION property: ACCESS_REGION
- secretKey: ACCESS_KEY_ID - secretKey: ACCESS_KEY_ID
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.recovery.objectStore.externalSecret.credentialPath | required "External Secret Credential local path is required" }} key: {{ .Values.recovery.objectStore.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
metadataPolicy: None
property: ACCESS_KEY_ID property: ACCESS_KEY_ID
- secretKey: ACCESS_SECRET_KEY - secretKey: ACCESS_SECRET_KEY
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.recovery.objectStore.externalSecret.credentialPath | required "External Secret Credential local path is required" }} key: {{ .Values.recovery.objectStore.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
metadataPolicy: None
property: ACCESS_SECRET_KEY property: ACCESS_SECRET_KEY
{{- end }} {{- end }}

View File

@@ -1,6 +1,6 @@
# valkey # valkey
![Version: 0.6.0](https://img.shields.io/badge/Version-0.6.0-informational?style=flat-square) ![AppVersion: 9.0.3](https://img.shields.io/badge/AppVersion-9.0.3-informational?style=flat-square) ![Version: 0.6.1](https://img.shields.io/badge/Version-0.6.1-informational?style=flat-square) ![AppVersion: 9.0.3](https://img.shields.io/badge/AppVersion-9.0.3-informational?style=flat-square)
Valkey chart with preconfigured settings Valkey chart with preconfigured settings
@@ -22,7 +22,7 @@ Valkey chart with preconfigured settings
| Repository | Name | Version | | Repository | Name | Version |
|------------|------|---------| |------------|------|---------|
| https://valkey.io/valkey-helm/ | valkey | 0.9.3 | | https://valkey.io/valkey-helm/ | valkey | 0.9.4 |
## Values ## Values

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: volsync-target name: volsync-target
version: 0.8.0 version: 1.0.0
description: Volsync Replication set to target specific PVC with preconfigured settings description: Volsync Replication set to target specific PVC with preconfigured settings
keywords: keywords:
- volsync-target - volsync-target

View File

@@ -1,6 +1,6 @@
# volsync-target # volsync-target
![Version: 0.8.0](https://img.shields.io/badge/Version-0.8.0-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square) ![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square)
Volsync Replication set to target specific PVC with preconfigured settings Volsync Replication set to target specific PVC with preconfigured settings
@@ -20,21 +20,22 @@ Volsync Replication set to target specific PVC with preconfigured settings
| Key | Type | Default | Description | | Key | Type | Default | Description |
|-----|------|---------|-------------| |-----|------|---------|-------------|
| additionalLabels | object | `{}` | Add additional labels | | additionalLabels | object | `{}` | Add additional labels |
| external | object | `{"enabled":true,"externalSecret":{"credentialPath":"/digital-ocean/home-infra/volsync-backups","volsyncPath":"/volsync/restic/digital-ocean"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 9 * * *"}` | External backup configuration | | external | object | `{"enabled":true,"externalSecret":{"bucketPath":"/digital-ocean/config","credentialPath":"/digital-ocean/home-infra/volsync-backups"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 9 * * *"}` | External backup configuration |
| external.externalSecret | object | `{"credentialPath":"/digital-ocean/home-infra/volsync-backups","volsyncPath":"/volsync/restic/digital-ocean"}` | External Secret configuration | | external.externalSecret | object | `{"bucketPath":"/digital-ocean/config","credentialPath":"/digital-ocean/home-infra/volsync-backups"}` | External Secret configuration |
| external.restic | object | `{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"}` | Backup configuration, inserted directly into the yaml | | external.restic | object | `{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"}` | Backup configuration, inserted directly into the yaml |
| external.schedule | string | `"0 9 * * *"` | 5 character cron schedule | | external.schedule | string | `"0 9 * * *"` | 5 character cron schedule |
| externalSecrets | object | `{"enabled":true}` | Use external secrets | | externalSecrets | object | `{"enabled":true}` | Use external secrets |
| local | object | `{"enabled":false,"externalSecret":{"credentialPath":"/garage/home-infra/volsync-backups","volsyncPath":"/volsync/restic/garage-local"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 8 * * *"}` | Local backup configuration | | kubernetesClusterName | string | `"cl01tl"` | Kubernetes cluster name |
| local.externalSecret | object | `{"credentialPath":"/garage/home-infra/volsync-backups","volsyncPath":"/volsync/restic/garage-local"}` | External Secret configuration | | local | object | `{"enabled":false,"externalSecret":{"bucketPath":"/garage/config","credentialPath":"/garage/home-infra/volsync-backups"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 8 * * *"}` | Local backup configuration |
| local.externalSecret | object | `{"bucketPath":"/garage/config","credentialPath":"/garage/home-infra/volsync-backups"}` | External Secret configuration |
| local.restic | object | `{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"}` | Backup configuration, inserted directly into the yaml | | local.restic | object | `{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"}` | Backup configuration, inserted directly into the yaml |
| local.schedule | string | `"0 8 * * *"` | 5 character cron schedule | | local.schedule | string | `"0 8 * * *"` | 5 character cron schedule |
| moverSecurityContext | object | `{}` | Glocal security context for restic mover | | moverSecurityContext | object | `{}` | Glocal security context for restic mover |
| nameOverride | string | `""` | Default pattern follows <pvcTarget>-backup | | nameOverride | string | `""` | Default pattern follows <pvcTarget>-backup |
| namespaceOverride | string | `""` | Override the namespace of the chart | | namespaceOverride | string | `""` | Override the namespace of the chart |
| pvcTarget | string | `"data"` | Name of the PVC target | | pvcTarget | string | `"data"` | Name of the PVC target |
| remote | object | `{"enabled":false,"externalSecret":{"credentialPath":"/garage/home-infra/volsync-backups","volsyncPath":"/volsync/restic/garage-remote"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 10 * * *"}` | Remote backup configuration | | remote | object | `{"enabled":false,"externalSecret":{"bucketPath":"/garage/config","credentialPath":"/garage/home-infra/volsync-backups"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 10 * * *"}` | Remote backup configuration |
| remote.externalSecret | object | `{"credentialPath":"/garage/home-infra/volsync-backups","volsyncPath":"/volsync/restic/garage-remote"}` | External Secret configuration | | remote.externalSecret | object | `{"bucketPath":"/garage/config","credentialPath":"/garage/home-infra/volsync-backups"}` | External Secret configuration |
| remote.restic | object | `{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"}` | Backup configuration, inserted directly into the yaml | | remote.restic | object | `{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"}` | Backup configuration, inserted directly into the yaml |
| remote.schedule | string | `"0 10 * * *"` | 5 character cron schedule | | remote.schedule | string | `"0 10 * * *"` | 5 character cron schedule |

View File

@@ -14,48 +14,37 @@ metadata:
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
target: target:
template: template:
mergePolicy: Merge mergePolicy: Merge
engineVersion: v2 engineVersion: v2
data: data:
RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}" RESTIC_REPOSITORY: "s3:{{ `{{ .ENDPOINT }}` }}/{{ `{{ .BUCKET }}` }}/{{ .Values.kubernetesClusterName }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}"
data: data:
- secretKey: BUCKET_ENDPOINT - secretKey: ENDPOINT
remoteRef: remoteRef:
conversionStrategy: Default key: {{ .Values.local.externalSecret.bucketPath | required "External Secret Volsync local path is required" }}
decodingStrategy: None property: ENDPOINT_LOCAL
key: {{ .Values.local.externalSecret.volsyncPath | required "External Secret Volsync local path is required" }} - secretKey: BUCKET
metadataPolicy: None remoteRef:
property: BUCKET_ENDPOINT key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Volsync local path is required" }}
property: BUCKET
- secretKey: RESTIC_PASSWORD - secretKey: RESTIC_PASSWORD
remoteRef: remoteRef:
conversionStrategy: Default key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Volsync local path is required" }}
decodingStrategy: None property: RESTIC_PASSWORD_LOCAL
key: {{ .Values.local.externalSecret.volsyncPath | required "External Secret Volsync local path is required" }}
metadataPolicy: None
property: RESTIC_PASSWORD
- secretKey: AWS_DEFAULT_REGION - secretKey: AWS_DEFAULT_REGION
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Credential local path is required" }} key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
metadataPolicy: None
property: ACCESS_REGION property: ACCESS_REGION
- secretKey: AWS_ACCESS_KEY_ID - secretKey: AWS_ACCESS_KEY_ID
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Credential local path is required" }} key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
metadataPolicy: None
property: ACCESS_KEY_ID property: ACCESS_KEY_ID
- secretKey: AWS_SECRET_ACCESS_KEY - secretKey: AWS_SECRET_ACCESS_KEY
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Credential local path is required" }} key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
metadataPolicy: None
property: ACCESS_SECRET_KEY property: ACCESS_SECRET_KEY
{{- end }} {{- end }}
@@ -75,48 +64,37 @@ metadata:
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
target: target:
template: template:
mergePolicy: Merge mergePolicy: Merge
engineVersion: v2 engineVersion: v2
data: data:
RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}" RESTIC_REPOSITORY: "s3:{{ `{{ .ENDPOINT }}` }}/{{ `{{ .BUCKET }}` }}/{{ .Values.kubernetesClusterName }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}"
data: data:
- secretKey: BUCKET_ENDPOINT - secretKey: ENDPOINT
remoteRef: remoteRef:
conversionStrategy: Default key: {{ .Values.remote.externalSecret.bucketPath | required "External Secret Volsync local path is required" }}
decodingStrategy: None property: ENDPOINT_REMOTE
key: {{ .Values.remote.externalSecret.volsyncPath | required "External Secret Volsync remote path is required" }} - secretKey: BUCKET
metadataPolicy: None remoteRef:
property: BUCKET_ENDPOINT key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Volsync local path is required" }}
property: BUCKET
- secretKey: RESTIC_PASSWORD - secretKey: RESTIC_PASSWORD
remoteRef: remoteRef:
conversionStrategy: Default key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Volsync local path is required" }}
decodingStrategy: None property: RESTIC_PASSWORD_REMOTE
key: {{ .Values.remote.externalSecret.volsyncPath | required "External Secret Volsync remote path is required" }}
metadataPolicy: None
property: RESTIC_PASSWORD
- secretKey: AWS_DEFAULT_REGION - secretKey: AWS_DEFAULT_REGION
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Credential remote path is required" }} key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Credential remote path is required" }}
metadataPolicy: None
property: ACCESS_REGION property: ACCESS_REGION
- secretKey: AWS_ACCESS_KEY_ID - secretKey: AWS_ACCESS_KEY_ID
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Credential remote path is required" }} key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Credential remote path is required" }}
metadataPolicy: None
property: ACCESS_KEY_ID property: ACCESS_KEY_ID
- secretKey: AWS_SECRET_ACCESS_KEY - secretKey: AWS_SECRET_ACCESS_KEY
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Credential remote path is required" }} key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Credential remote path is required" }}
metadataPolicy: None
property: ACCESS_SECRET_KEY property: ACCESS_SECRET_KEY
{{- end }} {{- end }}
@@ -136,47 +114,36 @@ metadata:
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: vault name: openbao
target: target:
template: template:
mergePolicy: Merge mergePolicy: Merge
engineVersion: v2 engineVersion: v2
data: data:
RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}" RESTIC_REPOSITORY: "s3:{{ `{{ .ENDPOINT }}` }}/{{ `{{ .BUCKET }}` }}/{{ .Values.kubernetesClusterName }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}"
data: data:
- secretKey: BUCKET_ENDPOINT - secretKey: ENDPOINT
remoteRef: remoteRef:
conversionStrategy: Default key: {{ .Values.external.externalSecret.bucketPath | required "External Secret Volsync external path is required" }}
decodingStrategy: None property: ENDPOINT
key: {{ .Values.external.externalSecret.volsyncPath | required "External Secret Volsync external path is required" }} - secretKey: BUCKET
metadataPolicy: None remoteRef:
property: BUCKET_ENDPOINT key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Volsync local path is required" }}
property: BUCKET
- secretKey: RESTIC_PASSWORD - secretKey: RESTIC_PASSWORD
remoteRef: remoteRef:
conversionStrategy: Default key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Volsync external path is required" }}
decodingStrategy: None
key: {{ .Values.external.externalSecret.volsyncPath | required "External Secret Volsync external path is required" }}
metadataPolicy: None
property: RESTIC_PASSWORD property: RESTIC_PASSWORD
- secretKey: AWS_DEFAULT_REGION - secretKey: AWS_DEFAULT_REGION
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Credential external path is required" }} key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Credential external path is required" }}
metadataPolicy: None property: AWS_REGION
property: AWS_DEFAULT_REGION
- secretKey: AWS_ACCESS_KEY_ID - secretKey: AWS_ACCESS_KEY_ID
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Credential external path is required" }} key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Credential external path is required" }}
metadataPolicy: None
property: AWS_ACCESS_KEY_ID property: AWS_ACCESS_KEY_ID
- secretKey: AWS_SECRET_ACCESS_KEY - secretKey: AWS_SECRET_ACCESS_KEY
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Credential external path is required" }} key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Credential external path is required" }}
metadataPolicy: None
property: AWS_SECRET_ACCESS_KEY property: AWS_SECRET_ACCESS_KEY
{{- end }} {{- end }}

View File

@@ -4,6 +4,9 @@ nameOverride: ""
# -- Override the namespace of the chart # -- Override the namespace of the chart
namespaceOverride: "" namespaceOverride: ""
# -- Kubernetes cluster name
kubernetesClusterName: cl01tl
# -- Add additional labels # -- Add additional labels
additionalLabels: {} additionalLabels: {}
@@ -41,9 +44,9 @@ local:
# -- External Secret configuration # -- External Secret configuration
externalSecret: externalSecret:
# This path must contain the BUCKET_ENDPOINT and RESTIC_PASSWORD # This path must contain the BUCKET_ENDPOINT
volsyncPath: /volsync/restic/garage-local bucketPath: /garage/config
# This path must contain the AWS/S3 credentials # This path must contain the AWS/S3 credentials and RESTIC_PASSWORD
credentialPath: /garage/home-infra/volsync-backups credentialPath: /garage/home-infra/volsync-backups
# -- Remote backup configuration # -- Remote backup configuration
@@ -70,9 +73,9 @@ remote:
# -- External Secret configuration # -- External Secret configuration
externalSecret: externalSecret:
# This path must contain the BUCKET_ENDPOINT and RESTIC_PASSWORD # This path must contain the BUCKET_ENDPOINT
volsyncPath: /volsync/restic/garage-remote bucketPath: /garage/config
# This path must contain the AWS/S3 credentials # This path must contain the AWS/S3 credentials and RESTIC_PASSWORD
credentialPath: /garage/home-infra/volsync-backups credentialPath: /garage/home-infra/volsync-backups
# -- External backup configuration # -- External backup configuration
@@ -99,7 +102,7 @@ external:
# -- External Secret configuration # -- External Secret configuration
externalSecret: externalSecret:
# This path must contain the BUCKET_ENDPOINT and RESTIC_PASSWORD # This path must contain the ENDPOINT
volsyncPath: /volsync/restic/digital-ocean bucketPath: /digital-ocean/config
# This path must contain the AWS/S3 credentials # This path must contain the AWS/S3 credentials and RESTIC_PASSWORD
credentialPath: /digital-ocean/home-infra/volsync-backups credentialPath: /digital-ocean/home-infra/volsync-backups