Skip to content

Repository files navigation

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.

Usage

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.

Documentation

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

Development

go build ./...
go test ./... -count=1

To 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.

Releasing

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.

License

MIT — see LICENSE.

About

Terraform provider for hiddenprimary.ch — managed secondary DNS for a hidden primary

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages