The following requirements are needed by this module:
-
terraform (>=0.13.1)
-
local (>=1.4.0)
-
null (>=2.1.2)
-
openstack (>=1.24.0)
-
rke (>=1.0.0)
The following input variables are required:
Description: External network name
Type: string
Description: Name of image nodes (must fullfill RKE requirements)
Type: string
Description: Master flavor name
Type: string
Description: Worker flavor name
Type: string
Description: Openstack auth_url. Consider using export TF_VAR_os_auth_url=$OS_AUTH_URL
Type: string
Description: Openstack password. Consider using export TF_VAR_os_password=$OS_PASSWORD
Type: string
The following input variables are optional (have default values):
Description: Name of the cluster
Type: string
Default: "rke"
Description: SSH keypair name
Type: string
Default: null
Description: Local path to SSH key
Type: string
Default: "~/.ssh/id_rsa"
Description: Security group rules
Type: list(any)
Default:
[
{
"port": 22,
"protocol": "tcp",
"source": "0.0.0.0/0"
},
{
"port": 6443,
"protocol": "tcp",
"source": "0.0.0.0/0"
},
{
"port": 80,
"protocol": "tcp",
"source": "0.0.0.0/0"
},
{
"port": 443,
"protocol": "tcp",
"source": "0.0.0.0/0"
}
]
Description: Neutron network CIDR
Type: string
Default: "192.168.42.0/24"
Description: DNS servers
Type: list(string)
Default: null
Description: DNS domain for DNS integration. DNS domain names must have a dot at the end
Type: string
Default: null
Description: Enable Octabia LB for master/edge nodes
Type: bool
Default: false
Description: Number of master nodes (should be odd number...)
Type: number
Default: 1
Description: Number of edge nodes
Type: number
Default: 0
Description: Number of woker nodes
Type: number
Default: 2
Description: Edge flavor name. Will use worker_flavor_name if not set
Type: string
Default: null
Description: Master server group affinity
Type: string
Default: "soft-anti-affinity"
Description: Worker server group affinity
Type: string
Default: "soft-anti-affinity"
Description: Edge server group affinity
Type: string
Default: "soft-anti-affinity"
Description: Whether to use the config_drive feature to configure the instances
Type: bool
Default: "false"
Description: User data file to provide when launching the instance
Type: string
Default: null
Description: Boot nodes from volume
Type: bool
Default: false
Description: The size of the boot volume
Type: number
Default: 20
Description: The list of AZs to deploy nodes into
Type: list(string)
Default: []
Description: Use Octavia LBaaS instead of Neutron Networking
Type: bool
Default: false
Description: Default OS image user
Type: string
Default: "ubuntu"
Description: Whether to use ssh agent
Type: bool
Default: "true"
Description: Bastion host. Will use first master node if not set
Type: string
Default: null
Description: Commands to run on nodes before running RKE
Type: list(string)
Default:
[
"# Connected !"
]
Description: Master labels. Ingress controller will run on nodes with egde label
Type: map(string)
Default:
{
"node-role.kubernetes.io/edge": "true",
"node-role.kubernetes.io/master": "true"
}
Description: Worker labels
Type: map(string)
Default:
{
"node-role.kubernetes.io/worker": "true"
}
Description: Edge labels. Ingress controller will run on nodes with egde label
Type: map(string)
Default:
{
"node-role.kubernetes.io/worker": "true"
}
Description: Master taints
Type: list(map(string))
Default: []
Description: Worker taints
Type: list(map(string))
Default: []
Description: Edge taints
Type: list(map(string))
Default: []
Description: Kubernetes version (RKE)
Type: string
Default: null
Description: CNI MTU
Type: number
Default: 0
Description: Deploy cloud provider
Type: bool
Default: "true"
Description: Ignore volume availability zone
Type: bool
Default: "false"
Description: Whether to deploy traefik. Mandatory if no edge nodes
Type: bool
Default: "true"
Description: Traefik version
Type: string
Default: "2.2"
Description: Whether to deploy nginx RKE addon
Type: bool
Default: "false"
Description: Email for Let's Encrypt
Type: string
Default: "example@example.com"
Description: Cinder storage types
Type: list(string)
Default: null
Description: Default storage class
Type: string
Default: null
Description: RKE YAML files for add-ons
Type: list(string)
Default: null
Description: Write kubeconfig file to disk
Type: bool
Default: "true"
The following outputs are exported:
Description: The name of the keypair used for nodes
Description: The master nodes
Description: The edge nodes
Description: The worker nodes
Description: RKE cluster spec
Description: The nodes subnet
Description: The floating ip of the loadbalancer