IT OPS

Cloudflare DNS drift sentry: diff zone against manifest, open correction PR

On a schedule, compares live Cloudflare zone records against a Git-tracked DNS manifest and, when they diverge, opens a pull request that rewrites the manifest to match (or flags…

CategoryIT Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerDaily schedule fires
  • ActionFetch live DNS records from Cloudflare zoneCloudflareCloudflare
  • ActionRead DNS manifest from GitHub repoGitHubGitHub
  • LogicDiff live records vs manifest; exit if identical
  • ActionOpen correction PR updating the manifestGitHubGitHub
  • OutputPost drift summary and PR link to SlackSlack

What it does

Keeps your declared DNS source-of-truth and your live Cloudflare zone in sync. It pulls every record from the zone, normalizes it, diffs it against the manifest file in your repo, and when there is drift it opens a correction pull request with the exact added, removed, and changed records spelled out.

When to use it

Use it when DNS is supposed to be managed as code but humans still make emergency dashboard edits. The recurring diff turns silent, undocumented changes into reviewable PRs so the manifest never rots and on-call always knows the real state of the zone.

How it works

  1. 1A daily schedule fires the run.
  2. 2Fetch all DNS records for the configured zone from the Cloudflare API.
  3. 3Read the committed manifest file from the GitHub repo and normalize both sides (sort, strip TTL noise, canonicalize record types).
  4. 4A logic step computes the diff; if there is no drift the run exits quietly.
  5. 5On drift, open a GitHub pull request that updates the manifest to reflect live records, with the diff in the PR body.
  6. 6Post a Slack summary linking the PR and listing the changed record names.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect CloudflareWorkers, Pages, R2, KV — the edge stack.
  2. 2
    Connect GitHubRepos, issues, pull requests, actions.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.