Terraform module for creating a Kubernetes cluster in Hetzner using KubeOne.
As Hetzner doesn't have a managed Kubernetes service, this module sets up a cluster to be compatible with KubeOne as the cluster manager.
Name | Version |
---|---|
terraform | >= 1.8.0 |
hcloud | ~> 1.47.0 |
Name | Version |
---|---|
hcloud | ~> 1.47.0 |
No modules.
Name | Type |
---|---|
hcloud_firewall.cluster | resource |
hcloud_load_balancer.load_balancer | resource |
hcloud_load_balancer_network.load_balancer | resource |
hcloud_load_balancer_service.load_balancer_service | resource |
hcloud_load_balancer_target.load_balancer_target | resource |
hcloud_network.net | resource |
hcloud_network_subnet.kubeone | resource |
hcloud_placement_group.control_plane | resource |
hcloud_server.control_plane | resource |
hcloud_server_network.control_plane | resource |
hcloud_ssh_keys.admin_keys | data source |
Name | Description | Type | Default | Required |
---|---|---|---|---|
apiserver_alternative_names | subject alternative names for the API Server signing cert. | list(string) |
[] |
no |
cluster_name | prefix for cloud resources | string |
n/a | yes |
control_plane_datacenters | n/a | list(string) |
[ |
no |
control_plane_replicas | n/a | number |
3 |
no |
control_plane_source_ips | List of IPs that are allowed to connect to the control instances | list(string) |
n/a | yes |
control_plane_type | n/a | string |
"cx22" |
no |
datacenter | n/a | string |
"nbg1" |
no |
disable_kubeapi_loadbalancer | E2E tests specific variable to disable usage of any loadbalancer in front of kubeapi-server | bool |
false |
no |
image | n/a | string |
"ubuntu-20.04" |
no |
initial_machinedeployment_operating_system_profile | Name of operating system profile for MachineDeployments, only applicable if operating-system-manager addon is enabled. If not specified, the default value will be added by machine-controller addon. |
string |
"" |
no |
ip_range | ip range to use for private network | string |
"192.168.0.0/16" |
no |
ip_range_cloud | ip range to use for the cloud instances | string |
"192.168.0.0/17" |
no |
lb_type | n/a | string |
"lb11" |
no |
network_zone | network zone to use for private network | string |
"eu-central" |
no |
ssh_agent_socket | SSH Agent socket, default to grab from $SSH_AUTH_SOCK | string |
"env:SSH_AUTH_SOCK" |
no |
ssh_key_selector | Selector to use when automatically pulling existing SSH keys. | string |
"role=admin" |
no |
ssh_keys | List of SSH keys that will have access to the server. If none are given, existing SSH keys in Hetzner will be used. | list(string) |
[] |
no |
ssh_port | SSH port to be used to provision instances | number |
22 |
no |
ssh_username | SSH user, used only in output | string |
"root" |
no |
worker_os | OS to run on worker machines | string |
"ubuntu" |
no |
worker_type | n/a | string |
"cx22" |
no |
Name | Description |
---|---|
kubeone_api | kube-apiserver LB endpoint |
kubeone_hosts | Control plane endpoints to SSH to |
ssh_commands | n/a |