7.7 KiB
Terraform module for Lawndale Kubernetes environment
This module manages the core Kubernetes cluster components running on Lawndale including workers.
Requirements
The following requirements are needed by this module:
-
aws (~> 4.9.0)
-
cloudflare (~> 3.15.0)
-
dns (~> 3.2.3)
-
helm (2.5.1)
-
kubernetes (~> 2.11.0)
-
libvirt (0.6.14)
-
macaddress (0.3.0)
-
template (~> 2.2.0)
Providers
The following providers are used by this module:
Modules
The following Modules are called:
flannel
Source: git@git.thomasklein.me:thomasklein/terraform-modules//kubernetes/flannel
Version:
kube_proxy
Source: git@git.thomasklein.me:thomasklein/terraform-modules//kubernetes/kube-proxy
Version:
worker
Source: git@git.thomasklein.me:thomasklein/terraform-modules//lawndale-vm
Version:
Resources
The following resources are used by this module:
- helm_release.coredns (resource)
- helm_release.kube_state_metrics (resource)
- helm_release.metrics_server (resource)
- helm_release.traefik (resource)
- kubernetes_cluster_role.ci_cd (resource)
- kubernetes_cluster_role.prometheus (resource)
- kubernetes_cluster_role_binding.auto_approve_node_csrs (resource)
- kubernetes_cluster_role_binding.auto_approve_node_renewals (resource)
- kubernetes_cluster_role_binding.nodes_create_csrs (resource)
- kubernetes_cluster_role_binding.prometheus (resource)
- kubernetes_cluster_role_binding.terraform_ci_is_a_ci (resource)
- kubernetes_manifest.lawndale (resource)
- kubernetes_namespace.prometheus (resource)
- kubernetes_secret.bootstrap_token (resource)
- kubernetes_service_account.prometheus (resource)
- kubernetes_service_account.terraform_ci_cd (resource)
- libvirt_pool.kubernetes_workers (resource)
- random_password.bootstrap_token_id (resource)
- random_password.bootstrap_token_secret (resource)
- time_rotating.bootstrap_expiry_base (resource)
- time_static.lawndale_node_registered (resource)
- template_cloudinit_config.worker (data source)
Required Inputs
The following input variables are required:
lawndale_dns_host
Description: Address to reach lawndale internal DNS server
Type: string
lawndale_dns_key_secret
Description: DNSSEC key to use sigining the NSUPDATE queries for Lawndale
Type: string
lawndale_libvirt_uri_transport
Description: Transport protocol (could be ssh or tls) to dial Lawndale hypervisor
Type: string
Optional Inputs
The following input variables are optional (have default values):
lawndale_dns_key_algorithm
Description: DNSSEC key to use sigining the NSUPDATE queries for Lawndale
Type: string
Default: "hmac-sha256"
lawndale_dns_port
Description: Port where the lawndale internal DNS server listens on
Type: number
Default: 53
lawndale_dns_transport
Description: Port where the lawndale internal DNS server listens on
Type: string
Default: "udp"
lawndale_libvirt_uri
Description: Libvirt URI to use accessing Lawndale hypervisor
Type: string
Default: null
lawndale_libvirt_uri_extra
Description: Libvirt URI extra parameters [https://libvirt.org/uri.html#transport-configuration](See Libvirt transport configuration)
Type: map(any)
Default: {}
lawndale_libvirt_uri_path
Description: Libvirt URI path sent to the libvirt daemon
Type: string
Default: "/system"
lawndale_libvirt_uri_userhostport
Description: Libvirt URI username, hostname or ip address, and port to reach lawndale hypervisor, in the format of [username@]<hostname>[:port]
Type: string
Default: "lawndale-hyper"
Outputs
No outputs.