Overview

Date: 2026-05-11

Time: 15:37

I'll create a summary entry for this Cloudflare DNS rule file.

Overview

This is an FTL2 AI-loop rule that ensures the arcade.catbeez18.com DNS A record points to the correct Linode IP address. It follows the observe-condition-action pattern: it checks current DNS resolution, compares it against the expected IP from FTL2 state, and updates Cloudflare DNS if they don't match. This is a reconciliation rule — it runs continuously to detect and fix DNS drift.

Usage Patterns

This rule is not called directly — it's loaded by the FTL2 AI reconciliation loop, which evaluates it periodically. The loop:

1. Runs the observe commands to gather current state

2. Calls condition(state) to check if action is needed

3. Calls action(ftl) if the condition returns True


# The observe block runs this command to get current DNS state:
dig +short arcade.catbeez18.com A

# The condition compares dig output against state file:
# state["_state_file"]["resources"]["arcade"]["ipv4"][0]

# The action calls the cloudflare_dns module:
await ftl.community.general.cloudflare_dns(
    zone="catbeez18.com",
    record="arcade",
    type="A",
    value=ip,
    proxied=False,   # DNS only, no Cloudflare proxy
    state="present",
)

API and Configuration

Key Behaviors

Relationships