diff --git a/docs/advanced/customization.md b/docs/advanced/customization.md index 47b8ac2a..37b2bb8f 100644 --- a/docs/advanced/customization.md +++ b/docs/advanced/customization.md @@ -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. diff --git a/docs/topics/maintenance.md b/docs/topics/maintenance.md index 45414140..06f13fdb 100644 --- a/docs/topics/maintenance.md +++ b/docs/topics/maintenance.md @@ -126,113 +126,3 @@ Typhoon supports multi-controller clusters, so it is possible to upgrade a clust !!! 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. - -## 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 -``` -