vsphere-cluster

ilpozzd/vsphere-cluster/talos

Terraform Module HCL TALOS

This module allows you to deploy a Kubernetes cluster based on Talos OS in the vSphere infrastructure.

Install
module "vsphere-cluster" {
source = "ilpozzd/vsphere-cluster/talos"
version = "1.1.4"
}
plain text: /constructs/tfmod-ilpozzd-vsphere-cluster-talos/install.txt
⭐ Source on GitHub 📦 Registry page
README

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

Inputs (42)
NameTypeDescriptionDefault
datacenterstringVMware datacenter name. required
remote_ovf_urlstringURL to the remote Talos OS 1.0.x ovf/ova file. required
machine_base_configurationobject({ install = object(Basic configuration of all virtual machines. See https://www.talos.dev/v1.0/refe required
cluster_namestringThe name of the cluster. See https://www.talos.dev/v1.0/reference/configuration/ required
hostslist(string)ESXi host(s) where the virtual machine will be created. required
folderstringFolder to create the virtual machines in. required
datastoreslist(string)VMWare datastore(s) where all data for the virtual machine will be placed in. required
resource_poolstringVMWare resource pool where the virtual machine will be created. required
control_plane_diskslist(object({ label = striA specification list for a virtual disk devices on 'controlplane' virtual machin required
control_plane_network_interfaceslist(object({ name = strinA specification list for a virtual NIC on 'controlplane' virtual machines. required
worker_memorynumberThe amount of RAM for 'worker' virtual machines, in Mb.4096
control_plane_machine_extra_configurationobject({ controlPlane = opExtended configuration of 'controlplane' virtual machine. See https://www.talos.{}
cluster_extra_manifestslist(string)A list of 'URLs' that point to additional manifests. These will get automaticall[]
talosconfig_pathstringPath to save talosconfig file (Include filename. If if not set config will not b""
control_plane_countnumberNumber of 'controlplane' virtual machines.2
worker_countnumberNumber of 'worker' virtual machines.0
cluster_secretsobject({ id = optionalSecret data that is used to establish trust relationships between Kubernetes clu{ "ca": {} }
cluster_control_planeobject({ endpoint Data to define the API endpoint address for joining a node to the Kubernetes clu{}
validity_period_hoursnumberThe number of hours after initial issuing that ALL generated certificates become8760
control_plane_num_cpusnumberThe total number of virtual processor cores to assign to 'controlplane' virtual 2
machine_networkobject({ nameservers = optGeneral network configuration of the virtual machine. 'hostname' and 'interfaces{}
worker_machine_network_hostnameslist(string)A list of hostnames for *count* of 'worker' virtual machines (if not set will be[]
cluster_extra_manifest_headersmap(string)A map of key value pairs that will be added while fetching the 'cluster_extra_ma{}
worker_network_interfaceslist(object({ name = strinA specification list for a virtual NIC on 'worker' virtual machines.[]
machine_secretsobject({ token = optional(Secret data that is used to create trust relationships between virtual machines { "ca": {} }
kubeconfig_pathstringPath to save kubeconfig file (Include filename. If not set config will not be cr""
control_plane_memorynumberThe amount of RAM for 'controlplane' virtual machines, in Mb.2048
control_plane_cluster_secretsobject({ aescbcEncryptionSSecret data required to establish trust relationships between components used by{ "aggregatorCA": {}, "etcd": {
talos_admin_pkiobject({ crt = optional(stBase64 encoded certificate (signed by machine_secrets.ca.crt) and key (in ED2551{}
worker_machine_extra_configurationobject({ pods = optional(lExtended configuration of 'worker' virtual machines. See https://www.talos.dev/v{}
… and 2 more inputs
Outputs (6)
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.
Resources (1)
local_file
Details
FrameworkTerraform Module
LanguageHCL
Version1.1.4
Cloud TALOS
Total downloads584
Inputs42
Outputs6
Resources1
Namespaceilpozzd
Updated