Terraform

The following is automatically generated reference documentation for Terraform by terraform-docs.

It can be generated via

$ terraform-docs -c docs/.terraform-docs.yaml terraform

Requirements

Name

Version

terraform

>= 0.14

local

>= 2.4.0

openstack

~> 2.1.0

template

>= 2.2.0

Providers

Name

Version

local

2.5.1

openstack

2.1.0

template

2.2.0

Modules

No modules.

Resources

Name

Type

local_file.final_group_all

resource

local_file.final_networking

resource

local_file.inventory_yaook-k8s

resource

local_file.trampoline_gateways

resource

openstack_blockstorage_volume_v3.gateway-volume

resource

openstack_blockstorage_volume_v3.master-volume

resource

openstack_blockstorage_volume_v3.worker-volume

resource

openstack_compute_floatingip_associate_v2.gateway

resource

openstack_compute_instance_v2.gateway

resource

openstack_compute_instance_v2.master

resource

openstack_compute_instance_v2.worker

resource

openstack_compute_servergroup_v2.server_group

resource

openstack_networking_floatingip_v2.gateway

resource

openstack_networking_floatingip_v2.gw_vip_fip

resource

openstack_networking_network_v2.cluster_network

resource

openstack_networking_port_v2.gateway

resource

openstack_networking_port_v2.gw_vip_port

resource

openstack_networking_port_v2.master

resource

openstack_networking_port_v2.worker

resource

openstack_networking_router_interface_v2.cluster_router_iface

resource

openstack_networking_router_interface_v2.cluster_router_iface_v6

resource

openstack_networking_router_v2.cluster_router

resource

openstack_networking_subnet_v2.cluster_subnet

resource

openstack_networking_subnet_v2.cluster_v6_subnet

resource

openstack_objectstorage_container_v1.thanos_data

resource

openstack_compute_flavor_v2.gateway

data source

openstack_compute_flavor_v2.master

data source

openstack_compute_flavor_v2.worker

data source

openstack_images_image_v2.gateway

data source

openstack_images_image_v2.master

data source

openstack_images_image_v2.worker

data source

openstack_networking_network_v2.public_network

data source

template_file.trampoline_gateways

data source

Inputs

Name

Description

Type

Default

Required

azs

Defines the availability zones of your cloud to use for the creation of servers.

set(string)

[
“AZ1”,
“AZ2”,
“AZ3”
]

no

cluster_name

n/a

string

"managed-k8s"

no

create_root_disk_on_volume

n/a

bool

false

no

dns_nameservers_v4

A list of IPv4 addresses which will be configured as DNS nameservers of the IPv4 subnet.

list(string)

[]

no

gateway_count

Amount of gateway nodes to create. (default: 0 –> one for each availability zone when ‘spread_gateways_across_azs=true’, 3 otherwise)

number

0

no

gateway_defaults

Default attributes for gateway nodes

’root_disk_size’ and ‘root_disk_volume_type’ only apply if ‘create_root_disk_on_volume=true’.
If ‘root_disk_volume_type’ is left empty the default of the IaaS environment will be used.

object({              # — template spec —
common_name = optional(string, “gw-“)
image = optional(string, “Debian 12 (bookworm)”)
flavor = optional(string, “XS”)
root_disk_size = optional(number, 10)
root_disk_volume_type = optional(string, “”)
})

{
“common_name”: “gw-“,
“flavor”: “XS”,
“image”: “Debian 12 (bookworm)”,
“root_disk_size”: 10,
“root_disk_volume_type”: “”
}

no

gitlab_backend

If set to true, GitLab will be used as Terraform HTTP backend.

bool

false

no

gitlab_base_url

Base URL of GitLab for Terraform HTTP backend if ‘gitlab_backend=true’.

string

""

no

gitlab_project_id

If ‘gitlab_backend=true’, the Terraform state will be stored in the GitLab repo with this ID.

string

""

no

gitlab_state_name

If ‘gitlab_backend=true’, the terraform state file will have this name.

string

""

no

ipv4_enabled

If set to true, ipv4 will be used

bool

true

no

ipv6_enabled

If set to true, ipv6 will be used

bool

false

no

keypair

n/a

string

n/a

yes

master_defaults

Default attributes for control plane nodes

’root_disk_size’ and ‘root_disk_volume_type’ only apply if ‘create_root_disk_on_volume=true’.
If ‘root_disk_volume_type’ is left empty the default of the IaaS environment will be used.

object({              # — template spec —
image = optional(string, “Ubuntu 22.04 LTS x64”)
flavor = optional(string, “M”)
root_disk_size = optional(number, 50)
root_disk_volume_type = optional(string, “”)
})

{
“flavor”: “M”,
“image”: “Ubuntu 22.04 LTS x64”,
“root_disk_size”: 50,
“root_disk_volume_type”: “”
}

no

monitoring_manage_thanos_bucket

Create an object storage container for thanos.

bool

false

no

network_mtu

MTU for the network used for the cluster.

number

1450

no

nodes

User defined list of control plane and worker nodes to be created with specified values

’role’ must be one of: “master”, “worker”.
’anti_affinity_group’ must not be set when role!=”worker”
Leaving ‘anti_affinity_group’ empty means to not join any anti affinity group

map(
object({
role = string # one of: ‘master’, ‘worker’
image = optional(string)
flavor = optional(string)
az = optional(string)
root_disk_size = optional(number)
root_disk_volume_type = optional(string)
anti_affinity_group = optional(string)
})
)

{
“master-0”: {
“role”: “master”
},
“master-1”: {
“role”: “master”
},
“master-2”: {
“role”: “master”
},
“worker-0”: {
“role”: “worker”
},
“worker-1”: {
“role”: “worker”
},
“worker-2”: {
“role”: “worker”
},
“worker-3”: {
“role”: “worker”
}
}

no

public_network

n/a

string

"shared-public-IPv4"

no

spread_gateways_across_azs

If true, spawn a gateway node in each availability zone listed in ‘azs’. Otherwise leave the distribution to the cloud controller.

bool

true

no

subnet_cidr

n/a

string

"172.30.154.0/24"

no

subnet_v6_cidr

n/a

string

"fd00::/120"

no

thanos_delete_container

n/a

bool

false

no

timeout_time

n/a

string

"30m"

no

worker_defaults

Default attributes for worker nodes

’root_disk_size’ and ‘root_disk_volume_type’ only apply if ‘create_root_disk_on_volume=true’.
If ‘root_disk_volume_type’ is left empty the default of the IaaS environment will be used.

Leaving ‘anti_affinity_group’ empty means to not join any anti affinity group

object({              # — template spec —
image = optional(string, “Ubuntu 22.04 LTS x64”)
flavor = optional(string, “M”)
root_disk_size = optional(number, 50)
root_disk_volume_type = optional(string, “”)
anti_affinity_group = optional(string)
})

{
“flavor”: “M”,
“image”: “Ubuntu 22.04 LTS x64”,
“root_disk_size”: 50,
“root_disk_volume_type”: “”
}

no

Outputs

No outputs.