provisioning-catalog/components/devel_user_vol/nickel/contracts.ncl

59 lines
1.7 KiB
Text
Raw Normal View History

let _concerns_lib = import "schemas/lib/concerns.ncl" in
{
DevelUserVol = {
volume_name
| String
| doc "Hetzner block volume name — resolved to /dev/disk/by-id/scsi-0HC_Volume_<volume_name>",
user_uid
| Number
| doc "Fixed UID assigned to the devel user — must be identical on every node that mounts this volume"
| default = 2000,
user_gid
| Number
| doc "Fixed GID assigned to the devel group — must match user_uid constraint across nodes"
| default = 2000,
mount_path
| String
| doc "Absolute mount path used as the user's home directory — drives the systemd unit name"
| default = "/home/devel",
fs_type
| std.enum.TagOrString
| doc "Filesystem type — device is formatted only when blkid reports no existing filesystem"
| default = 'ext4,
label_prefix
| String
| doc "Hetzner block device id prefix — do not change unless Hetzner changes their naming convention"
| default = "scsi-0HC_Volume_",
ssh_authorized_keys
| String
| doc "SSH public keys written to ~devel/.ssh/authorized_keys — newline-separated, encoded as \\n in NCL strings"
| default = "",
extra_groups
| String
| doc "Comma-separated supplementary groups appended to the devel user (e.g. 'docker,sudo')"
| default = "",
volume_size_gb
| Number
| doc "Volume size in GB — used only when the prepare script creates the volume for the first time"
| default = 50,
hcloud_location
| String
| doc "Hetzner datacenter location for volume creation — must match the server's location"
| default = "fsn1",
concerns | _concerns_lib.ServiceConcerns | optional,
..
},
}