45 lines
1.0 KiB
Terraform
45 lines
1.0 KiB
Terraform
variable "project_name" {
|
|
type = string
|
|
description = "Project / host name"
|
|
}
|
|
|
|
variable "ssh_public_key" {
|
|
type = string
|
|
description = "Public SSH key to manage the host"
|
|
}
|
|
|
|
variable "hcloud_server_type" {
|
|
type = string
|
|
description = "Hetzner server type (e.g. cx22)"
|
|
}
|
|
|
|
variable "hcloud_image" {
|
|
type = string
|
|
description = "OS image to boot (e.g. debian-13)"
|
|
}
|
|
|
|
variable "hcloud_location" {
|
|
type = string
|
|
description = "Hetzner location (fsn1, nbg1, hel1, ash1)"
|
|
validation {
|
|
condition = contains(["fsn1", "nbg1", "hel1", "ash1"], var.hcloud_location)
|
|
error_message = "location must be one of fsn1, nbg1, hel1, ash1"
|
|
}
|
|
}
|
|
|
|
variable "init_user_data" {
|
|
type = string
|
|
description = "Pre-rendered cloud-init user data (optional)"
|
|
default = null
|
|
}
|
|
|
|
variable "firewall_rules" {
|
|
type = list(object({
|
|
direction = string
|
|
protocol = string
|
|
port = string
|
|
source_ips = list(string)
|
|
}))
|
|
description = "Firewall rules applied to the host"
|
|
default = []
|
|
} |