--- - name: "DNS (Cloudflare) for Bluesky – base records" include_role: name: sys-dns-cloudflare-records when: DNS_PROVIDER | lower == 'cloudflare' vars: cloudflare_records: >- {{ [ { 'type': 'A', 'zone': (BLUESKY_API_DOMAIN | to_zone), 'name': BLUESKY_API_DOMAIN, 'content': networks.internet.ip4, 'solo': True, 'proxied': False, }, { 'type': 'AAAA', 'zone': (BLUESKY_API_DOMAIN | to_zone), 'name': BLUESKY_API_DOMAIN, 'content': (networks.internet.ip6 | default('')), 'proxied': False, 'solo': True, 'state': ( ((networks.internet.ip6 is defined) and ((networks.internet.ip6 | string) | length > 0)) | ternary('present','absent') ), }, { 'type': 'TXT', 'zone': (PRIMARY_DOMAIN | to_zone), 'name': "_atproto.%s" % PRIMARY_DOMAIN, 'value': '"did=did:web:%s"' % BLUESKY_API_DOMAIN, 'solo': True, }, { 'type': 'A', 'solo': True, 'zone': (BLUESKY_WEB_DOMAIN | to_zone), 'name': BLUESKY_WEB_DOMAIN, 'content': networks.internet.ip4, 'proxied': True, 'state': ((BLUESKY_WEB_ENABLED | bool) | ternary('present','absent')), }, { 'type': 'AAAA', 'solo': True, 'zone': (BLUESKY_WEB_DOMAIN | to_zone), 'name': BLUESKY_WEB_DOMAIN, 'content': (networks.internet.ip6 | default('')), 'proxied': True, 'state': ( ((BLUESKY_WEB_ENABLED | bool) and (networks.internet.ip6 is defined) and ((networks.internet.ip6 | string) | length > 0)) | ternary('present','absent') ), }, ] + ( (BLUESKY_VIEW_DOMAIN != 'api.bsky.app') | ternary([ { 'type': 'A', 'solo': True, 'zone': (BLUESKY_VIEW_DOMAIN | to_zone), 'name': BLUESKY_VIEW_DOMAIN, 'content': networks.internet.ip4, 'proxied': False, 'state': ( ((BLUESKY_VIEW_ENABLED | bool)) | ternary('present','absent') ), }, { 'type': 'AAAA', 'solo': True, 'zone': (BLUESKY_VIEW_DOMAIN | to_zone), 'name': BLUESKY_VIEW_DOMAIN, 'content': (networks.internet.ip6 | default('')), 'proxied': False, 'state': ( ((BLUESKY_VIEW_ENABLED | bool) and (networks.internet.ip6 is defined) and ((networks.internet.ip6 | string) | length > 0)) | ternary('present','absent') ), } ], []) ) }}