rke
DavidSpek/rke/openstack
Terraform Openstack RKE
terraform-openstack-rke   Terraform module to deploy Kubernetes with RKE on OpenStack. Inspired by Marco Capuccini work, rewritten from scratch for Terraform 0.12+ and new terraform-rke-provider. Table of contents - Prerequisites - Examples - Documentation Prerequisites - Terraform 0.12+ - terraform-provider-rke v1.0.0-beta1+ - OpenStack environment properly sourced. - A Openstack image fullfiling RKE requirements. - At least one Openstack floating IP. Examples Minimal example with master node as egde node and two worker nodes ``hcl Consider using 'export TF_VAR_os_auth_url=$OS_AUTH_URL' variable "os_auth_url"{} Consider using 'export TF_VAR_
| Name | Type | Description | Default |
|---|---|---|---|
| storage_types | list(string) | Cinder storage types | required |
| image_name | string | Name of image nodes (must fullfill RKE requirements) | required |
| master_flavor_name | string | Master flavor name | required |
| default_storage | string | Default storage class | required |
| dns_servers | list(string) | DNS servers | required |
| complete_flavor_name | string | Complete flavor name | required |
| os_auth_url | string | Openstack auth_url. Consider using export TF_VAR_os_auth_url=$OS_AUTH_URL | required |
| bastion_host | string | Bastion host. Will use first master node if not set | required |
| addons_include | list(string) | RKE YAML files for add-ons | required |
| worker_flavor_name | string | Worker flavor name | required |
| ssh_keypair_name | string | SSH keypair name | required |
| kubernetes_version | string | Kubernetes version (RKE) | required |
| public_net_name | string | External network name | required |
| user_data_file | string | User data file to provide when launching the instance | required |
| os_password | string | Openstack password. Consider using export TF_VAR_os_password=$OS_PASSWORD | required |
| dns_domain | string | DNS domain for DNS integration. DNS domain names must have a dot at the end | required |
| edge_flavor_name | string | Edge flavor name. Will use worker_flavor_name if not set | required |
| cloud_provider | bool | Deploy cloud provider | "true" |
| deploy_nginx | bool | Whether to deploy nginx RKE addon | "false" |
| acme_email | string | Email for Let's Encrypt | "[email protected]" |
| ssh_key_file | string | Local path to SSH key | "~/.ssh/id_rsa" |
| edge_labels | map(string) | Edge labels. Ingress controller will run on nodes with egde label | {
"node-role.kubernetes.io/worker": "t |
| master_labels | map(string) | Master labels. Ingress controller will run on nodes with egde label | {
"node-role.kubernetes.io/edge": "tru |
| cni_mtu | number | CNI MTU | 0 |
| traefik_image_tag | string | Traefik version | "2.2" |
| complete_count | number | Number of complete nodes (should be odd number...) | 0 |
| nodes_config_drive | bool | Whether to use the config_drive feature to configure the instances | "false" |
| complete_labels | map(string) | Complete labels. Ingress controller will run on nodes with egde label | {
"node-role.kubernetes.io/edge": "tru |
| nodes_net_cidr | string | Neutron network CIDR | "192.168.42.0/24" |
| master_server_affinity | string | Master server group affinity | "soft-anti-affinity" |
| edge_server_affinity | string | Edge server group affinity | "soft-anti-affinity" |
| worker_labels | map(string) | Worker labels | {
"node-role.kubernetes.io/worker": "t |
| deploy_traefik | bool | Whether to deploy traefik. Mandatory if no edge nodes | "true" |
| complete_server_affinity | string | Complete server group affinity | "soft-anti-affinity" |
| use_ssh_agent | bool | Whether to use ssh agent | "true" |
| secgroup_rules | list | Security group rules | [
{
"port": 22,
"protocol": "t |
| master_count | number | Number of master nodes (should be odd number...) | 1 |
| … and 3 more inputs | |||
master_nodes — The master nodesedge_nodes — The edge nodesworker_nodes — The worker nodescomplete_nodes — The complete nodesrke_cluster — RKE cluster speckeypair_name — The name of the keypair used for nodes