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
This commit is contained in:
parent
22565e57e0
commit
fa3184fb9c
|
@ -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))
|
* Update Calico from v3.16.5 to v3.17.0 ([#890](https://github.com/poseidon/typhoon/pull/890))
|
||||||
* Enable Calico MTU auto-detection
|
* 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)
|
* 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
|
### AWS
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
|
|
||||||
matchbox = {
|
matchbox = {
|
||||||
|
|
|
@ -8,7 +8,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
|
|
||||||
matchbox = {
|
matchbox = {
|
||||||
|
|
|
@ -8,7 +8,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalocean = {
|
digitalocean = {
|
||||||
|
|
|
@ -8,7 +8,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalocean = {
|
digitalocean = {
|
||||||
|
|
|
@ -51,7 +51,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "0.6.1"
|
version = "0.7.1"
|
||||||
}
|
}
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
|
|
|
@ -48,7 +48,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "0.6.1"
|
version = "0.7.1"
|
||||||
}
|
}
|
||||||
azurerm = {
|
azurerm = {
|
||||||
source = "hashicorp/azurerm"
|
source = "hashicorp/azurerm"
|
||||||
|
|
|
@ -138,7 +138,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "0.6.1"
|
version = "0.7.1"
|
||||||
}
|
}
|
||||||
matchbox = {
|
matchbox = {
|
||||||
source = "poseidon/matchbox"
|
source = "poseidon/matchbox"
|
||||||
|
|
|
@ -51,7 +51,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "0.6.1"
|
version = "0.7.1"
|
||||||
}
|
}
|
||||||
digitalocean = {
|
digitalocean = {
|
||||||
source = "digitalocean/digitalocean"
|
source = "digitalocean/digitalocean"
|
||||||
|
|
|
@ -52,7 +52,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "0.6.1"
|
version = "0.7.1"
|
||||||
}
|
}
|
||||||
google = {
|
google = {
|
||||||
source = "hashicorp/google"
|
source = "hashicorp/google"
|
||||||
|
|
|
@ -51,7 +51,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "0.6.1"
|
version = "0.7.1"
|
||||||
}
|
}
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
|
|
|
@ -48,7 +48,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "0.6.1"
|
version = "0.7.1"
|
||||||
}
|
}
|
||||||
azurerm = {
|
azurerm = {
|
||||||
source = "hashicorp/azurerm"
|
source = "hashicorp/azurerm"
|
||||||
|
|
|
@ -138,7 +138,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "0.6.1"
|
version = "0.7.1"
|
||||||
}
|
}
|
||||||
matchbox = {
|
matchbox = {
|
||||||
source = "poseidon/matchbox"
|
source = "poseidon/matchbox"
|
||||||
|
|
|
@ -51,7 +51,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "0.6.1"
|
version = "0.7.1"
|
||||||
}
|
}
|
||||||
digitalocean = {
|
digitalocean = {
|
||||||
source = "digitalocean/digitalocean"
|
source = "digitalocean/digitalocean"
|
||||||
|
|
|
@ -52,7 +52,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "0.6.1"
|
version = "0.7.1"
|
||||||
}
|
}
|
||||||
google = {
|
google = {
|
||||||
source = "hashicorp/google"
|
source = "hashicorp/google"
|
||||||
|
|
|
@ -129,34 +129,22 @@ Typhoon supports multi-controller clusters, so it is possible to upgrade a clust
|
||||||
|
|
||||||
### Upgrade terraform-provider-ct
|
### 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.
|
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.
|
||||||
|
|
||||||
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
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
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.
|
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
|
```diff
|
||||||
provider "ct" {
|
provider "ct" {}
|
||||||
version = "0.6.1"
|
|
||||||
|
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:
|
Apply the change. Worker nodes' user-data will be changed and workers will be replaced. Rollout happens slightly differently on each platform:
|
||||||
|
|
||||||
|
|
||||||
#### AWS
|
#### 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.
|
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.
|
||||||
|
|
|
@ -9,7 +9,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ terraform {
|
||||||
|
|
||||||
ct = {
|
ct = {
|
||||||
source = "poseidon/ct"
|
source = "poseidon/ct"
|
||||||
version = "~> 0.6.1"
|
version = "~> 0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue