provisioning-catalog/providers/hetzner/nickel/image_defaults.ncl

56 lines
2.1 KiB
Text
Raw Normal View History

# Hetzner-specific image role defaults — build server type, snapshot retention, ARM64 locations.
{
hetzner_image_role | default = {
os_base | default = "debian-12",
provider | default = "hetzner",
template_name | default = "hetzner_build_image.j2",
build_server_type | default = "cax11",
location | default = "fsn1",
state | default = 'keep,
state_config | default = {
freshness_days | default = 30,
},
packages | default = [],
labels | default = {},
hardware | default = {
allowed_types | default = ["cax11", "cax21", "cax31"],
min_memory_gb | default = 2,
min_disk_gb | default = 20,
network_required | default = true,
ports_required | default = [],
ssh_required | default = true,
},
},
# x86_64 Debian base image with custom GPT partition layout.
# Produces a snapshot with: sda1=bios_grub, sda2=root (~root_size_gb), sda3=data (remainder).
# Use this role when deploying to server types larger than the builder (cx22);
# the root partition stays small and extra disk is available for sda3 expansion.
hetzner_base_image_role | default = {
os_base | default = "debian-12",
provider | default = "hetzner",
template_name | default = "hetzner_base_image_build.j2",
build_server_type | default = "cx22",
location | default = "fsn1",
state | default = 'keep,
state_config | default = {
freshness_days | default = 30,
},
packages | default = [],
labels | default = {},
partition_layout | default = {
root_size_gb | default = 5,
data_part | default = "ext4", # "ext4" | "unallocated"
},
hardware | default = {
allowed_types | default = ["cx22", "cx32", "cx42"],
min_memory_gb | default = 2,
min_disk_gb | default = 5, # root actual usage after debootstrap
network_required | default = true,
ports_required | default = [],
ssh_required | default = true,
},
},
}