From 36ed53924fefd39f75421132a941c542dafd09a5 Mon Sep 17 00:00:00 2001 From: Dalton Hubble Date: Sun, 6 Oct 2019 11:53:49 -0700 Subject: [PATCH] Add stricter types for bare-metal modules * Review variables available in bare-metal kubernetes modules for Container Linux and Fedora CoreOS * Deprecate cluster_domain_suffix variable * Remove deprecated container_linux_oem variable --- CHANGES.md | 11 +-- .../kubernetes/cl/install.yaml.tmpl | 1 - .../container-linux/kubernetes/groups.tf | 2 +- .../container-linux/kubernetes/profiles.tf | 2 - .../container-linux/kubernetes/variables.tf | 54 ++++++------- .../fedora-coreos/kubernetes/profiles.tf | 6 +- .../fedora-coreos/kubernetes/variables.tf | 80 +++++++++---------- docs/cl/bare-metal.md | 19 +++-- docs/fedora-coreos/bare-metal.md | 23 +++--- 9 files changed, 94 insertions(+), 104 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index de1bf06e..5ac814b6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,30 +7,31 @@ Notable changes between versions. * Kubernetes [v1.16.1](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md#v1161) * Update etcd from v3.3.15 to [v3.4.1](https://github.com/etcd-io/etcd/releases/tag/v3.4.1) * Update Calico from v3.8.2 to [v3.9.1](https://docs.projectcalico.org/v3.9/release-notes/) +* Add Terraform v0.12 variables types ([#553](https://github.com/poseidon/typhoon/pull/553), [#557](https://github.com/poseidon/typhoon/pull/557), [#560](https://github.com/poseidon/typhoon/pull/560), [#556](https://github.com/poseidon/typhoon/pull/556), [#562](https://github.com/poseidon/typhoon/pull/562)) + * Deprecate `cluster_domain_suffix` variable #### AWS -* Add Terraform v0.12 variables types ([#553](https://github.com/poseidon/typhoon/pull/553)) * Add `node_labels` variable to internal `workers` module ([#550](https://github.com/poseidon/typhoon/pull/550)) #### Azure -* Add Terraform v0.12 variables types ([#557](https://github.com/poseidon/typhoon/pull/557)) -* Change `workers` module default `vm_type` to `Standard_DS1_v2` (followup to [#539](https://github.com/poseidon/typhoon/pull/539)) +* Promote `networking` provider Calico VXLAN out of experimental (set `networking = "calico"`) * Add `node_labels` variable to internal `workers` module ([#550](https://github.com/poseidon/typhoon/pull/550)) +* Change `workers` module default `vm_type` to `Standard_DS1_v2` (followup to [#539](https://github.com/poseidon/typhoon/pull/539)) #### Bare-Metal * Fix Terraform missing comma error ([#549](https://github.com/poseidon/typhoon/pull/549)) +* Remove deprecated `container_linux_oem` variable ([#562](https://github.com/poseidon/typhoon/pull/562)) #### DigitalOcean -* Add Terraform v0.12 variables types ([#560](https://github.com/poseidon/typhoon/pull/560)) +* Promote `networking` provider Calico VXLAN out of experimental (set `networking = "calico"`) * Fix Terraform missing comma error ([#549](https://github.com/poseidon/typhoon/pull/549)) #### Google Cloud -* Add Terraform v0.12 variables types ([#556](https://github.com/poseidon/typhoon/pull/556)) * Add `node_labels` variable to internal `workers` module ([#550](https://github.com/poseidon/typhoon/pull/550)) #### Addons diff --git a/bare-metal/container-linux/kubernetes/cl/install.yaml.tmpl b/bare-metal/container-linux/kubernetes/cl/install.yaml.tmpl index 0acca9ab..e8562c93 100644 --- a/bare-metal/container-linux/kubernetes/cl/install.yaml.tmpl +++ b/bare-metal/container-linux/kubernetes/cl/install.yaml.tmpl @@ -35,7 +35,6 @@ storage: -d ${install_disk} \ -C ${os_channel} \ -V ${os_version} \ - -o "${container_linux_oem}" \ ${baseurl_flag} \ -i ignition.json udevadm settle diff --git a/bare-metal/container-linux/kubernetes/groups.tf b/bare-metal/container-linux/kubernetes/groups.tf index 2cc410d9..d7ee3c4e 100644 --- a/bare-metal/container-linux/kubernetes/groups.tf +++ b/bare-metal/container-linux/kubernetes/groups.tf @@ -4,7 +4,7 @@ resource "matchbox_group" "install" { name = format("install-%s", element(concat(var.controller_names, var.worker_names), count.index)) # pick one of 4 Matchbox profiles (Container Linux or Flatcar, cached or non-cached) - profile = local.flavor == "flatcar" ? var.cached_install == "true" ? element(matchbox_profile.cached-flatcar-linux-install.*.name, count.index) : element(matchbox_profile.flatcar-install.*.name, count.index) : var.cached_install == "true" ? element(matchbox_profile.cached-container-linux-install.*.name, count.index) : element(matchbox_profile.container-linux-install.*.name, count.index) + profile = local.flavor == "flatcar" ? var.cached_install ? element(matchbox_profile.cached-flatcar-linux-install.*.name, count.index) : element(matchbox_profile.flatcar-install.*.name, count.index) : var.cached_install ? element(matchbox_profile.cached-container-linux-install.*.name, count.index) : element(matchbox_profile.container-linux-install.*.name, count.index) selector = { mac = element(concat(var.controller_macs, var.worker_macs), count.index) diff --git a/bare-metal/container-linux/kubernetes/profiles.tf b/bare-metal/container-linux/kubernetes/profiles.tf index 0a6ba49e..78f958f5 100644 --- a/bare-metal/container-linux/kubernetes/profiles.tf +++ b/bare-metal/container-linux/kubernetes/profiles.tf @@ -40,7 +40,6 @@ data "template_file" "container-linux-install-configs" { os_version = var.os_version ignition_endpoint = format("%s/ignition", var.matchbox_http_endpoint) install_disk = var.install_disk - container_linux_oem = var.container_linux_oem ssh_authorized_key = var.ssh_authorized_key # only cached-container-linux profile adds -b baseurl baseurl_flag = "" @@ -82,7 +81,6 @@ data "template_file" "cached-container-linux-install-configs" { os_version = var.os_version ignition_endpoint = format("%s/ignition", var.matchbox_http_endpoint) install_disk = var.install_disk - container_linux_oem = var.container_linux_oem ssh_authorized_key = var.ssh_authorized_key # profile uses -b baseurl to install from matchbox cache baseurl_flag = "-b ${var.matchbox_http_endpoint}/assets/${local.flavor}" diff --git a/bare-metal/container-linux/kubernetes/variables.tf b/bare-metal/container-linux/kubernetes/variables.tf index a95a808b..5f6d5809 100644 --- a/bare-metal/container-linux/kubernetes/variables.tf +++ b/bare-metal/container-linux/kubernetes/variables.tf @@ -62,8 +62,8 @@ variable "clc_snippets" { # configuration variable "k8s_domain_name" { - description = "Controller DNS name which resolves to a controller instance. Workers and kubeconfig's will communicate with this endpoint (e.g. cluster.example.com)" type = string + description = "Controller DNS name which resolves to a controller instance. Workers and kubeconfig's will communicate with this endpoint (e.g. cluster.example.com)" } variable "ssh_authorized_key" { @@ -72,63 +72,55 @@ variable "ssh_authorized_key" { } variable "asset_dir" { - description = "Path to a directory where generated assets should be placed (contains secrets)" type = string + description = "Absolute path to a directory where generated assets should be placed (contains secrets)" } variable "networking" { - description = "Choice of networking provider (flannel or calico)" type = string + description = "Choice of networking provider (flannel or calico)" default = "calico" } variable "network_mtu" { + type = number description = "CNI interface MTU (applies to calico only)" - type = string - default = "1480" + default = 1480 } variable "network_ip_autodetection_method" { - description = "Method to autodetect the host IPv4 address (applies to calico only)" type = string + description = "Method to autodetect the host IPv4 address (applies to calico only)" default = "first-found" } variable "pod_cidr" { - description = "CIDR IPv4 range to assign Kubernetes pods" type = string + description = "CIDR IPv4 range to assign Kubernetes pods" default = "10.2.0.0/16" } variable "service_cidr" { + type = string description = <