vsphere-vm
ilpozzd/vsphere-vm/talos
This module allows you to deploy a Talos OS-based vSphere virtual machine with a custom configuration.
Talos OS vSphere Virtual Machine Terraform Module Page in Terraform Registry This module allows you to deploy a Talos OS-based vSphere virtual machine with a custom configuration. The configuration of the virtual machine fully corresponds to the configuration of Talos OS v1.0.x. Usage It is strongly not recommended to use this module separately, since creating groups of virtual machines does not make a full cycle of Terraform automation (you cannot continue working with the created cluster using Terraform). To create a cluster, use ilpozzd/vsphere-cluster/talos. This module is useful in some cases when using Terragrunt. See examples. Examples Terragrunt Example Requirements | Name | Version | |---|---| | terraform | >= 1.1.9, = 6.7u3 Required Terraform Role permissions to user in vSphere D
| Name | Type | Description | Default |
|---|---|---|---|
| cluster_control_plane | object({ endpoint | Data to define the API endpoint address for joining a node to the Kubernetes clu | required |
| machine_base_configuration | object({ install = object | Basic configuration of the virtual machine. See https://www.talos.dev/v1.0/refer | required |
| datastores | list(string) | VMWare datastore(s) where all data for the virtual machine will be placed in. | required |
| datacenter | string | VMware datacenter name. | required |
| machine_secrets | object({ token = string | Secret data that is used to create trust relationships between virtual machines. | required |
| hosts | list(string) | ESXi host(s) where the virtual machine will be created. | required |
| resource_pool | string | VMWare resource pool where the virtual machine will be created. | required |
| remote_ovf_url | string | URL to the remote Talos OS 1.0.x ovf/ova file. | required |
| network_interfaces | list(object({ name = stri | A specification list for a virtual NIC on the virtual machine. | required |
| folder | string | Folder to create the virtual machine in. | required |
| machine_type | string | The role of the virtual machine in the Kubernetes cluster (controlplane or worke | required |
| disks | list(object({ label | A specification list for a virtual disk devices on the virtual machine. Use only | required |
| cluster_secrets | object({ id = string | Secret data that is used to establish trust relationships between Kubernetes clu | required |
| cluster_name | string | The name of the cluster. See https://www.talos.dev/v1.0/reference/configuration/ | required |
| machine_network_hostnames | list(string) | A list of hostnames for *vm_count* virtual machines (if not set will be generate | [] |
| cluster_extra_manifests | list(string) | A list of 'URLs' that point to additional manifests. These will get automaticall | [] |
| cluster_extra_manifest_headers | map(string) | A map of key value pairs that will be added while fetching the 'cluster_extra_ma | {} |
| num_cpus | number | The total number of virtual processor cores to assign to the virtual machine. | 2 |
| memory | number | The amount of RAM for the virtual machine, in Mb. | 2048 |
| machine_extra_configuration | object({ controlPlane = o | Extended configuration of the virtual machine. See https://www.talos.dev/v1.0/re | {} |
| machine_cert_sans | list(list(string)) | A list of alternative names for *vm_count* virtual machines. See https://www.tal | [] |
| vm_count | number | Number of virtual machines. | 1 |
| talos_base_configuration | object({ version = string | Talos OS top-level configuration. See https://www.talos.dev/v1.0/reference/confi | {
"persist": false,
"version": "v1al |
| control_plane_cluster_secrets | object({ aescbcEncryption | Secret data required to establish trust relationships between components used by | {} |
| machine_network_interfaces | list(list(object({ interf | A list of network interfaces for *vm_count* virtual machines (if not set DHCP wi | [] |
| cluster_discovery | object({ enabled = bool | Data that sets up the discovery of nodes in the Kubernetes cluster. See https:// | {
"enabled": true
} |
| cluster_inline_manifests | list(object({ name = | A list of Kuberenetes manifests whose content is represented as a string. These | [] |
| talos_admin_pki | object({ crt = optional(s | Base64 encoded certificate (signed by machine_secrets.ca.crt) and key (in ED2551 | {} |
| machine_network | object({ nameservers = op | General network configuration of the virtual machine. 'hostname' and 'interfaces | {} |
| control_plane_cluster_configuration | object({ network = option | Data that configure the components of the 'controlplane' nodes in the Kubernetes | {} |
| vmtoolsd_extra_manifest | string | A link to talos-vmtoolsd Kubernetes manifest. | "https://raw.githubusercontent.com/molog |
| create_init_node | bool | Whether to create an initialization node. If 'true', the first virtual machine w | false |
default_ip_addresses — List of nodes IP addresses from VMTools by default.