---
apiVersion: batch/v1
kind: CronJob
metadata:
  name: cloudflare-ddns
  namespace: networking
spec:
  schedule: '*/5 * * * *'
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 3
  failedJobsHistoryLimit: 5
  jobTemplate:
    spec:
      backoffLimit: 3
      ttlSecondsAfterFinished: 300
      template:
        spec:
          restartPolicy: Never
          containers:
            - name: cloudflare-ddns
              image: ghcr.io/k8s-at-home/kubectl:v1.23.6
              envFrom:
                - secretRef:
                    name: cloudflare-ddns
              command:
                - /bin/sh
                - /app/cloudflare-ddns.sh
              volumeMounts:
                - name: cloudflare-ddns
                  mountPath: /app/cloudflare-ddns.sh
                  subPath: cloudflare-ddns.sh
                  readOnly: true
              securityContext:
                allowPrivilegeEscalation: false
                readOnlyRootFilesystem: true
          volumes:
            - name: cloudflare-ddns
              configMap:
                name: cloudflare-ddns
                items:
                  - key: cloudflare-ddns.sh
                    path: cloudflare-ddns.sh
