vsphere-cluster
ilpozzd/vsphere-cluster/talos
This module allows you to deploy a Kubernetes cluster based on Talos OS in the vSphere infrastructure.
Talos OS vSphere Cluster Terraform Module Page in Terraform Registry This module allows you to deploy a Kubernetes cluster based on Talos OS in the vSphere infrastructure. The configuration of the virtual machines fully corresponds to the configuration of Talos OS v1.0.x. Usage ```hcl module "kubernetes-cluster" { source = "ilpozzd/vsphere-cluster/talos" version = "1.1.0" datacenter = "Company_Datacenter" datastores = [ "Datastore-1", "Datastore-2", "Datastore-3" ] hosts = [ "host-1.company.local", "host-2.company.local", "host-3.company.local", "host-4.company.local" ] resource_pool = "Kubernetes_Cluster" folder = "Office/Kubernetes_Cluster" remote_ovf_url = "https://github.com/siderolabs/talos/releases/download/v1.0.5/vmware-amd64.ova" control_plane_count = 3 control_plane_num_cpus = 2 c
| Name | Type | Description | Default |
|---|---|---|---|
| datacenter | string | VMware datacenter name. | required |
| remote_ovf_url | string | URL to the remote Talos OS 1.0.x ovf/ova file. | required |
| machine_base_configuration | object({ install = object( | Basic configuration of all virtual machines. See https://www.talos.dev/v1.0/refe | required |
| cluster_name | string | The name of the cluster. See https://www.talos.dev/v1.0/reference/configuration/ | required |
| hosts | list(string) | ESXi host(s) where the virtual machine will be created. | required |
| folder | string | Folder to create the virtual machines in. | required |
| datastores | list(string) | VMWare datastore(s) where all data for the virtual machine will be placed in. | required |
| resource_pool | string | VMWare resource pool where the virtual machine will be created. | required |
| control_plane_disks | list(object({ label = stri | A specification list for a virtual disk devices on 'controlplane' virtual machin | required |
| control_plane_network_interfaces | list(object({ name = strin | A specification list for a virtual NIC on 'controlplane' virtual machines. | required |
| worker_memory | number | The amount of RAM for 'worker' virtual machines, in Mb. | 4096 |
| control_plane_machine_extra_configuration | object({ controlPlane = op | Extended configuration of 'controlplane' virtual machine. See https://www.talos. | {} |
| cluster_extra_manifests | list(string) | A list of 'URLs' that point to additional manifests. These will get automaticall | [] |
| talosconfig_path | string | Path to save talosconfig file (Include filename. If if not set config will not b | "" |
| control_plane_count | number | Number of 'controlplane' virtual machines. | 2 |
| worker_count | number | Number of 'worker' virtual machines. | 0 |
| cluster_secrets | object({ id = optional | Secret data that is used to establish trust relationships between Kubernetes clu | {
"ca": {}
} |
| cluster_control_plane | object({ endpoint | Data to define the API endpoint address for joining a node to the Kubernetes clu | {} |
| validity_period_hours | number | The number of hours after initial issuing that ALL generated certificates become | 8760 |
| control_plane_num_cpus | number | The total number of virtual processor cores to assign to 'controlplane' virtual | 2 |
| machine_network | object({ nameservers = opt | General network configuration of the virtual machine. 'hostname' and 'interfaces | {} |
| worker_machine_network_hostnames | list(string) | A list of hostnames for *count* of 'worker' virtual machines (if not set will be | [] |
| cluster_extra_manifest_headers | map(string) | A map of key value pairs that will be added while fetching the 'cluster_extra_ma | {} |
| worker_network_interfaces | list(object({ name = strin | A specification list for a virtual NIC on 'worker' virtual machines. | [] |
| machine_secrets | object({ token = optional( | Secret data that is used to create trust relationships between virtual machines | {
"ca": {}
} |
| kubeconfig_path | string | Path to save kubeconfig file (Include filename. If not set config will not be cr | "" |
| control_plane_memory | number | The amount of RAM for 'controlplane' virtual machines, in Mb. | 2048 |
| control_plane_cluster_secrets | object({ aescbcEncryptionS | Secret data required to establish trust relationships between components used by | {
"aggregatorCA": {},
"etcd": {
|
| talos_admin_pki | object({ crt = optional(st | Base64 encoded certificate (signed by machine_secrets.ca.crt) and key (in ED2551 | {} |
| worker_machine_extra_configuration | object({ pods = optional(l | Extended configuration of 'worker' virtual machines. See https://www.talos.dev/v | {} |
| … and 2 more inputs | |||
kubernetes_admin_pki — Cerificates and keys for obtaining administrative access to the cluster.cluster_endpoint — API endpoint of the cluster.cluster_id — Qunique identificator of the cluster.cluster_nodes — List of all nodes in the cluster.kubeconfig — Configuration file for obtaining administrative access to the cluster.talosconfig — Configuration file for obtaining administrative access to Talos virtual machines.