Skip to content
Snippets Groups Projects
Commit e808f6ae authored by Dean Lovett's avatar Dean Lovett
Browse files

Initial Commit

parent 3a8466cb
No related branches found
No related tags found
No related merge requests found
Pipeline #9076 canceled
FROM alpine
RUN apk add --no-cache jq curl bind-tools
COPY --chown=root:root . ./
ENV CF_API=https://api.cloudflare.com/client/v4
CMD sh ./cloudflare.sh
\ No newline at end of file
#!/usr/bin/with-contenv sh
cloudflare() {
curl -sSL \
-H "Accept: application/json" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type:application/json" \
"$@"
}
verifyToken() {
cloudflare -o /dev/null "$CF_API"/user/tokens/verify
}
getZoneId() {
Result=$(cloudflare "$CF_API/zones?name=$ZONE")
echo $Result | jq -rc '.result[0].id'
}
getDnsRecordName() {
if [ ! -z "$SUBDOMAIN" ]; then
echo $SUBDOMAIN.$ZONE
else
echo $ZONE
fi
}
getDnsRecordId() {
cloudflare "$CF_API/zones/$1/dns_records?type=$RRTYPE&name=$2" | jq -r '.result[0].id'
}
createDnsRecord() {
cloudflare -X POST -d "{\"type\": \"$RRTYPE\",\"name\":\"$2\",\"content\":\"$3\",\"proxied\":true,\"ttl\":1 }" "$CF_API/zones/$1/dns_records" | jq -r '.result.id'
}
updateDnsRecord() {
cloudflare -X PATCH -d "{\"type\": \"$RRTYPE\",\"name\":\"$3\",\"content\":\"$4\",\"proxied\":true,\"ttl\":1 }" "$CF_API/zones/$1/dns_records/$2" | jq -r '.result.id'
}
echo "Verifying token..."
verifyToken
echo "Token verified!"
echo "Retreiving Zone ID..."
CFZoneId=$(getZoneId)
echo "Zone ID found: $CFZoneId"
echo "Finding DNS record..."
CFDnsRecordName=$(getDnsRecordName)
CFDnsRecordId=$(getDnsRecordId $CFZoneId $CFDnsRecordName)
echo $CFDnsRecordId
if [ "$CFDnsRecordId" != "null" ]; then
echo "DNS Record found: $CFDnsRecordId, updating..."
CFDnsRecordId=$(updateDnsRecord $CFZoneId $CFDnsRecordId $CFDnsRecordName $IP_ADDRESS)
echo "Updated DNS Record: $CFDnsRecordId"
else
echo "No DNS Record for $CFDnsRecordName, creating..."
CFDnsRecordId=$(createDnsRecord $CFZoneId $CFDnsRecordName $IP_ADDRESS)
echo $CFDnsRecordId
echo "Created DNS Record: $CFDnsRecordId"
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment