variable "cluster_name" { default = "example" } variable "az_list" { description = "List of Availability Zones to use for masters in your OpenStack cluster" type = list(string) default = ["nova"] } variable "az_list_node" { description = "List of Availability Zones to use for nodes in your OpenStack cluster" type = list(string) default = ["nova"] } variable "number_of_bastions" { default = 1 } variable "number_of_k8s_masters" { default = 2 } variable "number_of_k8s_masters_no_etcd" { default = 2 } variable "number_of_etcd" { default = 2 } variable "number_of_k8s_masters_no_floating_ip" { default = 2 } variable "number_of_k8s_masters_no_floating_ip_no_etcd" { default = 2 } variable "number_of_k8s_nodes" { default = 1 } variable "number_of_k8s_nodes_no_floating_ip" { default = 1 } variable "number_of_gfs_nodes_no_floating_ip" { default = 0 } variable "bastion_root_volume_size_in_gb" { default = 0 } variable "etcd_root_volume_size_in_gb" { default = 0 } variable "master_root_volume_size_in_gb" { default = 0 } variable "node_root_volume_size_in_gb" { default = 0 } variable "gfs_root_volume_size_in_gb" { default = 0 } variable "gfs_volume_size_in_gb" { default = 75 } variable "master_volume_type" { default = "Default" } variable "node_volume_type" { default = "Default" } variable "public_key_path" { description = "The path of the ssh pub key" default = "~/.ssh/id_rsa.pub" } variable "image" { description = "the image to use" default = "" } variable "image_gfs" { description = "Glance image to use for GlusterFS" default = "" } variable "ssh_user" { description = "used to fill out tags for ansible inventory" default = "ubuntu" } variable "ssh_user_gfs" { description = "used to fill out tags for ansible inventory" default = "ubuntu" } variable "flavor_bastion" { description = "Use 'openstack flavor list' command to see what your OpenStack instance uses for IDs" default = 3 } variable "flavor_k8s_master" { description = "Use 'openstack flavor list' command to see what your OpenStack instance uses for IDs" default = 3 } variable "flavor_k8s_node" { description = "Use 'openstack flavor list' command to see what your OpenStack instance uses for IDs" default = 3 } variable "flavor_etcd" { description = "Use 'openstack flavor list' command to see what your OpenStack instance uses for IDs" default = 3 } variable "flavor_gfs_node" { description = "Use 'openstack flavor list' command to see what your OpenStack instance uses for IDs" default = 3 } variable "network_name" { description = "name of the internal network to use" default = "internal" } variable "use_existing_network" { description = "Use an existing network" type = bool default = "false" } variable "network_dns_domain" { description = "dns_domain for the internal network" type = string default = null } variable "use_neutron" { description = "Use neutron" default = 1 } variable "port_security_enabled" { description = "Enable port security on the internal network" type = bool default = "true" } variable "force_null_port_security" { description = "Force port security to be null. Some providers does not allow setting port security" type = bool default = "false" } variable "subnet_cidr" { description = "Subnet CIDR block." type = string default = "10.0.0.0/24" } variable "dns_nameservers" { description = "An array of DNS name server names used by hosts in this subnet." type = list(string) default = [] } variable "k8s_master_fips" { description = "specific pre-existing floating IPs to use for master nodes" type = list(string) default = [] } variable "bastion_fips" { description = "specific pre-existing floating IPs to use for bastion node" type = list(string) default = [] } variable "floatingip_pool" { description = "name of the floating ip pool to use" default = "external" } variable "wait_for_floatingip" { description = "Terraform will poll the instance until the floating IP has been associated." default = "false" } variable "external_net" { description = "uuid of the external/public network" } variable "supplementary_master_groups" { description = "supplementary kubespray ansible groups for masters, such kube_node" default = "" } variable "supplementary_node_groups" { description = "supplementary kubespray ansible groups for worker nodes, such as kube_ingress" default = "" } variable "bastion_allowed_remote_ips" { description = "An array of CIDRs allowed to SSH to hosts" type = list(string) default = ["0.0.0.0/0"] } variable "master_allowed_remote_ips" { description = "An array of CIDRs allowed to access API of masters" type = list(string) default = ["0.0.0.0/0"] } variable "k8s_allowed_remote_ips" { description = "An array of CIDRs allowed to SSH to hosts" type = list(string) default = [] } variable "k8s_allowed_egress_ips" { description = "An array of CIDRs allowed for egress traffic" type = list(string) default = ["0.0.0.0/0"] } variable "master_allowed_ports" { type = list(any) default = [] } variable "worker_allowed_ports" { type = list(any) default = [ { "protocol" = "tcp" "port_range_min" = 30000 "port_range_max" = 32767 "remote_ip_prefix" = "0.0.0.0/0" }, ] } variable "bastion_allowed_ports" { type = list(any) default = [] } variable "use_access_ip" { default = 1 } variable "master_server_group_policy" { description = "desired server group policy, e.g. anti-affinity" default = "" } variable "node_server_group_policy" { description = "desired server group policy, e.g. anti-affinity" default = "" } variable "etcd_server_group_policy" { description = "desired server group policy, e.g. anti-affinity" default = "" } variable "router_id" { description = "uuid of an externally defined router to use" default = null } variable "router_internal_port_id" { description = "uuid of the port connection our router to our network" default = null } variable "k8s_masters" { default = {} type = map(object({ az = string flavor = string floating_ip = bool etcd = bool image_id = optional(string) root_volume_size_in_gb = optional(number) volume_type = optional(string) network_id = optional(string) })) } variable "k8s_nodes" { default = {} type = map(object({ az = string flavor = string floating_ip = bool extra_groups = optional(string) image_id = optional(string) root_volume_size_in_gb = optional(number) volume_type = optional(string) network_id = optional(string) server_group = optional(string) cloudinit = optional(object({ extra_partitions = list(object({ volume_path = string partition_path = string partition_start = string partition_end = string mount_path = string })) })) })) } variable "additional_server_groups" { default = {} type = map(object({ policy = string })) } variable "extra_sec_groups" { default = false } variable "extra_sec_groups_name" { default = "custom" } variable "image_uuid" { description = "uuid of image inside openstack to use" default = "" } variable "image_gfs_uuid" { description = "uuid of image to be used on gluster fs nodes. If empty defaults to image_uuid" default = "" } variable "image_master" { description = "uuid of image inside openstack to use" default = "" } variable "image_master_uuid" { description = "uuid of image to be used on master nodes. If empty defaults to image_uuid" default = "" } variable "group_vars_path" { description = "path to the inventory group vars directory" type = string default = "./group_vars" }