vsphere-k8s/terraform/variables.tf
2022-12-02 15:32:50 -06:00

196 lines
4.1 KiB
HCL

# vSphere connection options
variable "vsphere-user" {
type = string
description = "vSphere user name"
}
variable "vsphere-password" {
type = string
description = "vSphere password"
}
variable "vsphere-server" {
type = string
description = "vCenter server FQDN or IP"
}
variable "vsphere-unverified-ssl" {
type = string
description = "Allow connecting to vCenter with self-signed certificate (true/false)"
}
# Deployment options
variable "vsphere-datacenter" {
type = string
description = "vSphere datacenter"
}
variable "vsphere-cluster" {
type = string
description = "vSphere cluster"
default = ""
}
variable "vsphere-template-folder" {
type = string
description = "Folder which holds the templates"
}
variable "vm-template-name" {
type = string
description = "Name of the template to be cloned"
}
variable "vm-folder" {
type = string
description = "Folder to hold the new VMs"
}
variable "vm-datastore" {
type = string
description = "vSphere datastore to hold the VMs"
}
variable "vm-network-name" {
type = string
description = "Network attached to the VMs"
}
variable "vm-network-address" {
type = string
description = "Network address with mask (ex: 192.168.1.0/24)"
}
variable "vm-network-gateway" {
type = string
description = "IPv4 gateway address"
}
variable "vm-network-dns-servers" {
type = list
description = "List of DNS servers"
}
variable "vm-domain" {
type = string
description = "Domain name for the VM"
default = ""
}
# Control plane specs
variable "vm-control-count" {
type = string
description = "Number of control plane nodes"
default = "1"
}
variable "vm-control-cpu" {
type = string
description = "Number of vCPUs for the control plane node(s)"
default = "2"
}
variable "vm-control-ram" {
type = string
description = "Megabytes of RAM for the control plane node(s)"
default = "2048"
}
variable "vm-control-disk-size" {
type = string
description = "Gigabytes of storage for the control plane node(s) disk"
}
variable "vm-control-ip-address-start" {
type = string
description = "Last octet of the first IP available to control plane nodes"
}
variable "vm-control-name" {
type = string
description = "Base name of the control plane node(s)"
}
# Worker specs
variable "vm-worker-count" {
type = string
description = "Number of worker nodes"
default = "2"
}
variable "vm-worker-cpu" {
type = string
description = "Number of vCPUs for the worker node(s)"
default = "1"
}
variable "vm-worker-ram" {
type = string
description = "Megabytes of RAM for the worker node(s)"
default = "1024"
}
variable "vm-worker-disk-size" {
type = string
description = "Gigabytes of storage for the worker node(s) disk"
}
variable "vm-worker-ip-address-start" {
type = string
description = "Last octet of the first IP available to worker nodes"
}
variable "vm-worker-name" {
type = string
description = "Base name of the worker node(s)"
}
# Kubernetes specs
variable "k8s-version" {
type = string
description = "Numerical version of Kubernetes to be used"
default = "1.25.3"
}
variable "k8s-cluster-name" {
type = string
description = "Display name for the new cluster"
}
variable "k8s-datastore" {
type = string
description = "vSphere datastore to hold K8s persistent volumes"
}
variable "k8s-pod-cidr" {
type = string
description = "Network CIDR range used for pod networking (default: 10.244.0.0/16)"
default = "10.244.0.0/16"
}
variable "k8s-service-cidr" {
type = string
description = "Network CIDR range used for service networking (default: 10.96.0.0/12)"
default = "10.96.0.0/12"
}
variable "k8s-kubevip-version" {
type = string
description = "Version tag of the desired kube-vip release (ex: v0.5.6)"
default = "latest"
}
variable "k8s-controlplane-vip" {
type = string
description = "IP or FQDN to be assigned to the integrated kube-vip load balancer"
}
variable "k8s-username" {
type = string
description = "Username used to log in to the K8s nodes for cluster bootstrapping"
}
variable "k8s-ssh-key-file" {
type = string
description = "Path to a file containing the SSH private key used for cluster bootstrapping"
}