feat: add rclone for bucket mirror
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
{{- include "bjw-s.common.loader.init" . }}
|
||||
|
||||
{{- define "rclone.hardcodedValues" -}}
|
||||
global:
|
||||
nameOverride: {{ include "rclone.name" . }}
|
||||
fullNameOverride: {{ include "rclone.name" . }}
|
||||
controllers:
|
||||
main:
|
||||
type: cronjob
|
||||
{{- with .Values.cronJob }}
|
||||
cronjob:
|
||||
{{- toYaml . | nindent 6 }}
|
||||
{{ end }}
|
||||
containers:
|
||||
sync:
|
||||
image:
|
||||
repository: {{ .Values.image.repository }}
|
||||
tag: {{ .Values.image.tag }}
|
||||
pullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- sync
|
||||
- src:{{ .Values.rclone.source.bucketName }}
|
||||
- dest:{{ .Values.rclone.destination.bucketName }}
|
||||
- --s3-no-check-bucket
|
||||
- --verbose
|
||||
env:
|
||||
- name: RCLONE_S3_PROVIDER
|
||||
value: {{ .Values.rclone.providerType }}
|
||||
- name: RCLONE_CONFIG_SRC_TYPE
|
||||
value: s3
|
||||
- name: RCLONE_CONFIG_SRC_PROVIDER
|
||||
value: {{ .Values.rclone.source.providerType }}
|
||||
- name: RCLONE_CONFIG_SRC_ENV_AUTH
|
||||
value: false
|
||||
- name: RCLONE_CONFIG_SRC_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.sourceSecretName" . }}
|
||||
key: {{ include "secret.envAccessKey" . }}
|
||||
- name: RCLONE_CONFIG_SRC_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.sourceSecretName" . }}
|
||||
key: {{ include "secret.envSecretKey" . }}
|
||||
- name: RCLONE_CONFIG_SRC_REGION
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.sourceSecretName" . }}
|
||||
key: {{ include "secret.envRegion" . }}
|
||||
- name: RCLONE_CONFIG_SRC_ENDPOINT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.sourceSecretName" . }}
|
||||
key: {{ include "secret.envSrcEndpoint" . }}
|
||||
- name: RCLONE_CONFIG_SRC_S3_FORCE_PATH_STYLE
|
||||
value: {{ .Values.rclone.source.forcePathStyle }}
|
||||
- name: RCLONE_CONFIG_DEST_TYPE
|
||||
value: s3
|
||||
- name: RCLONE_CONFIG_DEST_PROVIDER
|
||||
value: {{ .Values.rclone.destination.providerType }}
|
||||
- name: RCLONE_CONFIG_DEST_ENV_AUTH
|
||||
value: false
|
||||
- name: RCLONE_CONFIG_DEST_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envAccessKey" . }}
|
||||
- name: RCLONE_CONFIG_DEST_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envSecretKey" . }}
|
||||
- name: RCLONE_CONFIG_DEST_REGION
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envRegion" . }}
|
||||
- name: RCLONE_CONFIG_DEST_ENDPOINT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envDestEndpoint" . }}
|
||||
- name: RCLONE_CONFIG_SRC_DEST_FORCE_PATH_STYLE
|
||||
value: {{ .Values.rclone.destination.forcePathStyle }}
|
||||
{{- if .Values.prune.enabled }}
|
||||
prune:
|
||||
image:
|
||||
repository: {{ .Values.image.repository }}
|
||||
tag: {{ .Values.image.tag }}
|
||||
pullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- delete
|
||||
- dest:{{ .Values.rclone.destination.bucketName }}
|
||||
- --min-age
|
||||
- {{ .Values.prune.ageToPrune }}
|
||||
- --verbose
|
||||
env:
|
||||
- name: RCLONE_CONFIG_DEST_TYPE
|
||||
value: s3
|
||||
- name: RCLONE_CONFIG_DEST_PROVIDER
|
||||
value: {{ .Values.rclone.destination.providerType }}
|
||||
- name: RCLONE_CONFIG_DEST_ENV_AUTH
|
||||
value: false
|
||||
- name: RCLONE_CONFIG_DEST_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envAccessKey" . }}
|
||||
- name: RCLONE_CONFIG_DEST_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envSecretKey" . }}
|
||||
- name: RCLONE_CONFIG_DEST_REGION
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envRegion" . }}
|
||||
- name: RCLONE_CONFIG_DEST_ENDPOINT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envDestEndpoint" . }}
|
||||
- name: RCLONE_CONFIG_SRC_S3_FORCE_PATH_STYLE
|
||||
value: {{ .Values.rclone.destination.forcePathStyle }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- $_ := mergeOverwrite .Values (include "rclone.hardcodedValues" . | fromYaml) -}}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "bjw-s.common.loader.generate" . }}
|
||||
Reference in New Issue
Block a user