diff --git a/CHANGES.md b/CHANGES.md index e0627e73c..a9b84da5b 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+ + * 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 795623758..0ec41c2ff 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 9535d2f0d..73e42fa70 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 795623758..0ec41c2ff 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 9535d2f0d..73e42fa70 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 b7f91cb33..5773a4ff5 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 c0407b17b..0640af4e9 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 b7f91cb33..5773a4ff5 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 c0407b17b..0640af4e9 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 7b5c7167d..67de974ca 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 9524c14ae..47f2c08a9 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 6d3116020..13326fc44 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 6d3116020..13326fc44 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/topics/maintenance.md b/docs/topics/maintenance.md index 95b812813..1d25934dc 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 4f2b6fa39..b8176d9d4 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 89dda2e6b..33166ff69 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 4f2b6fa39..b8176d9d4 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 89dda2e6b..33166ff69 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" } } }