k3s-ext
deyaeddin/k3s-ext/hcloud
Terraform module to install K3S on Hetzner cloud servers with battery included. Cert-Manger, External-DNS, Nginx-ingress-controller, Minio, Octant Dashboard ...etc
Kubernetes K3S Terraform Module This module is inspired by cicdteam/terraform-hcloud-k3s with extra applications ready to be installed with `` make apply`. All Applications are using HELM charts, and highly customizable. Use Hetzner Cloud link to get €20 List of Applications: - cert-manager: 3 ways to choice for issuing certificates HTTP01, DNS01_CLOUDFLARE, [DNS01_HETZNER] - default-backend: default bitnami-nginx chart - external-dns: external-dns chart with ability to chose between "hetzner or cloudflare" - nginx-ingress-controller: default bitnami-nginx-ingress-controller chart, with annotations: - load-balancer.hetzner.cloud/name: ${lb_name} - load-balancer.hetzner.cloud/location: ${lb_location} - load-balancer.hetzner.cloud/use-private-ip: "true" - load-balancer.hetzner.cloud/disable-
| Name | Type | Description | Default |
|---|---|---|---|
| hcloud_token | string | Hetzner cloud auth token | required |
| default_domain | string | root domain for ingress default service | required |
| issuer_email | string | email for issuing certificates with LetsEncrypt | required |
| hcloud_dns_api_token | string | hashed Hetzner DNS access token | required |
| hcloud_masters_extra_scripts | list(string) | Additional list of commands to be added to initial master server creation | required |
| cloud_flare_api_token | string | Cloudflare api token. Ref: https://dash.cloudflare.com/profile/api-tokens | required |
| cloud_flare_api_key | string | Cloudflare api key. Ref: https://dash.cloudflare.com/profile/api-tokens | required |
| cloud_flare_api_email | string | Cloudflare primary email (login email) | required |
| hcloud_node_extra_scripts | list(string) | Additional list of commands to be added to initial node server creation | required |
| enable_apps | bool | wither to enable deploying cert-manager, nginx-ingress-controller ...etc | false |
| hcloud_network_subnet_type | string | subnet type | "cloud" |
| master_groups_count | number | Number of control plane nodes. | 1 |
| hcloud_network_subnet_zone | string | Subnet Zon | "eu-central" |
| hcloud_datacenter | string | Hetzner datacenter where resources resides, hel1-dc2 (Helsinki 1 DC 2) or fsn1-d | "hel1-dc2" |
| dns_provider | string | DNS provider to use. Values can be hetzner or cloudflare | "hetzner" |
| storage_class | string | storage class to use with minio drivers | "hcloud-volumes" |
| k3s_config_file | string | String path to config file | "~/.kubeconfig/hetzner.config" |
| public_key_path | string | string path to public key which will be used to access all the servers including | "~/.ssh/id_rsa.pub" |
| node_groups | map(string) | Map of worker node groups, key is server_type, value is count of nodes in group. | {
"cx22": 2,
"cx32": 1
} |
| master_groups_type | string | Node type (size) | "cx22" |
| lb_hcloud_protocol | string | protocol for the loadbalancer | "tcp" |
| private_key_path | string | string path to private key which will be used to access all the servers includin | "~/.ssh/id_rsa" |
| hcloud_network_ip_range | string | ip_range of the main network | "10.0.0.0/8" |
| k3s_channel | string | k3s channel (stable, latest, v1.19 and so on) | "latest" |
| default_backend_image_digest | string | default backend image digest | "" |
| cloud_flare_api_proxied | bool | wither the zone will be proxied on cloudflare | false |
| k3s_version | string | k3s version (v1.21.0+k3s1, v1.19.10+k3s1 and so on) | "v1.30.1+k3s1" |
| default_backend_image_repository | string | default backend image repository e.g. bitnami/nginx | "bitnami/nginx" |
| default_backend_image_tag | string | default backend image tag e.g. 1.27.0-debian-12-r1 | "1.27.0-debian-12-r1" |
master_ipv4 — Public IP Address of the master nodemaster_internal_ipv4 — Private IP Address of the master nodemaster_nodes_ipv4 — Public IP Address of the master nodes in groupsmaster_nodes_internal_ipv4 — Public IP Address of the master nodes in groupsnodes_ipv4 — Public IP Address of the worker nodes in groupsTerraform module to deploy landing zone subscriptions (and much more) in Azure
Terraform Azure Verified Pattern Module for Azure Landing Zone
Terraform Azure Verified Resource Module for Key Vault
Terraform module for building and deploying Next.js apps to AWS. Supports SSR (L