Onpremise Kubeadm

Create a Kubernetes cluster with Kubeadm.

  • Red Hat or CentOs only

  • CNI : Calico or Flannel

  • Load balancer : MetalLB

  • VMs must already exists

  • VMs DNS/IP must be reachable

  • Need SSH access

Requirements

Name

Version

terraform

>= 1.0

null

>= 3.2.1

Providers

Name

Version

null

>= 3.2.1

Modules

No modules.

Resources

Name

Type

null_resource.install_kubernetes_cluster_node_masters

resource

null_resource.install_kubernetes_cluster_node_worker

resource

Inputs

Name

Description

Type

Default

Required

cni_pluggin

The cni plugin to be used. calico or flannel

string

"calico"

no

cni_pluggin_cidr

The cidr of cni pluggin used by kubeadm configuration on master

string

null

no

kubeadm_token

The generated kubeadm token used by worker node to join the master

string

n/a

yes

loadbalancer_plugin

loadbalancer plugin to be used. Only metalLB or no Loadbalancer for now

string

""

no

master_node_name

The name of the cluster master node.

string

"master"

no

master_private_ip

The private ip of the master node.

string

n/a

yes

master_public_ip

The public ip of the master node.

string

n/a

yes

tls_private_key_pem_content

The private key content of the master node.

string

n/a

yes

user

user used to execute docker + kubernetes scripts. must be updated accordingly with the linux image used

string

n/a

yes

workers

The worker nodes to be deployed.

map(object({
instance_count = optional(number, 1)
label = optional(list(string), [])
name = string
public_dns = string
taints = optional(list(string), [])
}))

n/a

yes

Outputs

No outputs.

Examples