apiVersion: v1 kind: ConfigMap metadata: name: ipv6-updater-script namespace: external-dns data: update-ipv6.sh: | #!/bin/sh ZONE_ID="fe797c7b55d4e23fcd7929173c72a021" RECORD="*.akshun-lab.cc" IPV6=$(curl -s https://api64.ipify.org) if [ -z "$IPV6" ]; then echo "No IPv6 detected" exit 1 fi # Get Record ID RECORD_ID=$(curl -s \ -H "X-Auth-Email: $CF_EMAIL" \ -H "X-Auth-Key: $CF_API_KEY" \ "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records?type=AAAA&name=$RECORD" \ | jq -r '.result[0].id') if [ "$RECORD_ID" = "null" ]; then echo "Record does not exist, creating..." curl -s -X POST \ -H "X-Auth-Email: $CF_EMAIL" \ -H "X-Auth-Key: $CF_API_KEY" \ -H "Content-Type: application/json" \ "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \ --data "{ \"type\": \"AAAA\", \"name\": \"$RECORD\", \"content\": \"$IPV6\", \"ttl\": 120, \"proxied\": false }" else echo "Updating existing record..." curl -s -X PUT \ -H "X-Auth-Email: $CF_EMAIL" \ -H "X-Auth-Key: $CF_API_KEY" \ -H "Content-Type: application/json" \ "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID" \ --data "{ \"type\": \"AAAA\", \"name\": \"$RECORD\", \"content\": \"$IPV6\", \"ttl\": 120, \"proxied\": false }" fi