Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(common): add cleanup flags for volsync #29830

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ tests:
restic:
repository: test-release-name-common-test-destbackup-volsync-mybackup1
copyMethod: Snapshot
cleanupTempPVC: false
cleanupCachePVC: false
cacheCapacity: 10Gi
capacity: 100Gi
accessModes:
Expand Down Expand Up @@ -107,6 +109,8 @@ tests:
restic:
repository: test-release-name-common-test-destbackup-volsync-mybackup1
copyMethod: Clone
cleanupTempPVC: false
cleanupCachePVC: false
cacheCapacity: 10Gi
capacity: 200Gi
accessModes:
Expand Down Expand Up @@ -150,6 +154,8 @@ tests:
restic:
repository: test-release-name-common-test-destbackup-volsync-mybackup1
copyMethod: Clone
cleanupTempPVC: false
cleanupCachePVC: false
cacheCapacity: 10Gi
capacity: 100Gi
accessModes:
Expand Down Expand Up @@ -194,6 +200,8 @@ tests:
restic:
repository: test-release-name-common-test-destbackup-volsync-mybackup1
copyMethod: Clone
cleanupTempPVC: false
cleanupCachePVC: false
cacheCapacity: 10Gi
capacity: 100Gi
accessModes:
Expand Down Expand Up @@ -239,6 +247,8 @@ tests:
restic:
repository: test-release-name-common-test-destbackup-volsync-mybackup1
copyMethod: Clone
cleanupTempPVC: false
cleanupCachePVC: false
cacheCapacity: 10Gi
capacity: 100Gi
accessModes:
Expand All @@ -249,3 +259,48 @@ tests:
fsGroup: 568
runAsUser: 568
runAsGroup: 568

- it: should generate correct spec with cleanup flags
set:
persistence:
destbackup:
enabled: true
type: pvc
mountPath: /backedup
volsync:
- name: mybackup1
type: restic
credentials: mys3
cleanupTempPVC: true
cleanupCachePVC: true
dest:
enabled: true
src:
enabled: false
credentials: *credentials
asserts:
- documentIndex: *replicationDestDoc
isKind:
of: ReplicationDestination
- documentIndex: *replicationDestDoc
isAPIVersion:
of: volsync.backube/v1alpha1
- documentIndex: *replicationDestDoc
equal:
path: spec
value:
trigger:
manual: restore-once
restic:
repository: test-release-name-common-test-destbackup-volsync-mybackup1
copyMethod: Snapshot
cleanupTempPVC: true
cleanupCachePVC: true
cacheCapacity: 10Gi
capacity: 100Gi
accessModes:
- ReadWriteOnce
moverSecurityContext:
fsGroup: 568
runAsUser: 568
runAsGroup: 568
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ tests:
content:
repository: test-release-name-common-test-srcbackup-volsync-mybackup1
copyMethod: Snapshot
cleanupTempPVC: false
cleanupCachePVC: false
pruneIntervalDays: 7
retain:
hourly: 6
Expand Down Expand Up @@ -128,6 +130,8 @@ tests:
content:
repository: test-release-name-common-test-srcbackup-volsync-mybackup1
copyMethod: Clone
cleanupTempPVC: false
cleanupCachePVC: false
pruneIntervalDays: 5
retain:
hourly: 20
Expand Down Expand Up @@ -191,6 +195,8 @@ tests:
content:
repository: test-release-name-common-test-srcbackup-volsync-mybackup1
copyMethod: Clone
cleanupTempPVC: false
cleanupCachePVC: false
pruneIntervalDays: 5
retain:
hourly: 20
Expand Down Expand Up @@ -255,6 +261,8 @@ tests:
content:
repository: test-release-name-common-test-srcbackup-volsync-mybackup1
copyMethod: Clone
cleanupTempPVC: false
cleanupCachePVC: false
pruneIntervalDays: 5
retain:
hourly: 20
Expand Down Expand Up @@ -320,6 +328,8 @@ tests:
content:
repository: test-release-name-common-test-srcbackup-volsync-mybackup1
copyMethod: Clone
cleanupTempPVC: false
cleanupCachePVC: false
pruneIntervalDays: 5
retain:
hourly: 20
Expand All @@ -339,3 +349,58 @@ tests:
matchRegex:
path: spec.restic.unlock
pattern: "^[0-9]{14}$"

