Skip to content

Commit

Permalink
Relax terraform-provider-ct version constraint
Browse files Browse the repository at this point in the history
* Allow terraform-provider-ct versions v0.6+ (e.g. v0.7.1)
Before, only v0.6.x point updates were allowed
* READ the docs before updating terraform-provider-ct,
as changing worker user-data is handled differently
by different cloud platforms
  • Loading branch information
dghubble committed Nov 25, 2020
1 parent 22565e5 commit 361e697
Show file tree
Hide file tree
Showing 18 changed files with 31 additions and 42 deletions.
2 changes: 2 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion aws/fedora-coreos/kubernetes/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
2 changes: 1 addition & 1 deletion aws/fedora-coreos/kubernetes/workers/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
2 changes: 1 addition & 1 deletion aws/flatcar-linux/kubernetes/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
2 changes: 1 addition & 1 deletion aws/flatcar-linux/kubernetes/workers/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
2 changes: 1 addition & 1 deletion azure/fedora-coreos/kubernetes/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion azure/fedora-coreos/kubernetes/workers/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
2 changes: 1 addition & 1 deletion azure/flatcar-linux/kubernetes/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion azure/flatcar-linux/kubernetes/workers/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
2 changes: 1 addition & 1 deletion bare-metal/fedora-coreos/kubernetes/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}

matchbox = {
Expand Down
2 changes: 1 addition & 1 deletion bare-metal/flatcar-linux/kubernetes/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}

matchbox = {
Expand Down
2 changes: 1 addition & 1 deletion digital-ocean/fedora-coreos/kubernetes/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}

digitalocean = {
Expand Down
2 changes: 1 addition & 1 deletion digital-ocean/flatcar-linux/kubernetes/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}

digitalocean = {
Expand Down
39 changes: 13 additions & 26 deletions docs/topics/maintenance.md
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
...
}
}
```

Expand All @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion google-cloud/fedora-coreos/kubernetes/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
2 changes: 1 addition & 1 deletion google-cloud/fedora-coreos/kubernetes/workers/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
2 changes: 1 addition & 1 deletion google-cloud/flatcar-linux/kubernetes/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}
2 changes: 1 addition & 1 deletion google-cloud/flatcar-linux/kubernetes/workers/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {

ct = {
source = "poseidon/ct"
version = "~> 0.6.1"
version = "~> 0.6"
}
}
}

0 comments on commit 361e697

Please sign in to comment.