2019-09-07 22:38:51 +02:00
|
|
|
# Kubernetes assets (kubeconfig, manifests)
|
2019-09-15 01:24:32 +02:00
|
|
|
module "bootstrap" {
|
2024-07-26 06:41:54 +02:00
|
|
|
source = "git::https://github.com/poseidon/terraform-render-bootstrap.git?ref=1609060f4f138f3b3aef74a9e5494e0fe831c423"
|
2017-06-27 06:55:39 +02:00
|
|
|
|
2019-05-28 06:14:25 +02:00
|
|
|
cluster_name = var.cluster_name
|
|
|
|
api_servers = [format("%s.%s", var.cluster_name, var.dns_zone)]
|
2022-08-03 05:11:21 +02:00
|
|
|
etcd_servers = [for fqdn in google_dns_record_set.etcds.*.name : trimsuffix(fqdn, ".")]
|
Introduce the component system for managing pre-installed addons
* Previously: Typhoon provisions clusters with kube-system components
like CoreDNS, kube-proxy, and a chosen CNI provider (among flannel,
Calico, or Cilium) pre-installed. This is convenient since clusters
come with "batteries included". But it also means upgrading these
components is generally done in lock-step, by upgrading to a new
Typhoon / Kubernetes release
* It can be valuable to manage these components with a separate
plan/apply process or through automations and deploy systems. For
example, this allows managing CoreDNS separately from the cluster's
lifecycle.
* These "components" will continue to be pre-installed by default,
but a new `components` variable allows them to be disabled and
managed as "addons", components you apply after cluster creation
and manage on a rolling basis. For some of these, we may provide
Terraform modules to aide in managing these components.
```
module "cluster" {
# defaults
components = {
enable = true
coredns = {
enable = true
}
kube_proxy = {
enable = true
}
# Only the CNI set in var.networking will be installed
flannel = {
enable = true
}
calico = {
enable = true
}
cilium = {
enable = true
}
}
}
```
An earlier variable `install_container_networking = true/false` has
been removed, since it can now be achieved with this more extensible
and general components mechanism by setting the chosen networking
provider enable field to false.
2024-05-19 00:05:33 +02:00
|
|
|
networking = var.networking
|
2017-12-09 22:36:59 +01:00
|
|
|
network_mtu = 1440
|
2019-05-28 06:14:25 +02:00
|
|
|
pod_cidr = var.pod_cidr
|
|
|
|
service_cidr = var.service_cidr
|
|
|
|
cluster_domain_suffix = var.cluster_domain_suffix
|
|
|
|
enable_reporting = var.enable_reporting
|
|
|
|
enable_aggregation = var.enable_aggregation
|
2021-04-11 21:08:56 +02:00
|
|
|
daemonset_tolerations = var.daemonset_tolerations
|
2024-05-13 06:03:40 +02:00
|
|
|
components = var.components
|
2018-06-22 09:28:36 +02:00
|
|
|
|
2018-06-19 06:57:58 +02:00
|
|
|
// temporary
|
2019-07-06 22:11:37 +02:00
|
|
|
external_apiserver_port = 443
|
2017-06-27 06:55:39 +02:00
|
|
|
}
|
2019-05-28 06:14:25 +02:00
|
|
|
|