Skip to content

Latest commit

 

History

History
88 lines (70 loc) · 6.77 KB

File metadata and controls

88 lines (70 loc) · 6.77 KB

K3s/RKE2 Cluster In-line Module

This in-line module deploys the K3s/RKE2 cluster.

Notes

  • Terraform tries to replace all variables within the templated script, so it fails

    As a workaround, an extra dollar symbol ($) has been added to the variables that doesn't need to be replaced by terraform templating.

    See this and this for more information.

  • ServiceLB disabled

    --disable servicelb is required for metallb to work

Requirements

Name Version
terraform >= 1.3
equinix >= 1.14.2
random >= 3.5.1

Providers

Name Version
equinix >= 1.14.2
random >= 3.5.1

Modules

No modules.

Resources

Name Type
equinix_metal_bgp_session.all_in_one resource
equinix_metal_bgp_session.control_plane_master resource
equinix_metal_bgp_session.control_plane_second resource
equinix_metal_bgp_session.control_plane_third resource
equinix_metal_device.all_in_one resource
equinix_metal_device.control_plane_master resource
equinix_metal_device.control_plane_others resource
equinix_metal_device.nodes resource
equinix_metal_reserved_ip_block.api_vip_addr resource
equinix_metal_reserved_ip_block.ingress_addr resource
equinix_metal_reserved_ip_block.ip_pool resource
random_string.random_password resource
random_string.random_token resource

Inputs

Name Description Type Default Required
metal_metro Equinix Metal Metro string n/a yes
metal_project_id Equinix Metal Project ID string n/a yes
cluster_name Cluster name string "Cluster" no
control_plane_hostnames Control plane hostname prefix string "cp" no
custom_rancher_password Rancher initial password (autogenerated if not provided) string null no
custom_token Token used for nodes to join the cluster (autogenerated otherwise) string null no
deploy_demo Deploys a simple demo using a global IP as ingress and a hello-kubernetes pods bool false no
global_ip_cidr Global Anycast IP that will be mapped on all metros via BGP string null no
ha HA (aka 3 control plane nodes) bool false no
ip_pool_count Number of public IPv4 per metro to be used as LoadBalancers with MetalLB (it needs to be power of 2 between 0 and 256 as required by Equinix Metal) number 0 no
kube_version K3s/RKE2 version to be installed. Empty for latest K3s string "" no
metallb_version MetalLB version to be installed. Empty for latest string "" no
node_count Number of nodes number "0" no
node_hostnames Node hostname prefix string "node" no
os Operating system string "debian_11" no
plan_control_plane Control plane type/size string "c3.small.x86" no
plan_node Node type/size string "c3.small.x86" no
rancher_flavor Rancher flavor to be installed (prime, latest, stable or alpha). Empty to not install it string "" no
rancher_version Rancher version to be installed (vX.Y.Z). Empty for latest string "" no

Outputs

Name Description
ingress_ip Ingress IP
ip_pool_cidr IP Pool for LoadBalancer SVCs
kube_api_ip K8s API IPs
nodes_details Nodes external and internal IPs
rancher_address Rancher URL
rancher_password Rancher initial password