apiVersion: batch/v1
kind: CronJob
metadata:
  name: ddns-cronjob
spec:
  schedule: "0 6,18 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: curl
            command:
              - /bin/sh
              - -c
            args:
              - >-
                CURRENT_IP=$(curl -4 ifconfig.me)
                &&
                echo "Current IP: $CURRENT_IP"
                &&
                curl https://ntfy.kluster.moll.re/kluster_ip
                -H "Title: Kluster IP"
                -d "Currently: $(CURRENT_IP)"
                &&
                curl
                --request PUT
                --url https://api.cloudflare.com/client/v4/zones/$(CLOUDFLARE_ZONE_ID)/dns_records/$(CLOUDFLARE_DNS_RECORD_ID)
                --header "Authorization: Bearer $(CLOUDFLARE_API_KEY)"
                --header "Content-Type: application/json"
                --data '{"content": "$(CURRENT_IP)", "name": "$(KLUSTER_DOMAIN)", "proxied": false, "type": "A"}'
                &&
                echo "Updated $(KLUSTER_DOMAIN) to $(CURRENT_IP) successfully"

            env:
              - name: CLOUDFLARE_ZONE_ID
                valueFrom:
                  secretKeyRef:
                    name: cloudflare-keys
                    key: CLOUDFLARE_ZONE_ID
              - name: CLOUDFLARE_API_KEY
                valueFrom:
                  secretKeyRef:
                    name: cloudflare-keys
                    key: CLOUDFLARE_API_KEY
              - name: CLOUDFLARE_DNS_RECORD_ID
                valueFrom:
                  secretKeyRef:
                    name: cloudflare-keys
                    key: CLOUDFLARE_DNS_RECORD_ID
              - name: KLUSTER_DOMAIN
                valueFrom:
                  secretKeyRef:
                    name: cloudflare-keys
                    key: KLUSTER_DOMAIN

          restartPolicy: Never