This repository presents rclone helm chart to deploy in kubernetes.
- Job based deployment as
job
orcronjob
. - Supports setting up mutliple remotes (backends) in
rclone
. - Customizable rclone command to run.
- Facilitates setting
rclone.conf
file through config map resource. - Securely integrates credentials via external secrets operator.
(optioanl when implicit IAM auth methods are missing). - Chart unit tests.
helm repo add rclone https://abarrak.github.io/rclone-helm
helm install rclone-jobs rclone/rclone --version 2.0.0
You can customize both the job and rclone configuration in values.yaml
file.
Key | Type | Default | Description |
---|---|---|---|
affinity | object | {} |
|
backoffLimit | int | 3 |
|
concurrencyPolicy | string | "Forbid" |
|
enableExternalSecrets | bool | false |
|
enablePlainSecrets | bool | false |
|
envVars[0].name | string | "RCLONE_CONFIG_FILE" |
|
envVars[0].value | string | "/opt/rclone.conf" |
|
envVars[1].name | string | "REMOTE_A_NAME" |
|
envVars[1].value | string | "" |
|
envVars[2].name | string | "REMOTE_B_NAME" |
|
envVars[2].value | string | "" |
|
envVars[3].name | string | "REMOTE_A_BUCKET" |
|
envVars[3].value | string | "" |
|
envVars[4].name | string | "REMOTE_B_BUCKET" |
|
envVars[4].value | string | "" |
|
failedJobsHistoryLimit | int | 5 |
|
fullnameOverride | string | "" |
|
image.pullPolicy | string | "IfNotPresent" |
|
image.repository | string | "rclone/rclone" |
|
image.tag | string | "1.68" |
|
imagePullSecrets | list | [] |
|
nameOverride | string | "" |
|
nodeSelector | object | {} |
|
podAnnotations | object | {} |
|
podLabels | object | {} |
|
podSecurityContext | object | {} |
|
rclone.command | string | "rclone copy $REMOTE_A_NAME:\"$REMOTE_A_BUCKET/\" $REMOTE_B_NAME:\"$REMOTE_A_BUCKET/\" --config $RCLONE_CONFIG_FILE --log-level=DEBUG --retries=1 --fast-list --progress --ignore-checksum --metadata --metadata-include \"tier=STANDARD\"\n" |
|
rclone.config | string | "" |
|
remoteBackendsExternalSecrets | list | [] |
|
remoteBackendsSecrets | list | [] |
|
resources | object | {} |
|
restartPolicy | string | "OnFailure" |
|
schedule | string | "0 10 * * *" |
|
securityContext | object | {} |
|
serviceAccount.annotations | object | {} |
|
serviceAccount.automount | bool | true |
|
serviceAccount.create | bool | true |
|
serviceAccount.name | string | "" |
|
startingDeadlineSeconds | string | "" |
|
successfulJobsHistoryLimit | int | 5 |
|
suspend | bool | false |
|
timeZone | string | "" |
|
tolerations | list | [] |
|
ttlSecondsAfterFinished | string | "518400" |
|
volumeMounts[0].mountPath | string | "/opt/rclone.conf" |
|
volumeMounts[0].name | string | "rclone-conf" |
|
volumeMounts[0].readOnly | bool | false |
|
volumeMounts[0].subPath | string | "rclone.conf" |
|
volumes[0].configMap.name | string | "rclone" |
|
volumes[0].name | string | "rclone-conf" |
In case this deployment option was helpful for you, and you liked it.
MIT.