Foundation#
This module scaffolds a Kubernetes cluster. Based on a node config, it will create Hetzner Cloud servers and connect external IPs to them. Then, it will initialize the cluster using rke and install argocd, keycloak, cert-manager, ingress-nginx and metallb.
Requirements#
No requirements.
Providers#
No providers.
Modules#
| Name | Source | Version |
|---|---|---|
| cloudflare | ./modules/cloudflare | n/a |
| cluster | ./modules/cluster | n/a |
| hetzner | ./modules/hetzner | n/a |
Resources#
No resources.
Inputs#
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| domain | The domain to use | string |
n/a | yes |
| The email to use for letsencrypt | string |
n/a | yes | |
| gitlab_infrastructure_project_id | The id of the infrastructure project in gitlab | string |
n/a | yes |
| nodes | Node configuration | any |
n/a | yes |
| secrets | Encrypted secrets | map(string) |
n/a | yes |
| versions | Versions for the various components to use | map(string) |
n/a | yes |
Outputs#
| Name | Description |
|---|---|
| cluster_connection | The cluster connection |
| domain | n/a |
| ingress_ips | List of ingress IPs. |
| kube_config_yaml | The generated kube config yaml |
| nodes | Hetzner Cloud VMs with their respective roles. |
| ssh_key | The generated SSH key for connecting to the nodes. |