apiVersion: batch/v1
kind: CronJob
metadata:
  name: cse-archive
  namespace: tidb-serverless
spec:
  schedule: "30 0 * * *"
  successfulJobsHistoryLimit: 3
  suspend: false
  concurrencyPolicy: Forbid
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      backoffLimit: 32
      template:
        metadata:
          annotations:
            cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
          labels:
            app.kubernetes.io/name: cse-archive
        spec:
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                  - matchExpressions:
                      - key: serverless.tidbcloud.com/node
                        operator: In
                        values:
                          - burstable
          tolerations:
            - effect: NoSchedule
              key: serverless.tidbcloud.com/node
              operator: Equal
              value: burstable
          containers:
            - command:
                - /cse-ctl
                - archive
                - --pd
                - serverless-cluster-pd.tidb-serverless.svc:2379
                - --start-archive-duration
                - "{{StartArchiveDuration}}"
                - --expiration-date
                - "{{ExpirationDate}}"
                - --concurrency
                - "{{Concurrency}}"
                - --data-dir
                - /data0
              env:
              - name: DFS_PREFIX
                value: S3_PREFIX
              - name: DFS_S3_BUCKET
                value: S3_BUCKET
              - name: DFS_S3_REGION
                value: S3_REGION
              - name: CSE_MASTER_KEY_ID
                value: CSE_MASTER_KEY_ID
              - name: CSE_MASTER_KEY_CIPHER_TEXT
                value: CSE_MASTER_KEY_CIPHER_TEXT
              - name: CSE_MASTER_KEY_VENDOR
                value: CSE_MASTER_KEY_VENDOR
              imagePullPolicy: IfNotPresent
              name: cse-archive
              resources:
                limits:
                  cpu: "4"
                  memory: 30Gi
                requests:
                  cpu: "2"
                  memory: 28Gi
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
              volumeMounts:
                - mountPath: /data0
                  name: data0
          dnsPolicy: ClusterFirst
          restartPolicy: OnFailure
          schedulerName: default-scheduler
          securityContext: {}
          serviceAccount: backup-restore
          serviceAccountName: backup-restore
          terminationGracePeriodSeconds: 30
          volumes:
            - name: data0
              persistentVolumeClaim:
                claimName: cse-archive