From 38f0697b7934ea495c1d577307689c8d40a9f3af Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Sat, 13 Dec 2025 02:13:44 +0100 Subject: [PATCH] feat: Add longhorn backup job --- clusters/testing/kustomization.yaml | 1 + configs/artifacts.yaml | 5 +++++ configs/longhorn-jobs/kustomization.yaml | 6 ++++++ configs/longhorn-jobs/longhorn-jobs.yaml | 16 ++++++++++++++++ configs/longhorn-jobs/recurring-job-backup.yaml | 12 ++++++++++++ .../recurring-job-snapshot-delete.yaml | 12 ++++++++++++ .../longhorn-jobs/recurring-job-snapshot.yaml | 12 ++++++++++++ 7 files changed, 64 insertions(+) create mode 100644 configs/longhorn-jobs/kustomization.yaml create mode 100644 configs/longhorn-jobs/longhorn-jobs.yaml create mode 100644 configs/longhorn-jobs/recurring-job-backup.yaml create mode 100644 configs/longhorn-jobs/recurring-job-snapshot-delete.yaml create mode 100644 configs/longhorn-jobs/recurring-job-snapshot.yaml diff --git a/clusters/testing/kustomization.yaml b/clusters/testing/kustomization.yaml index b23187a..bbff85c 100644 --- a/clusters/testing/kustomization.yaml +++ b/clusters/testing/kustomization.yaml @@ -14,3 +14,4 @@ resources: - ../../configs/letsencrypt/letsencrypt.yaml - ../../configs/certificates/certificates.yaml - ../../configs/telegram-alerts/telegram-alerts.yaml + - ../../configs/longhorn-jobs/longhorn-jobs.yaml diff --git a/configs/artifacts.yaml b/configs/artifacts.yaml index 10f29eb..96119a6 100644 --- a/configs/artifacts.yaml +++ b/configs/artifacts.yaml @@ -24,3 +24,8 @@ spec: copy: - from: "@foundation/configs/telegram-alerts/**" to: "@artifact/" + - name: longhorn-jobs + originRevision: "@foundation" + copy: + - from: "@foundation/configs/longhorn-jobs/**" + to: "@artifact/" diff --git a/configs/longhorn-jobs/kustomization.yaml b/configs/longhorn-jobs/kustomization.yaml new file mode 100644 index 0000000..d00b58e --- /dev/null +++ b/configs/longhorn-jobs/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - recurring-job-backup.yaml + - recurring-job-snapshot.yaml + - recurring-job-snapshot-delete.yaml diff --git a/configs/longhorn-jobs/longhorn-jobs.yaml b/configs/longhorn-jobs/longhorn-jobs.yaml new file mode 100644 index 0000000..fbd69ab --- /dev/null +++ b/configs/longhorn-jobs/longhorn-jobs.yaml @@ -0,0 +1,16 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: longhorn-jobs + namespace: flux-system +spec: + interval: 1h + retryInterval: 2m + timeout: 5m + dependsOn: + - name: longhorn + sourceRef: + kind: ExternalArtifact + name: longhorn-jobs + prune: true + wait: true diff --git a/configs/longhorn-jobs/recurring-job-backup.yaml b/configs/longhorn-jobs/recurring-job-backup.yaml new file mode 100644 index 0000000..c4de982 --- /dev/null +++ b/configs/longhorn-jobs/recurring-job-backup.yaml @@ -0,0 +1,12 @@ +apiVersion: longhorn.io/v1beta2 +kind: RecurringJob +metadata: + name: backup + namespace: longhorn-system +spec: + cron: "*/5 * * * *" + task: "backup" + retain: 5 + concurrency: 2 + groups: + - default diff --git a/configs/longhorn-jobs/recurring-job-snapshot-delete.yaml b/configs/longhorn-jobs/recurring-job-snapshot-delete.yaml new file mode 100644 index 0000000..6f7e7be --- /dev/null +++ b/configs/longhorn-jobs/recurring-job-snapshot-delete.yaml @@ -0,0 +1,12 @@ +apiVersion: longhorn.io/v1beta2 +kind: RecurringJob +metadata: + name: snapshot-delete + namespace: longhorn-system +spec: + cron: "2/5 * * * *" + task: "snapshot-delete" + retain: 5 + concurrency: 2 + groups: + - default diff --git a/configs/longhorn-jobs/recurring-job-snapshot.yaml b/configs/longhorn-jobs/recurring-job-snapshot.yaml new file mode 100644 index 0000000..2a95c49 --- /dev/null +++ b/configs/longhorn-jobs/recurring-job-snapshot.yaml @@ -0,0 +1,12 @@ +apiVersion: longhorn.io/v1beta2 +kind: RecurringJob +metadata: + name: snapshot + namespace: longhorn-system +spec: + cron: "1/5 * * * *" + task: "snapshot" + retain: 5 + concurrency: 2 + groups: + - default