Compare commits

..

3 Commits

Author SHA1 Message Date
7b22271038 add mover security context
All checks were successful
lint-and-test / lint-helm (push) Successful in 10s
lint-and-test / chart-testing (push) Successful in 21s
release-charts-volsync-target / release (push) Successful in 31s
renovate / renovate (push) Successful in 29s
2025-12-15 18:54:50 -06:00
d5a761ab59 fix value path
All checks were successful
release-charts-volsync-target / release (push) Successful in 20s
lint-and-test / lint-helm (push) Successful in 18s
lint-and-test / chart-testing (push) Successful in 24s
renovate / renovate (push) Successful in 41s
2025-12-15 17:43:16 -06:00
913c36f06c fix value path
All checks were successful
lint-and-test / lint-helm (push) Successful in 9s
release-charts-volsync-target / release (push) Successful in 18s
renovate / renovate (push) Successful in 30s
lint-and-test / chart-testing (push) Successful in 32s
2025-12-15 17:41:30 -06:00
5 changed files with 37 additions and 15 deletions

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: volsync-target name: volsync-target
version: 0.1.0 version: 0.4.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.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![AppVersion: 0.14.0](https://img.shields.io/badge/AppVersion-0.14.0-informational?style=flat-square) ![Version: 0.4.0](https://img.shields.io/badge/Version-0.4.0-informational?style=flat-square) ![AppVersion: 0.14.0](https://img.shields.io/badge/AppVersion-0.14.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
@@ -29,6 +29,7 @@ Volsync Replication set to target specific PVC with preconfigured settings
| local.externalSecret | object | `{"credentialPath":"/garage/home-infra/volsync-backups","volsyncPath":"/volsync/restic/garage-local"}` | External Secret configuration | | local.externalSecret | object | `{"credentialPath":"/garage/home-infra/volsync-backups","volsyncPath":"/volsync/restic/garage-local"}` | External Secret configuration |
| local.restic | object | `{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":3,"hourly":1,"monthly":2,"weekly":2,"yearly":4},"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":3,"hourly":1,"monthly":2,"weekly":2,"yearly":4},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"}` | Backup configuration, inserted directly into the yaml |
| local.schedule | string | `"0 2 * * *"` | 5 character cron schedule | | local.schedule | string | `"0 2 * * *"` | 5 character cron schedule |
| 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 |

View File

@@ -87,35 +87,35 @@ spec:
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: {{ .Values.local.externalSecret.volsyncPath | required "External Secret Volsync remote path is required" }} key: {{ .Values.remote.externalSecret.volsyncPath | required "External Secret Volsync remote path is required" }}
metadataPolicy: None metadataPolicy: None
property: BUCKET_ENDPOINT property: BUCKET_ENDPOINT
- secretKey: RESTIC_PASSWORD - secretKey: RESTIC_PASSWORD
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: {{ .Values.local.externalSecret.volsyncPath | required "External Secret Volsync remote path is required" }} key: {{ .Values.remote.externalSecret.volsyncPath | required "External Secret Volsync remote path is required" }}
metadataPolicy: None metadataPolicy: None
property: RESTIC_PASSWORD property: RESTIC_PASSWORD
- secretKey: AWS_DEFAULT_REGION - secretKey: AWS_DEFAULT_REGION
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: {{ .Values.local.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 metadataPolicy: None
property: ACCESS_REGION property: ACCESS_REGION
- secretKey: AWS_ACCESS_KEY_ID - secretKey: AWS_ACCESS_KEY_ID
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: {{ .Values.local.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 metadataPolicy: None
property: ACCESS_KEY_ID property: ACCESS_KEY_ID
- secretKey: AWS_SECRET_ACCESS_KEY - secretKey: AWS_SECRET_ACCESS_KEY
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: {{ .Values.local.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 metadataPolicy: None
property: ACCESS_SECRET_KEY property: ACCESS_SECRET_KEY
{{- end }} {{- end }}
@@ -148,35 +148,35 @@ spec:
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: {{ .Values.local.externalSecret.volsyncPath | required "External Secret Volsync external path is required" }} key: {{ .Values.external.externalSecret.volsyncPath | required "External Secret Volsync external path is required" }}
metadataPolicy: None metadataPolicy: None
property: BUCKET_ENDPOINT property: BUCKET_ENDPOINT
- secretKey: RESTIC_PASSWORD - secretKey: RESTIC_PASSWORD
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: {{ .Values.local.externalSecret.volsyncPath | required "External Secret Volsync external path is required" }} key: {{ .Values.external.externalSecret.volsyncPath | required "External Secret Volsync external path is required" }}
metadataPolicy: None metadataPolicy: None
property: RESTIC_PASSWORD property: RESTIC_PASSWORD
- secretKey: AWS_DEFAULT_REGION - secretKey: AWS_DEFAULT_REGION
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: {{ .Values.local.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 metadataPolicy: None
property: AWS_DEFAULT_REGION property: AWS_DEFAULT_REGION
- secretKey: AWS_ACCESS_KEY_ID - secretKey: AWS_ACCESS_KEY_ID
remoteRef: remoteRef:
conversionStrategy: Default conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: {{ .Values.local.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 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 conversionStrategy: Default
decodingStrategy: None decodingStrategy: None
key: {{ .Values.local.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 metadataPolicy: None
property: AWS_SECRET_ACCESS_KEY property: AWS_SECRET_ACCESS_KEY
{{- end }} {{- end }}

View File

@@ -21,7 +21,13 @@ spec:
retain: retain:
{{- with .Values.local.restic.retain }} {{- with .Values.local.restic.retain }}
{{- toYaml . | nindent 6 }} {{- toYaml . | nindent 6 }}
{{ end }} {{- end }}
{{- if .Values.moverSecurityContext }}
moverSecurityContext:
{{- with .Values.moverSecurityContext }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
copyMethod: {{ .Values.local.restic.copyMethod }} copyMethod: {{ .Values.local.restic.copyMethod }}
storageClassName: {{ .Values.local.restic.storageClassName }} storageClassName: {{ .Values.local.restic.storageClassName }}
volumeSnapshotClassName: {{ .Values.local.restic.volumeSnapshotClassName }} volumeSnapshotClassName: {{ .Values.local.restic.volumeSnapshotClassName }}
@@ -51,7 +57,13 @@ spec:
retain: retain:
{{- with .Values.remote.restic.retain }} {{- with .Values.remote.restic.retain }}
{{- toYaml . | nindent 6 }} {{- toYaml . | nindent 6 }}
{{ end }} {{- end }}
{{- if .Values.moverSecurityContext }}
moverSecurityContext:
{{- with .Values.moverSecurityContext }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
copyMethod: {{ .Values.remote.restic.copyMethod }} copyMethod: {{ .Values.remote.restic.copyMethod }}
storageClassName: {{ .Values.remote.restic.storageClassName }} storageClassName: {{ .Values.remote.restic.storageClassName }}
volumeSnapshotClassName: {{ .Values.remote.restic.volumeSnapshotClassName }} volumeSnapshotClassName: {{ .Values.remote.restic.volumeSnapshotClassName }}
@@ -81,7 +93,13 @@ spec:
retain: retain:
{{- with .Values.external.restic.retain }} {{- with .Values.external.restic.retain }}
{{- toYaml . | nindent 6 }} {{- toYaml . | nindent 6 }}
{{ end }} {{- end }}
{{- if .Values.moverSecurityContext }}
moverSecurityContext:
{{- with .Values.moverSecurityContext }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
copyMethod: {{ .Values.external.restic.copyMethod }} copyMethod: {{ .Values.external.restic.copyMethod }}
storageClassName: {{ .Values.external.restic.storageClassName }} storageClassName: {{ .Values.external.restic.storageClassName }}
volumeSnapshotClassName: {{ .Values.external.restic.volumeSnapshotClassName }} volumeSnapshotClassName: {{ .Values.external.restic.volumeSnapshotClassName }}

View File

@@ -10,6 +10,9 @@ additionalLabels: {}
# -- Name of the PVC target # -- Name of the PVC target
pvcTarget: "data" pvcTarget: "data"
# -- Glocal security context for restic mover
moverSecurityContext: {}
# -- Use external secrets # -- Use external secrets
externalSecrets: externalSecrets:
enabled: true enabled: true