doran/infra/terraform/hetzner/variables.tf
2026-03-30 17:46:16 +02:00

100 lines
2.4 KiB
HCL

variable "hcloud_token" {
description = "Hetzner Cloud API token"
type = string
sensitive = true
}
variable "name" {
description = "Server name"
type = string
default = "doran-1"
}
variable "location" {
description = "Hetzner location"
type = string
default = "nbg1"
}
variable "server_type" {
description = "Hetzner server type"
type = string
default = "cpx32"
}
variable "image" {
description = "Hetzner image"
type = string
default = "ubuntu-24.04"
}
variable "ssh_public_key" {
description = "Public SSH key content used for automation access"
type = string
}
variable "admin_cidr_blocks" {
description = "CIDR blocks allowed to access SSH and K8s API when public admin access is enabled"
type = list(string)
default = []
}
variable "tailscale_enabled" {
description = "Install and use Tailscale for admin/control-plane access"
type = bool
default = true
}
variable "tailscale_auth_key" {
description = "Tailscale auth key used for unattended node join"
type = string
sensitive = true
default = ""
}
variable "tailscale_control_plane_hostname" {
description = "Expected Tailscale DNS name for the node; if set, bootstrap prefers it for kube access"
type = string
default = ""
}
variable "k3s_channel" {
description = "K3s release channel"
type = string
default = "stable"
}
variable "network_cidr" {
description = "Private network CIDR for the single-node cluster"
type = string
default = "10.30.0.0/16"
}
variable "subnet_cidr" {
description = "Private subnet CIDR for the server attachment"
type = string
default = "10.30.1.0/24"
}
variable "network_zone" {
description = "Hetzner network zone"
type = string
default = "eu-central"
}
variable "private_ipv4_address" {
description = "Static private IPv4 assigned to the node on the Hetzner network"
type = string
default = "10.30.1.10"
}
variable "public_domain" {
description = "Public DNS name pointing at the server IPv4/IPv6; used for ingress/TLS"
type = string
}
variable "bootstrap_repo_path" {
description = "Reserved repository subdirectory name for a future node-local bootstrap/GitOps flow; current provisioning still applies manifests from the operator workstation"
type = string
default = "deploy/k8s"
}