Skip to content

Commit af1ffb8

Browse files
committed
Add documentation on some hidden variables
coauthored with openai codex 5.2
1 parent fb4a000 commit af1ffb8

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

docs/README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -982,6 +982,28 @@ to transfer files to the Puppet server. By default, this list is inferred from t
982982
`terraform apply`. Providing an explicit list of tags allows bypassing the firewall rule inference,
983983
which can be useful when the agent is in the same network as the cluster.
984984
985+
### 4.23 Internal module inputs (advanced)
986+
987+
The following variables are inputs to internal modules (`common/design`, `common/configuration`,
988+
`common/provision`). They are set by the cloud provider modules and are not meant to be configured
989+
directly in a typical `main.tf`.
990+
991+
- `min_disk_size`: Minimum root disk size (in GB) enforced by the provider module when building the
992+
instance design. It is used to validate `instances.*.disk_size` against provider defaults.
993+
Typical values are 10 (Incus/OpenStack), 20 (AWS/GCP), and 30 (Azure).
994+
- `inventory`: Map of instances with computed metadata (IPs, tags, specs, volumes) used to generate
995+
cloud-init and Puppet configuration.
996+
- `post_inventory`: Map like `inventory` with provider-specific data added after resources are created
997+
(for example instance IDs). Default value is `{}`.
998+
- `cloud_provider`: Cloud provider identifier string (for example `aws`, `gcp`, `azure`, `openstack`,
999+
`incus`) used in Puppet facts and cloud-init templates.
1000+
- `cloud_region`: Provider region identifier string (for example `us-east-1`, `eastus`, `europe-west1`)
1001+
used in Puppet facts and cloud-init templates.
1002+
- `domain_name`: Fully qualified cluster domain name computed from `cluster_name` and `domain`
1003+
(for example `${cluster_name}.${domain}`).
1004+
- `configuration`: Output object from `common/configuration` passed into `common/provision`. It contains
1005+
values such as rendered user data, Terraform facts, SSH keys, inventory, and bastion information.
1006+
9851007
## 5. Cloud Specific Configuration
9861008
9871009
### 5.1 Amazon Web Services
@@ -1259,6 +1281,23 @@ if not OpenStack (i.e: `aws`, `gcp`, etc.).
12591281
The file will be created after the `terraform apply` in the same folder as your `main.tf`
12601282
and will be named as `${name}.${domain}.txt`.
12611283
1284+
### 6.4 DNS module inputs
1285+
1286+
The DNS modules (`dns/cloudflare`, `dns/gcloud`, `dns/txt`) share a common set of inputs:
1287+
1288+
- `name`: Cluster name used as the DNS label. In the examples, this is typically
1289+
`module.<provider>.cluster_name`.
1290+
- `domain`: Base domain name. In the examples, this is typically `module.<provider>.domain`.
1291+
- `public_instances`: Map of instances with the `public` tag returned by the cloud provider module.
1292+
DNS A and SSHFP records are created for these instances.
1293+
- `vhosts`: List of virtual hostnames to create as `vhost.name.domain`. Default values differ by module:
1294+
Cloudflare uses `["*"]`, while Google Cloud and TXT use `["ipa", "jupyter", "mokey", "explore"]`.
1295+
- `domain_tag`: Tag that identifies which instances are pointed by the `name.domain` A record.
1296+
**default value**: `"login"`.
1297+
- `vhost_tag`: Tag that identifies which instances are pointed by the `vhost.name.domain` A records.
1298+
**default value**: `"proxy"`.
1299+
- `dkim_public_key`: Optional public key used to create a DKIM record. See [6.6 DKIM record (optional)](#66-dkim-record-optional).
1300+
12621301
### 6.5 SSHFP records and DNSSEC
12631302
12641303
Magic Castle DNS module creates SSHFP records for all instances with a public ip address.

0 commit comments

Comments
 (0)