bucket-replication/templates/cronjob.yaml (86 lines of code) (raw):
{{- if eq .Values.registryBackup.obc.action "replication" -}}
{{ range $index, $bucket := (lookup "objectbucket.io/v1alpha1" "ObjectBucketClaim" $.Values.configuration.registryName "").items }}
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ include "bucket-replication.fullname" $ }}-{{ $bucket.metadata.name}}
namespace: {{ $.Release.Namespace }}
labels:
{{- include "bucket-replication.labels" $ | nindent 4 }}
obc-bucket-name: {{ $bucket.metadata.name }}
spec:
suspend: {{ $.Values.global.registryBackup.obc.suspend }}
concurrencyPolicy: Forbid
startingDeadlineSeconds: 30
schedule: {{ $.Values.global.registryBackup.obc.cronExpression | default "30 19 * * *" | quote }}
jobTemplate:
spec:
template:
metadata:
name: {{ include "bucket-replication.fullname" $ }}
labels:
{{- include "bucket-replication.labels" $ | nindent 12 }}
obc-bucket-name: {{ $bucket.metadata.name }}
spec:
nodeSelector:
node: {{ $.Values.configuration.registryName }}
tolerations:
- key: node/{{ $.Values.configuration.registryName }}
operator: Exists
{{- if or (eq $bucket.metadata.name "datafactory-ceph-bucket") (eq $bucket.metadata.name "lowcode-form-data-storage") (eq $bucket.metadata.name "file-ceph-bucket")}}
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node
operator: In
values:
- {{ $.Values.configuration.registryName }}
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- {{ include "bucket-replication.name" $ }}
topologyKey: kubernetes.io/hostname
{{- end }}
serviceAccountName: {{ include "bucket-replication.serviceAccountName" $ }}
containers:
- name: {{ include "bucket-replication.fullname" $ }}
image: {{ include "bucket-replication.image" $ }}
env:
- name: BACKUP_BUCKET
value: {{ include "bucket-replication.backupBucket" $ }}
- name: REGISTRY_NAMESPACE
value: {{ $.Values.configuration.registryName }}
- name: OBJECT_BUCKET_CLAIM
value: {{ $bucket.metadata.name }}
- name: MAX_AGE
value: {{ $.Values.registryBackup.obc.maxAge | quote }}
- name: S3_ENDPOINT
value: {{ include "bucket-replication.minioEndpoint" $ }}
command: [ "/bin/sh" ]
args:
- '-c'
- /opt/scripts/bucket-replication.sh
volumeMounts:
- name: {{ include "bucket-replication.fullname" $ }}
mountPath: /opt/scripts
envFrom:
- secretRef:
name: {{ include "bucket-replication.secretName" $ }}
restartPolicy: Never
tolerations:
- key: node/{{ $.Values.configuration.registryName }}
operator: Exists
volumes:
- name: {{ include "bucket-replication.fullname" $ }}
configMap:
name: {{ include "bucket-replication.fullname" $ }}
defaultMode: 0755
{{- end }}
{{- end }}