|
1 | 1 | let |
2 | 2 | domain = "\${data.aws_route53_zone.selected.name}"; |
| 3 | + zoneId = "\${data.aws_route53_zone.selected.zone_id}"; |
3 | 4 |
|
4 | | - mkResource = { |
| 5 | + mkCname = { |
5 | 6 | name, |
6 | 7 | records ? [], |
7 | 8 | ttl ? "300", |
8 | 9 | type ? "CNAME", |
9 | | - zone_id ? "\${data.aws_route53_zone.selected.zone_id}" |
10 | | - }: { |
11 | | - inherit |
12 | | - name |
13 | | - records |
14 | | - ttl |
15 | | - type |
16 | | - zone_id; |
17 | | - }; |
| 10 | + zone_id ? zoneId |
| 11 | + }: {inherit name records ttl type zone_id;}; |
| 12 | + |
| 13 | + mkSrv = { |
| 14 | + name, |
| 15 | + records ? [], |
| 16 | + ttl ? "300", |
| 17 | + type ? "SRV", |
| 18 | + zone_id ? zoneId |
| 19 | + }: {inherit name records ttl type zone_id;}; |
18 | 20 | in { |
19 | 21 | # Resource attribute names must be unique for route53 resources in the cluster and therefore |
20 | 22 | # should not be named after machines or book or group multivalue DNS names. |
21 | 23 | # |
22 | 24 | # Prefixing the resource attribute with the record type will avoid any namespace issues. |
23 | 25 |
|
24 | 26 | # Book |
25 | | - cname_book = mkResource {name = "book.${domain}"; records = ["misc1-webserver-a-1.${domain}"];}; |
26 | | - cname_book_staging = mkResource {name = "book-staging.${domain}"; records = ["misc1-webserver-a-1.${domain}"];}; |
| 27 | + cname_book = mkCname {name = "book.${domain}"; records = ["misc1-webserver-a-1.${domain}"];}; |
| 28 | + cname_book_staging = mkCname {name = "book-staging.${domain}"; records = ["misc1-webserver-a-1.${domain}"];}; |
27 | 29 |
|
28 | 30 | # Explorers |
29 | | - cname_explorer_preprod = mkResource {name = "preprod-explorer.${domain}"; records = ["preprod1-dbsync-a-1.${domain}"];}; |
30 | | - cname_explorer_preview = mkResource {name = "preview-explorer.${domain}"; records = ["preview1-dbsync-a-1.${domain}"];}; |
| 31 | + cname_explorer_preprod = mkCname {name = "preprod-explorer.${domain}"; records = ["preprod1-dbsync-a-1.${domain}"];}; |
| 32 | + cname_explorer_preview = mkCname {name = "preview-explorer.${domain}"; records = ["preview1-dbsync-a-1.${domain}"];}; |
31 | 33 |
|
32 | 34 | # Faucets |
33 | | - cname_faucet_preprod = mkResource {name = "faucet.preprod.${domain}"; records = ["preprod1-faucet-a-1.${domain}"];}; |
34 | | - cname_faucet_preview = mkResource {name = "faucet.preview.${domain}"; records = ["preview1-faucet-a-1.${domain}"];}; |
| 35 | + cname_faucet_preprod = mkCname {name = "faucet.preprod.${domain}"; records = ["preprod1-faucet-a-1.${domain}"];}; |
| 36 | + cname_faucet_preview = mkCname {name = "faucet.preview.${domain}"; records = ["preview1-faucet-a-1.${domain}"];}; |
35 | 37 |
|
36 | 38 | # Govtool |
37 | 39 |
|
38 | 40 | # Ipfs for all testnets |
39 | | - cname_metadata_ipfs = mkResource {name = "ipfs.${domain}"; records = ["misc1-metadata-a-1.${domain}"];}; |
| 41 | + cname_metadata_ipfs = mkCname {name = "ipfs.${domain}"; records = ["misc1-metadata-a-1.${domain}"];}; |
40 | 42 |
|
41 | 43 | # Metadata for all testnets |
42 | | - cname_metadata_testnets = mkResource {name = "metadata.${domain}"; records = ["misc1-metadata-a-1.${domain}"];}; |
| 44 | + cname_metadata_testnets = mkCname {name = "metadata.${domain}"; records = ["misc1-metadata-a-1.${domain}"];}; |
43 | 45 |
|
44 | 46 | # Smash |
45 | | - cname_smash_preprod = mkResource {name = "preprod-smash.${domain}"; records = ["preprod1-dbsync-a-1.${domain}"];}; |
46 | | - cname_smash_preview = mkResource {name = "preview-smash.${domain}"; records = ["preview1-dbsync-a-1.${domain}"];}; |
| 47 | + cname_smash_preprod = mkCname {name = "preprod-smash.${domain}"; records = ["preprod1-dbsync-a-1.${domain}"];}; |
| 48 | + cname_smash_preview = mkCname {name = "preview-smash.${domain}"; records = ["preview1-dbsync-a-1.${domain}"];}; |
| 49 | + |
| 50 | + # Example SRV record resource, where network could be substituted with any of preview, preprod or mainnet. |
| 51 | + # srv_network = mkSrv {name = "_cardano-network._tcp.${domain}"; records = ["0 10 3001 network1-rel-a-1.${domain}"];}; |
47 | 52 | } |
0 commit comments