Remove old migration docs and fix link
This commit is contained in:
parent
d8d524d10b
commit
ec5ea51141
|
@ -130,5 +130,5 @@ module "digital-ocean-nemo" {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
To customize lower-level Kubernetes control plane bootstrapping, see the [poseidon/bootkube-terraform](https://github.com/poseidon/bootkube-terraform) Terraform module.
|
To customize lower-level Kubernetes control plane bootstrapping, see the [poseidon/terraform-render-bootkube](https://github.com/poseidon/terraform-render-bootkube) Terraform module.
|
||||||
|
|
||||||
|
|
|
@ -126,113 +126,3 @@ Typhoon supports multi-controller clusters, so it is possible to upgrade a clust
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
Typhoon does not support or document node replacement as an upgrade strategy. It limits Typhoon's ability to make infrastructure and architectural changes between tagged releases.
|
Typhoon does not support or document node replacement as an upgrade strategy. It limits Typhoon's ability to make infrastructure and architectural changes between tagged releases.
|
||||||
|
|
||||||
## Terraform v0.11.x
|
|
||||||
|
|
||||||
Terraform v0.10.x to v0.11.x introduced breaking changes in the provider and module inheritance relationship that you MUST be aware of when upgrading to the v0.11.x `terraform` binary. Terraform now allows multiple named (i.e. aliased) copies of a provider to exist (e.g `aws.default`, `aws.somename`). Terraform now also requires providers be explicitly passed to modules in order to satisfy module version contraints (which Typhoon modules define). Full details can be found in [typhoon#77](https://github.com/poseidon/typhoon/issues/77) and [hashicorp#16824](https://github.com/hashicorp/terraform/issues/16824).
|
|
||||||
|
|
||||||
In particular, after upgrading to the v0.11.x `terraform` binary, you'll notice:
|
|
||||||
|
|
||||||
* `terraform plan` does not succeed and prompts for variables when it didn't before
|
|
||||||
* `terraform plan` does not succeed and mentions "provider configuration block is required for all operations"
|
|
||||||
* `terraform apply` fails when you comment or remove a module usage in order to delete a cluster
|
|
||||||
|
|
||||||
### New users
|
|
||||||
|
|
||||||
New users can start with Terraform v0.11.x and follow the Typhoon docs without issue.
|
|
||||||
|
|
||||||
### Existing
|
|
||||||
|
|
||||||
Users who used modules to create clusters with Terraform v0.10.x and still manage those clusters via Terraform must explicitly add each provider used in `provider.tf`:
|
|
||||||
|
|
||||||
```
|
|
||||||
provider "local" {
|
|
||||||
version = "~> 1.0"
|
|
||||||
alias = "default"
|
|
||||||
}
|
|
||||||
|
|
||||||
provider "null" {
|
|
||||||
version = "~> 1.0"
|
|
||||||
alias = "default"
|
|
||||||
}
|
|
||||||
|
|
||||||
provider "template" {
|
|
||||||
version = "~> 1.0"
|
|
||||||
alias = "default"
|
|
||||||
}
|
|
||||||
|
|
||||||
provider "tls" {
|
|
||||||
version = "~> 1.0"
|
|
||||||
alias = "default"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Modify the `google`, `aws`, or `digitalocean` provider section to specify an explicit `alias` name.
|
|
||||||
|
|
||||||
```
|
|
||||||
provider "digitalocean" {
|
|
||||||
version = "0.1.2"
|
|
||||||
token = "${chomp(file("~/.config/digital-ocean/token"))}"
|
|
||||||
alias = "default"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
!!! note
|
|
||||||
In these examples, we've chosen to name each provider "default", though the point of the Terraform changes is that other possibilities are possible.
|
|
||||||
|
|
||||||
Edit each instance (i.e. usage) of a module and explicitly pass the providers.
|
|
||||||
|
|
||||||
```
|
|
||||||
module "aws-cluster" {
|
|
||||||
source = "git::https://github.com/poseidon/typhoon//aws/container-linux/kubernetes"
|
|
||||||
|
|
||||||
providers = {
|
|
||||||
aws = "aws.default"
|
|
||||||
local = "local.default"
|
|
||||||
null = "null.default"
|
|
||||||
template = "template.default"
|
|
||||||
tls = "tls.default"
|
|
||||||
}
|
|
||||||
|
|
||||||
cluster_name = "somename"
|
|
||||||
```
|
|
||||||
|
|
||||||
Re-run `terraform plan`. Plan will claim there are no changes to apply. Run `terraform apply` anyway as this will update Terraform state to be aware of the explicit provider versions.
|
|
||||||
|
|
||||||
### Verify
|
|
||||||
|
|
||||||
You should now be able to run `terraform plan` without errors. When you choose, you may comment or delete a module from Terraform configs and `terraform apply` should destroy the cluster correctly.
|
|
||||||
|
|
||||||
## terraform-provider-ct v0.2.1
|
|
||||||
|
|
||||||
Typhoon requires updating the [terraform-provider-ct](https://github.com/coreos/terraform-provider-ct) plugin installed on your system from v0.2.0 to [v0.2.1](https://github.com/coreos/terraform-provider-ct/releases/tag/v0.2.1).
|
|
||||||
|
|
||||||
Check your `~/.terraformrc` to find your current `terraform-provider-ct` plugin.
|
|
||||||
|
|
||||||
```
|
|
||||||
providers {
|
|
||||||
ct = "/usr/local/bin/terraform-provider-ct"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Make a backup copy. Install `terraform-provider-ct` v0.2.1.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
wget https://github.com/coreos/terraform-provider-ct/releases/download/v0.2.1/terraform-provider-ct-v0.2.1-linux-amd64.tar.gz
|
|
||||||
tar xzf terraform-provider-ct-v0.2.1-linux-amd64.tar.gz
|
|
||||||
sudo mv terraform-provider-ct-v0.2.1-linux-amd64/terraform-provider-ct /usr/local/bin/
|
|
||||||
```
|
|
||||||
|
|
||||||
Re-initialize Terraform configs which have Typhoon cluster resources.
|
|
||||||
|
|
||||||
```
|
|
||||||
cd clusters
|
|
||||||
terraform init
|
|
||||||
```
|
|
||||||
|
|
||||||
Verify Terraform does not produce a diff related to Container Linux provisioning.
|
|
||||||
|
|
||||||
```
|
|
||||||
terraform plan
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue