72 lines
1.6 KiB
Text
72 lines
1.6 KiB
Text
# Hetzner Cloud Provider Defaults
|
|
# Pre-configured sensible defaults for Hetzner Cloud deployments
|
|
|
|
let provisioning = import "schemas/main.ncl" in
|
|
let lib = provisioning.lib in
|
|
|
|
{
|
|
# Provider identity
|
|
provider = "hetzner",
|
|
|
|
# Network configuration
|
|
network_private_ip = null, # Will be assigned by Hetzner
|
|
network_public_ip = null,
|
|
network_ipv6 = true,
|
|
|
|
# Liveness probing
|
|
liveness_ip = "{{network_public_ip}}",
|
|
liveness_port = 22,
|
|
liveness_interval = 300,
|
|
|
|
# Storage defaults for Hetzner
|
|
storages = [
|
|
({
|
|
name = "root",
|
|
size = 30,
|
|
total = 40,
|
|
type = "ext4",
|
|
mount = true,
|
|
mount_path = "/",
|
|
fstab = true,
|
|
parts = [
|
|
{
|
|
name = "root",
|
|
size = 30,
|
|
total = 30,
|
|
type = "ext4",
|
|
mount = true,
|
|
mount_path = "/",
|
|
},
|
|
{
|
|
name = "data",
|
|
size = 10,
|
|
total = 10,
|
|
type = "ext4",
|
|
mount = true,
|
|
mount_path = "/var/lib",
|
|
},
|
|
],
|
|
} | lib.Storage)
|
|
],
|
|
|
|
# Hetzner-specific region (eu-central, us-west, ap-southeast, etc.)
|
|
region = "eu-central",
|
|
|
|
# Plan/server type (common Hetzner plans)
|
|
# CX11 (1 vCPU, 1 GB RAM), CX21 (2 vCPU, 4 GB), CX31, CX41, CX51, CX61, CX81
|
|
plan = "CX21",
|
|
|
|
# Firewall and security defaults
|
|
labels = "provisioning=true,environment=production",
|
|
|
|
# Taskservs (empty, override per server)
|
|
taskservs = [],
|
|
|
|
# Server state
|
|
not_use = false,
|
|
nixos_anywhere_enabled = false, # Set to true to enable NixOS generation
|
|
|
|
# Hetzner Cloud API configuration (optional)
|
|
cloud_api_enabled = true,
|
|
datacenter = null, # Let Hetzner choose
|
|
}
|