---
- 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': (DOMAIN_PRIMARY | to_zone),
'name': "_atproto.%s" % DOMAIN_PRIMARY,
'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': False,
'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': False,
'state': (
((BLUESKY_WEB_ENABLED | bool)
and (networks.internet.ip6 is defined)
and ((networks.internet.ip6 | string) | length > 0))
| ternary('present','absent')
),
},
]
+
(
(BLUESKY_VIEW_DOMAIN_FINAL != 'api.bsky.app')
| ternary([
{
'type': 'A',
'solo': True,
'zone': (BLUESKY_VIEW_DOMAIN_FINAL | to_zone),
'name': BLUESKY_VIEW_DOMAIN_FINAL,
'content': networks.internet.ip4,
'proxied': False,
'state': (
((BLUESKY_VIEW_ENABLED | bool))
| ternary('present','absent')
),
},
{
'type': 'AAAA',
'solo': True,
'zone': (BLUESKY_VIEW_DOMAIN_FINAL | to_zone),
'name': BLUESKY_VIEW_DOMAIN_FINAL,
'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')
),
}
],
[])
)
}}