- it: should generate correct spec with cleanup flags
set:
persistence:
srcbackup:
enabled: true
type: pvc
mountPath: /backedup
volsync:
- name: mybackup1
type: restic
credentials: mys3
copyMethod: Clone
cleanupTempPVC: true
cleanupCachePVC: true
dest:
enabled: false
src:
enabled: true
trigger:
schedule: "1 0 * * *"
retain:
hourly: 20
daily: 5
weekly: 3
pruneIntervalDays: 5
credentials: *credentials
asserts:
- documentIndex: *replicationDestDoc
isKind:
of: ReplicationSource
- documentIndex: *replicationDestDoc
isAPIVersion:
of: volsync.backube/v1alpha1
- documentIndex: *replicationDestDoc
isSubset:
path: spec.restic
content:
repository: test-release-name-common-test-srcbackup-volsync-mybackup1
copyMethod: Clone
cleanupTempPVC: true
cleanupCachePVC: true
pruneIntervalDays: 5
retain:
hourly: 20
daily: 5
weekly: 3
monthly: 3
yearly: 1
accessModes:
- ReadWriteOnce
moverSecurityContext:
fsGroup: 568
runAsUser: 568
runAsGroup: 568
2 changes: 1 addition & 1 deletion charts/library/common/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,4 @@ sources:
- https://hub.docker.com/_/
- https://hub.docker.com/r/mikefarah/yq
type: library
version: 25.2.2
version: 25.2.3
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@ objectData:
{{- $objectData := .objectData -}}
{{- $volsyncData := .volsyncData -}}

{{- $cleanupTempPVC := false -}}
{{- $cleanupCachePVC := false -}}
{{- if and (hasKey $volsyncData "cleanupTempPVC") (kindIs "bool" $volsyncData.cleanupTempPVC) -}}
{{- $cleanupTempPVC = $volsyncData.cleanupTempPVC -}}
{{- end -}}
{{- if and (hasKey $volsyncData "cleanupCachePVC") (kindIs "bool" $volsyncData.cleanupCachePVC) -}}
{{- $cleanupCachePVC = $volsyncData.cleanupCachePVC -}}
{{- end -}}

{{- $capacity := $rootCtx.Values.global.fallbackDefaults.pvcSize -}}
{{- if $objectData.size -}}
{{- $capacity = $objectData.size -}}
Expand Down Expand Up @@ -47,6 +56,8 @@ spec:
repository: {{ $volsyncData.repository }}
copyMethod: {{ $volsyncData.copyMethod | default "Snapshot"}}
capacity: {{ $capacity }}
cleanupTempPVC: {{ $cleanupTempPVC }}
cleanupCachePVC: {{ $cleanupCachePVC }}
{{- include "tc.v1.common.lib.volsync.storage" (dict "rootCtx" $rootCtx "objectData" $objectData "volsyncData" $volsyncData "target" "dest") | trim | nindent 4 }}
{{- include "tc.v1.common.lib.volsync.cache" (dict "rootCtx" $rootCtx "objectData" $objectData "volsyncData" $volsyncData "target" "dest") | trim | nindent 4 }}
{{- include "tc.v1.common.lib.volsync.moversecuritycontext" (dict "rootCtx" $rootCtx "objectData" $objectData "volsyncData" $volsyncData "target" "dest") | trim | nindent 4 }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,16 @@ objectData:
{{- $schedule := "0 0 * * *" -}}
{{- if and $volsyncData.src.trigger $volsyncData.src.trigger.schedule -}}
{{- $schedule = $volsyncData.src.trigger.schedule -}}
{{- end }}
{{- end -}}

{{- $cleanupTempPVC := false -}}
{{- $cleanupCachePVC := false -}}
{{- if and (hasKey $volsyncData "cleanupTempPVC") (kindIs "bool" $volsyncData.cleanupTempPVC) -}}
{{- $cleanupTempPVC = $volsyncData.cleanupTempPVC -}}
{{- end -}}
{{- if and (hasKey $volsyncData "cleanupCachePVC") (kindIs "bool" $volsyncData.cleanupCachePVC) -}}
{{- $cleanupCachePVC = $volsyncData.cleanupCachePVC -}}
{{- end -}}

{{- $retain := dict "hourly" 6 "daily" 5 "weekly" 4 "monthly" 3 "yearly" 1 -}}
{{- if $volsyncData.src.retain -}}
Expand Down Expand Up @@ -54,6 +63,8 @@ spec:
{{ $volsyncData.type }}:
repository: {{ $volsyncData.repository }}
copyMethod: {{ $volsyncData.copyMethod | default "Snapshot" }}
cleanupTempPVC: {{ $cleanupTempPVC }}
cleanupCachePVC: {{ $cleanupCachePVC }}
pruneIntervalDays: {{ $volsyncData.src.pruneIntervalDays | default 7 }}
unlock: {{ now | date "20060102150405" | quote }}
retain:
Expand Down
3 changes: 3 additions & 0 deletions cspell.config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ words:
- autoplay
- autoscan
- autosync
- backube
- backupname
- basicauthexample
- batnoter
Expand Down Expand Up @@ -188,6 +189,7 @@ words:
- netdata
- networkv
- nextcloud
- nindent
- nitter
- nobind
- nocaptcha
Expand Down Expand Up @@ -328,6 +330,7 @@ words:
- vdev
- vikunja
- vm's
- volsync
- wakeup
- watchyourlan
- webbasecontrol
Expand Down
Loading