| cilium_values |
A map of configuration values for Cilium, used to customize its deployment and behavior in the Kubernetes cluster. |
any |
{ "cgroup": { "autoMount": { "enabled": false }, "hostRoot": "/sys/fs/cgroup" }, "externalIPs": { "enabled": true }, "hubble": { "tls": { "auto": { "method": "cronJob" } } }, "ipam": { "mode": "kubernetes" }, "k8sClientRateLimit": { "burst": 100, "qps": 50 }, "k8sServiceHost": "localhost", "k8sServicePort": 7445, "kubeProxyReplacement": true, "l2announcements": { "enabled": true }, "operator": { "replicas": 1 }, "rollOutCiliumPods": true, "routingMode": "tunnel", "securityContext": { "capabilities": { "ciliumAgent": [ "CHOWN", "KILL", "NET_ADMIN", "NET_RAW", "IPC_LOCK", "SYS_ADMIN", "SYS_RESOURCE", "DAC_OVERRIDE", "FOWNER", "SETGID", "SETUID" ], "cleanCiliumState": [ "NET_ADMIN", "SYS_ADMIN", "SYS_RESOURCE" ] } }, "tunnelProtocol": "vxlan" } |
no |
| cluster_name |
The name of the Talos cluster. |
string |
n/a |
yes |
| cluster_vip |
The virtual IP (VIP) address for the cluster, typically used for load balancing or high availability setups. |
string |
n/a |
yes |
| controlplanes |
Configuration of control plane nodes, including the number of nodes, resources (CPU, RAM), and network configuration. |
map(object({ count = number socket = optional(number, 1) cpu = optional(number, 4) ram = optional(number, 8192) balloon_enabled = optional(bool, false) min_memory = optional(number, null) sysctls = optional(map(string), {}) networks = list(object({ interface = string bridge = string tag = optional(number, null) model = optional(string, "virtio") address = optional(string, null) dhcp_disabled = optional(bool, false) })) kubernetes_version = optional(string) startup = optional(object({ order = number down_delay = number up_delay = number }), null) })) |
n/a |
yes |
| create_kubeconfig_file |
Flag to determine whether a local kubernetes configuration file should be created. If set to true, a local_file resource will be generated with the appropriate content. |
bool |
false |
no |
| create_talosconfig_file |
Flag to determine whether a local Talos configuration file should be created. If set to true, a local_file resource will be generated with the appropriate content. |
bool |
false |
no |
| default_gateway |
The default gateway for the cluster nodes, used for routing external traffic. |
string |
n/a |
yes |
| dns |
A set of DNS server addresses to be used by the cluster nodes. Default includes Cloudflare and Google DNS. |
set(string) |
[ "1.1.1.1", "8.8.8.8" ] |
no |
| external_worker_nodes |
n/a |
map(object({ node_group = string architecture = optional(string, "amd64") talos_version = optional(string) talos_version_update = optional(string) kubernetes_version = optional(string) sysctls = optional(map(string), {}) ipv4_addresses = optional(string, null) capabilities = optional(list(string), []) enable_taints = optional(bool, true) install_disk = optional(string, "/dev/sda") install_wipe = optional(bool, true) networks = optional(list(object({ bridge = string tag = number interface = string model = optional(string, "virtio") address = optional(string, null) subnet = optional(string, null) # CIDR subnet for this network (e.g., "10.90.11.0/24") gateway = optional(string, null) # Default gateway for this network dhcp_disabled = optional(bool, false) })), []) })) |
null |
no |
| kubeconfig_file_template |
Template path for the kubeconfig file, where '__CLUSTER__' will be replaced by the cluster name. |
string |
"~/.kube/configs/__CLUSTER__.yaml" |
no |
| kubernetes_version |
The desired version of Kubernetes to be installed in the cluster. |
string |
"1.33.0" |
no |
| kubernetes_version_update |
Optional: The Kubernetes version for updated nodes. Falls back to kubernetes_version if not specified. |
string |
null |
no |
| machine_features |
Additional machine.features as HCL object to be applied to all nodes. |
map(any) |
{} |
no |
| pod_subnet |
The subnet for Kubernetes pods, defining the IP range for pod networking. |
string |
n/a |
yes |
| proxmox_cluster |
Proxmox cluster configuration, including the cluster name and the datastore associated with each node. |
object({ cluster_name = string nodes = map(object({ datastore = string iso_datastore = optional(string, null) })) }) |
n/a |
yes |
| service_subnet |
The subnet for Kubernetes services, defining the IP range for internal cluster services. |
string |
n/a |
yes |
| static_routes |
Static routes to add to all node interfaces. |
list(object({ network = string gateway = string })) |
[] |
no |
| sysctls |
A map of sysctl settings to be applied to the nodes in the cluster. These settings can be used to tune kernel parameters for performance or security. |
map(string) |
{} |
no |
| talos_arch |
The architecture for Talos nodes. Defaults to 'amd64'. |
string |
"amd64" |
no |
| talos_cp_version |
The desired version of Talos to be used in the cluster nodes. |
string |
n/a |
yes |
| talos_cp_version_update |
Optional: The Talos control plane version update, if any, to apply to the existing Talos version. |
string |
null |
no |
| talos_factory_url |
The URL of the Talos factory, used for managing node images and configurations. |
string |
"https://factory.talos.dev" |
no |
| talos_platform |
The platform type for Talos, typically used to define how nodes are provisioned (e.g., nocloud, vmware, etc.). |
string |
"nocloud" |
no |
| talos_schematic |
A set of Talos extensions to apply during the cluster setup. |
set(string) |
n/a |
yes |
| talos_schematic_update |
Optional: A set of Talos extensions for updated nodes. Falls back to talos_schematic if not specified. |
set(string) |
null |
no |
| talosconfig_file_name |
The path and filename for the generated Talos configuration file. Defaults to ~/.talos/config. |
string |
"~/.talos/config" |
no |
| vm_subnet |
The subnet for the virtual machines in the cluster. |
string |
n/a |
yes |
| workers |
Configuration of worker nodes, with the ability to specify the number of nodes, Talos version, Kubernetes version, and network details. |
map(map(object({ count = number datastore = optional(string, null) node_group = optional(string) talos_version = optional(string) talos_version_update = optional(string) kubernetes_version = optional(string) socket = optional(number, 1) cpu = optional(number, 4) ram = optional(number, 8192) balloon_enabled = optional(bool, false) min_memory = optional(number, null) sysctls = optional(map(string), {}) extra_kernel_args = optional(list(string), []) networks = list(object({ bridge = string tag = optional(number, null) interface = string model = optional(string, "virtio") address = optional(string, null) dhcp_disabled = optional(bool, false) })) pci_passthrough = optional(list(object({ id = optional(string) mapping = optional(string) pcie = optional(bool, true) rombar = optional(bool, true) xvga = optional(bool, false) }))) startup = optional(object({ order = number down_delay = number up_delay = number }), null) }))) |
{} |
no |