browsertrix/chart/app-templates/replica_job.yaml
Ilya Kreymer 5530ca92e1
Move backend app templates to be installed from configmap volume (#1331)
Instead of adding the app templates launched from the backend via
`backend/btrixcloud/templates`, add them to a configmap and mount the
configmap in the same location.

This allows these templates to be updated, like other values in
charts/... without having to rebuild any of the images, speeding up dev
and maintenance time.

Changes include:
- move backend/btrixcloud/templates -> chart/app-templates/
- add app-templates/*.yaml to app-templates configmap
- mount app-templates configmap to /app/btrixcloud/templates/ in api and op containers
2023-11-06 09:37:48 -08:00

87 lines
2.3 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_ENDPOINT
value: "{{ primary_endpoint }}"
#valueFrom:
# secretKeyRef:
# name: "{{ primary_secret_name }}"
# key: STORE_ENDPOINT_URL
{% 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_ENDPOINT
value: "{{ replica_endpoint }}"
#valueFrom:
# secretKeyRef:
# name: "{{ replica_secret_name }}"
# key: STORE_ENDPOINT_URL
{% 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: "100Mi"
requests:
memory: "100Mi"
cpu: "50m"