Terraform Provider for hiddenprimary.ch
Manage DNS zones on hiddenprimary.ch with Terraform. Your own nameserver stays private; hiddenprimary.ch takes a copy of each zone and answers the public internet for it.
terraform {
required_providers {
hiddenprimary = {
source = "hiddenprimary/hiddenprimary"
version = "~> 1.0"
}
}
}
provider "hiddenprimary" {
# or set HIDDENPRIMARY_API_KEY
api_key = var.hiddenprimary_api_key
}
resource "hiddenprimary_zone" "example" {
name = "example.ch"
primary_ips = ["192.0.2.1"]
}terraform init downloads the provider from the Terraform Registry — nothing to
build, nothing to place by hand.
Create an API key in the portal under Account → API keys. Zone operations
need the zones:read and zones:write scopes; the hiddenprimary_plans data
source also needs account:read.
Full reference:
registry.terraform.io/providers/hiddenprimary/hiddenprimary/latest/docs,
rendered from docs/ in this repository.
| Resource | hiddenprimary_zone |
| Data sources | hiddenprimary_zone, hiddenprimary_plans |
go build ./...
go test ./... -count=1To try a local build against a real configuration, point Terraform at the binary instead of the registry:
# ~/.terraformrc
provider_installation {
dev_overrides {
"hiddenprimary/hiddenprimary" = "/path/to/this/repo"
}
direct {}
}With dev_overrides in place, skip terraform init — Terraform uses the binary
directly and prints a warning on every run to remind you.
Push a vX.Y.Z tag. GitHub Actions builds the platform archives with GoReleaser,
signs the checksum file with the release GPG key and publishes the GitHub
release; the Terraform Registry picks the version up from there.
MIT — see LICENSE.