From fa3184fb9c41227976409e4a622ef374ef5c30be Mon Sep 17 00:00:00 2001 From: Dalton Hubble Date: Wed, 25 Nov 2020 14:48:08 -0800 Subject: [PATCH] Relax terraform-provider-ct version constraint * Allow terraform-provider-ct versions v0.6+ (e.g. v0.7.1) Before, only v0.6.x point updates were allowed * Update terraform-provider-ct to v0.7.1 in docs * READ the docs before updating terraform-provider-ct, as changing worker user-data is handled differently by different cloud platforms --- CHANGES.md | 2 + aws/fedora-coreos/kubernetes/versions.tf | 2 +- .../kubernetes/workers/versions.tf | 2 +- aws/flatcar-linux/kubernetes/versions.tf | 2 +- .../kubernetes/workers/versions.tf | 2 +- azure/fedora-coreos/kubernetes/versions.tf | 2 +- .../kubernetes/workers/versions.tf | 2 +- azure/flatcar-linux/kubernetes/versions.tf | 2 +- .../kubernetes/workers/versions.tf | 2 +- .../fedora-coreos/kubernetes/versions.tf | 2 +- .../flatcar-linux/kubernetes/versions.tf | 2 +- .../fedora-coreos/kubernetes/versions.tf | 2 +- .../flatcar-linux/kubernetes/versions.tf | 2 +- docs/fedora-coreos/aws.md | 2 +- docs/fedora-coreos/azure.md | 2 +- docs/fedora-coreos/bare-metal.md | 2 +- docs/fedora-coreos/digitalocean.md | 2 +- docs/fedora-coreos/google-cloud.md | 2 +- docs/flatcar-linux/aws.md | 2 +- docs/flatcar-linux/azure.md | 2 +- docs/flatcar-linux/bare-metal.md | 2 +- docs/flatcar-linux/digitalocean.md | 2 +- docs/flatcar-linux/google-cloud.md | 2 +- docs/topics/maintenance.md | 39 +++++++------------ .../fedora-coreos/kubernetes/versions.tf | 2 +- .../kubernetes/workers/versions.tf | 2 +- .../flatcar-linux/kubernetes/versions.tf | 2 +- .../kubernetes/workers/versions.tf | 2 +- 28 files changed, 41 insertions(+), 52 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index e0627e73..b4749c1b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,6 +10,8 @@ Notable changes between versions. * Update Calico from v3.16.5 to v3.17.0 ([#890](https://github.com/poseidon/typhoon/pull/890)) * Enable Calico MTU auto-detection * Remove [workaround](https://github.com/poseidon/typhoon/pull/724) to Calico cni-plugin [issue](https://github.com/projectcalico/cni-plugin/issues/874) +* Relax `terraform-provider-ct` version constraint to v0.6+ ([#893](https://github.com/poseidon/typhoon/pull/893)) + * Allow upgrading `terraform-provider-ct` to v0.7.x ([warn](https://typhoon.psdn.io/topics/maintenance/#upgrade-terraform-provider-ct)) ### AWS diff --git a/aws/fedora-coreos/kubernetes/versions.tf b/aws/fedora-coreos/kubernetes/versions.tf index 79562375..0ec41c2f 100644 --- a/aws/fedora-coreos/kubernetes/versions.tf +++ b/aws/fedora-coreos/kubernetes/versions.tf @@ -9,7 +9,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/aws/fedora-coreos/kubernetes/workers/versions.tf b/aws/fedora-coreos/kubernetes/workers/versions.tf index 9535d2f0..73e42fa7 100644 --- a/aws/fedora-coreos/kubernetes/workers/versions.tf +++ b/aws/fedora-coreos/kubernetes/workers/versions.tf @@ -8,7 +8,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/aws/flatcar-linux/kubernetes/versions.tf b/aws/flatcar-linux/kubernetes/versions.tf index 79562375..0ec41c2f 100644 --- a/aws/flatcar-linux/kubernetes/versions.tf +++ b/aws/flatcar-linux/kubernetes/versions.tf @@ -9,7 +9,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/aws/flatcar-linux/kubernetes/workers/versions.tf b/aws/flatcar-linux/kubernetes/workers/versions.tf index 9535d2f0..73e42fa7 100644 --- a/aws/flatcar-linux/kubernetes/workers/versions.tf +++ b/aws/flatcar-linux/kubernetes/workers/versions.tf @@ -8,7 +8,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/azure/fedora-coreos/kubernetes/versions.tf b/azure/fedora-coreos/kubernetes/versions.tf index b7f91cb3..5773a4ff 100644 --- a/azure/fedora-coreos/kubernetes/versions.tf +++ b/azure/fedora-coreos/kubernetes/versions.tf @@ -9,7 +9,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/azure/fedora-coreos/kubernetes/workers/versions.tf b/azure/fedora-coreos/kubernetes/workers/versions.tf index c0407b17..0640af4e 100644 --- a/azure/fedora-coreos/kubernetes/workers/versions.tf +++ b/azure/fedora-coreos/kubernetes/workers/versions.tf @@ -8,7 +8,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/azure/flatcar-linux/kubernetes/versions.tf b/azure/flatcar-linux/kubernetes/versions.tf index b7f91cb3..5773a4ff 100644 --- a/azure/flatcar-linux/kubernetes/versions.tf +++ b/azure/flatcar-linux/kubernetes/versions.tf @@ -9,7 +9,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/azure/flatcar-linux/kubernetes/workers/versions.tf b/azure/flatcar-linux/kubernetes/workers/versions.tf index c0407b17..0640af4e 100644 --- a/azure/flatcar-linux/kubernetes/workers/versions.tf +++ b/azure/flatcar-linux/kubernetes/workers/versions.tf @@ -8,7 +8,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/bare-metal/fedora-coreos/kubernetes/versions.tf b/bare-metal/fedora-coreos/kubernetes/versions.tf index 7b5c7167..67de974c 100644 --- a/bare-metal/fedora-coreos/kubernetes/versions.tf +++ b/bare-metal/fedora-coreos/kubernetes/versions.tf @@ -8,7 +8,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } matchbox = { diff --git a/bare-metal/flatcar-linux/kubernetes/versions.tf b/bare-metal/flatcar-linux/kubernetes/versions.tf index 9524c14a..47f2c08a 100644 --- a/bare-metal/flatcar-linux/kubernetes/versions.tf +++ b/bare-metal/flatcar-linux/kubernetes/versions.tf @@ -8,7 +8,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } matchbox = { diff --git a/digital-ocean/fedora-coreos/kubernetes/versions.tf b/digital-ocean/fedora-coreos/kubernetes/versions.tf index 6d311602..13326fc4 100644 --- a/digital-ocean/fedora-coreos/kubernetes/versions.tf +++ b/digital-ocean/fedora-coreos/kubernetes/versions.tf @@ -8,7 +8,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } digitalocean = { diff --git a/digital-ocean/flatcar-linux/kubernetes/versions.tf b/digital-ocean/flatcar-linux/kubernetes/versions.tf index 6d311602..13326fc4 100644 --- a/digital-ocean/flatcar-linux/kubernetes/versions.tf +++ b/digital-ocean/flatcar-linux/kubernetes/versions.tf @@ -8,7 +8,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } digitalocean = { diff --git a/docs/fedora-coreos/aws.md b/docs/fedora-coreos/aws.md index f39aef99..9a20b5e7 100644 --- a/docs/fedora-coreos/aws.md +++ b/docs/fedora-coreos/aws.md @@ -51,7 +51,7 @@ terraform { required_providers { ct = { source = "poseidon/ct" - version = "0.6.1" + version = "0.7.1" } aws = { source = "hashicorp/aws" diff --git a/docs/fedora-coreos/azure.md b/docs/fedora-coreos/azure.md index 72b10b74..fa476983 100644 --- a/docs/fedora-coreos/azure.md +++ b/docs/fedora-coreos/azure.md @@ -48,7 +48,7 @@ terraform { required_providers { ct = { source = "poseidon/ct" - version = "0.6.1" + version = "0.7.1" } azurerm = { source = "hashicorp/azurerm" diff --git a/docs/fedora-coreos/bare-metal.md b/docs/fedora-coreos/bare-metal.md index eb5e7196..05b05ff5 100644 --- a/docs/fedora-coreos/bare-metal.md +++ b/docs/fedora-coreos/bare-metal.md @@ -138,7 +138,7 @@ terraform { required_providers { ct = { source = "poseidon/ct" - version = "0.6.1" + version = "0.7.1" } matchbox = { source = "poseidon/matchbox" diff --git a/docs/fedora-coreos/digitalocean.md b/docs/fedora-coreos/digitalocean.md index 53c9f985..0384046e 100644 --- a/docs/fedora-coreos/digitalocean.md +++ b/docs/fedora-coreos/digitalocean.md @@ -51,7 +51,7 @@ terraform { required_providers { ct = { source = "poseidon/ct" - version = "0.6.1" + version = "0.7.1" } digitalocean = { source = "digitalocean/digitalocean" diff --git a/docs/fedora-coreos/google-cloud.md b/docs/fedora-coreos/google-cloud.md index bf7e3e4b..3658b7dc 100644 --- a/docs/fedora-coreos/google-cloud.md +++ b/docs/fedora-coreos/google-cloud.md @@ -52,7 +52,7 @@ terraform { required_providers { ct = { source = "poseidon/ct" - version = "0.6.1" + version = "0.7.1" } google = { source = "hashicorp/google" diff --git a/docs/flatcar-linux/aws.md b/docs/flatcar-linux/aws.md index 443a380a..6b2999cd 100644 --- a/docs/flatcar-linux/aws.md +++ b/docs/flatcar-linux/aws.md @@ -51,7 +51,7 @@ terraform { required_providers { ct = { source = "poseidon/ct" - version = "0.6.1" + version = "0.7.1" } aws = { source = "hashicorp/aws" diff --git a/docs/flatcar-linux/azure.md b/docs/flatcar-linux/azure.md index f7208668..a55eadc3 100644 --- a/docs/flatcar-linux/azure.md +++ b/docs/flatcar-linux/azure.md @@ -48,7 +48,7 @@ terraform { required_providers { ct = { source = "poseidon/ct" - version = "0.6.1" + version = "0.7.1" } azurerm = { source = "hashicorp/azurerm" diff --git a/docs/flatcar-linux/bare-metal.md b/docs/flatcar-linux/bare-metal.md index 8bcde8b3..2e17541c 100644 --- a/docs/flatcar-linux/bare-metal.md +++ b/docs/flatcar-linux/bare-metal.md @@ -138,7 +138,7 @@ terraform { required_providers { ct = { source = "poseidon/ct" - version = "0.6.1" + version = "0.7.1" } matchbox = { source = "poseidon/matchbox" diff --git a/docs/flatcar-linux/digitalocean.md b/docs/flatcar-linux/digitalocean.md index c8056224..4eec8dfa 100644 --- a/docs/flatcar-linux/digitalocean.md +++ b/docs/flatcar-linux/digitalocean.md @@ -51,7 +51,7 @@ terraform { required_providers { ct = { source = "poseidon/ct" - version = "0.6.1" + version = "0.7.1" } digitalocean = { source = "digitalocean/digitalocean" diff --git a/docs/flatcar-linux/google-cloud.md b/docs/flatcar-linux/google-cloud.md index 2c7edbba..28e007ea 100644 --- a/docs/flatcar-linux/google-cloud.md +++ b/docs/flatcar-linux/google-cloud.md @@ -52,7 +52,7 @@ terraform { required_providers { ct = { source = "poseidon/ct" - version = "0.6.1" + version = "0.7.1" } google = { source = "hashicorp/google" diff --git a/docs/topics/maintenance.md b/docs/topics/maintenance.md index 95b81281..1d25934d 100644 --- a/docs/topics/maintenance.md +++ b/docs/topics/maintenance.md @@ -129,34 +129,22 @@ Typhoon supports multi-controller clusters, so it is possible to upgrade a clust ### Upgrade terraform-provider-ct -The [terraform-provider-ct](https://github.com/poseidon/terraform-provider-ct) plugin parses, validates, and converts Container Linux Configs into Ignition user-data for provisioning instances. Since Typhoon v1.12.2+, the plugin can be updated in-place so that on apply, only workers will be replaced. - -Add the [terraform-provider-ct](https://github.com/poseidon/terraform-provider-ct) plugin binary for your system to `~/.terraform.d/plugins/`, noting the final name. - -```sh -wget https://github.com/poseidon/terraform-provider-ct/releases/download/v0.5.0/terraform-provider-ct-v0.6.1-linux-amd64.tar.gz -tar xzf terraform-provider-ct-v0.6.1-linux-amd64.tar.gz -mv terraform-provider-ct-v0.6.1-linux-amd64/terraform-provider-ct ~/.terraform.d/plugins/terraform-provider-ct_v0.6.1 -``` - -Binary names are versioned. This enables the ability to upgrade different plugins and have clusters pin different versions. - -``` -$ tree ~/.terraform.d/ -/home/user/.terraform.d/ -└── plugins - ├── terraform-provider-ct_v0.2.1 - ├── terraform-provider-ct_v0.3.0 - ├── terraform-provider-ct_v0.6.1 - └── terraform-provider-matchbox_v0.4.1 -``` - +The [terraform-provider-ct](https://github.com/poseidon/terraform-provider-ct) plugin parses, validates, and converts Fedora CoreOS or Flatcar Linux Configs into Ignition user-data for provisioning instances. Since Typhoon v1.12.2+, the plugin can be updated in-place so that on apply, only workers will be replaced. Update the version of the `ct` plugin in each Terraform working directory. Typhoon clusters managed in the working directory **must** be v1.12.2 or higher. -```tf -provider "ct" { - version = "0.6.1" +```diff +provider "ct" {} + +terraform { + required_providers { + ct = { + source = "poseidon/ct" +- version = "0.6.1" ++ version = "0.7.1" + } + ... + } } ``` @@ -169,7 +157,6 @@ terraform plan Apply the change. Worker nodes' user-data will be changed and workers will be replaced. Rollout happens slightly differently on each platform: - #### AWS AWS creates a new worker ASG, then removes the old ASG. New workers join the cluster and old workers disappear. `terraform apply` will hang during this process. diff --git a/google-cloud/fedora-coreos/kubernetes/versions.tf b/google-cloud/fedora-coreos/kubernetes/versions.tf index 4f2b6fa3..b8176d9d 100644 --- a/google-cloud/fedora-coreos/kubernetes/versions.tf +++ b/google-cloud/fedora-coreos/kubernetes/versions.tf @@ -9,7 +9,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/google-cloud/fedora-coreos/kubernetes/workers/versions.tf b/google-cloud/fedora-coreos/kubernetes/workers/versions.tf index 89dda2e6..33166ff6 100644 --- a/google-cloud/fedora-coreos/kubernetes/workers/versions.tf +++ b/google-cloud/fedora-coreos/kubernetes/workers/versions.tf @@ -8,7 +8,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/google-cloud/flatcar-linux/kubernetes/versions.tf b/google-cloud/flatcar-linux/kubernetes/versions.tf index 4f2b6fa3..b8176d9d 100644 --- a/google-cloud/flatcar-linux/kubernetes/versions.tf +++ b/google-cloud/flatcar-linux/kubernetes/versions.tf @@ -9,7 +9,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } } diff --git a/google-cloud/flatcar-linux/kubernetes/workers/versions.tf b/google-cloud/flatcar-linux/kubernetes/workers/versions.tf index 89dda2e6..33166ff6 100644 --- a/google-cloud/flatcar-linux/kubernetes/workers/versions.tf +++ b/google-cloud/flatcar-linux/kubernetes/workers/versions.tf @@ -8,7 +8,7 @@ terraform { ct = { source = "poseidon/ct" - version = "~> 0.6.1" + version = "~> 0.6" } } }