browsertrix/chart/app-templates/replica_job.yaml
2023-11-13 13:45:24 -08:00

104 lines
2.8 KiB
YAML

apiVersion: batch/v1
kind: Job
metadata:
name: "{{ id }}"
labels:
role: "background-job"
job_type: {{ job_type }}
btrix.org: {{ oid }}
spec:
ttlSecondsAfterFinished: 0
backoffLimit: 3
template:
spec:
restartPolicy: Never
priorityClassName: bg-jobs
podFailurePolicy:
rules:
- action: FailJob
onExitCodes:
containerName: rclone
operator: NotIn
values: [0]
containers:
- name: rclone
image: rclone/rclone:latest
env:
{% if job_type == BgJobType.CREATE_REPLICA %}
- name: RCLONE_CONFIG_PRIMARY_TYPE
value: "s3"
- name: RCLONE_CONFIG_PRIMARY_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: "{{ primary_secret_name }}"
key: STORE_ACCESS_KEY
- name: RCLONE_CONFIG_PRIMARY_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: "{{ primary_secret_name }}"
key: STORE_SECRET_KEY
- name: RCLONE_CONFIG_PRIMARY_REGION
valueFrom:
secretKeyRef:
name: "{{ primary_secret_name }}"
key: STORE_REGION
- name: RCLONE_CONFIG_PRIMARY_PROVIDER
valueFrom:
secretKeyRef:
name: "{{ primary_secret_name }}"
key: STORE_S3_PROVIDER
- name: RCLONE_CONFIG_PRIMARY_ENDPOINT
value: "{{ primary_endpoint }}"
{% endif %}
- name: RCLONE_CONFIG_REPLICA_TYPE
value: "s3"
- name: RCLONE_CONFIG_REPLICA_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: "{{ replica_secret_name }}"
key: STORE_ACCESS_KEY
- name: RCLONE_CONFIG_REPLICA_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: "{{ replica_secret_name }}"
key: STORE_SECRET_KEY
- name: RCLONE_CONFIG_REPLICA_REGION
valueFrom:
secretKeyRef:
name: "{{ replica_secret_name }}"
key: STORE_REGION
- name: RCLONE_CONFIG_REPLICA_PROVIDER
valueFrom:
secretKeyRef:
name: "{{ replica_secret_name }}"
key: STORE_S3_PROVIDER
- name: RCLONE_CONFIG_REPLICA_ENDPOINT
value: "{{ replica_endpoint }}"
{% if job_type == BgJobType.CREATE_REPLICA %}
command: ["rclone", "-vv", "copyto", "--checksum", "primary:{{ primary_file_path }}", "replica:{{ replica_file_path }}"]
{% elif job_type == BgJobType.DELETE_REPLICA %}
command: ["rclone", "-vv", "delete", "replica:{{ replica_file_path }}"]
{% endif %}
resources:
limits:
memory: "200Mi"
requests:
memory: "200Mi"
cpu: "50m"