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-job
      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"
