Upgrading to Terraform 0.12 and fix issues in crio, grafana, kubelet, skuba, and terraform
Announcement ID: | SUSE-RU-2020:0710-1 |
---|---|
Rating: | important |
References: | |
Affected Products: |
|
An update that has nine fixes can now be installed.
Description:
Upgrade Terraform Files and State
In order to seamlessly switch to Terraform 0.12 you need to make sure that:
- all files follow the new syntax for the HashiCorp Configuration Language included in Terraform 0.12;
- all boolean values are
true
orfalse
and not 0 or 1; - all variables are explicitly declared;
- all dependencies are explicitly declared to reach the expected behavior.
Recommended Procedure
If you can tear down your existing cluster, do delete your cluster before upgrading to Terraform 0.12. After that follow our documentation to create a new cluster. That will lead to the cleanest upgrade result.
If you are using Terraform 0.11 and you cannot tear down your cluster, you will need to update your Terraform files (and states) in place for Terraform 0.12.
To do this, enter your Terraform files/state folder and:
- Migrate Terraform files with the automatic migration tool by running
terraform 0.12upgrade
. - For OpenStack, run the extra operations for in-place upgrade, which follow just below.
- For VMware, there is no extra operation.
- You can then run the
terraform init/plan/apply
commands as usual.
Extra Operations for In-place Upgrade of OpenStack Terraform Files
- Replace any boolean values written as a number with
false
/true
. For example, for the variables inopenstack/variables.tf
(and their equivalent in yourterraform.tfvars
file), replacedefault = 0
withdefault = false
in the variablesworkers_vol_enabled
anddnsentry
. Do the same for any extra boolean variable you might have added. - Introduce a
depends_on
on the resource"openstack_compute_floatingip_associate_v2" "master_ext_ip"
inmaster-instance.tf
:
depends_on = [openstack_compute_instance_v2.master]
- Introduce a
depends_on
on the resource"master_wait_cloudinit"
inmaster-instance.tf
:
depends_on = [ openstack_compute_instance_v2.master, openstack_compute_floatingip_associate_v2.master_ext_ip ]
- Introduce a
depends_on
on the resources"openstack_compute_floatingip_associate_v2" "worker_ext_ip"
and"null_resource" "worker_wait_cloudinit"
inworker-instance.tf
, similarly to the ones for master. Replacemaster
withworker
in the examples above. - Update the resources
resource "openstack_compute_instance_v2" "master"
andresource "openstack_compute_instance_v2" "worker"
withmaster-instance.tf
andworker-instance.tf
respectively. Add the following resources:
lifecycle { ignore_changes = [user_data] }
This will make it possible to update your cluster from a Terraform 0.11 state into a Terraform 0.12 state without tearing it down completely.
[WARNING]
When adding lifecycle { ignore_change = [user_data] }
in your master and
worker instances, you will effectively prevent updates of nodes, should you or
SUSE update the user_data
. This should be removed as soon as possible after the
migration to Terraform 0.12.
Patch Instructions:
To install this SUSE update use the SUSE recommended
installation methods like YaST online_update or "zypper patch".
Alternatively you can run the command listed for your product:
-
SUSE CaaS Platform 4.0
To install this update, use the SUSE CaaS Platform 'skuba' tool. It will inform you if it detects new updates and let you then trigger updating of the complete cluster in a controlled way.
Package List:
-
SUSE CaaS Platform 4.0 (x86_64)
- cri-o-kubeadm-criconfig-1.16.1-3.28.2
- caasp-release-4.1.2-24.17.2
- terraform-provider-aws-2.29.0-1.3.2
- terraform-0.12.19-3.3.2
- patterns-caasp-Management-1.1-4.6.2
- etcdctl-3.3.15-4.9.2
- cri-o-1.16.1-3.28.2
- skuba-1.2.9-3.27.2
- terraform-provider-openstack-1.25.0-3.3.2
- terraform-provider-susepubliccloud-0.0.1-1.6.1
-
SUSE CaaS Platform 4.0 (noarch)
- skuba-update-1.2.9-3.27.2
References:
- https://bugzilla.suse.com/show_bug.cgi?id=1145003
- https://bugzilla.suse.com/show_bug.cgi?id=1157323
- https://bugzilla.suse.com/show_bug.cgi?id=1159082
- https://bugzilla.suse.com/show_bug.cgi?id=1160463
- https://bugzilla.suse.com/show_bug.cgi?id=1161056
- https://bugzilla.suse.com/show_bug.cgi?id=1161110
- https://bugzilla.suse.com/show_bug.cgi?id=1161179
- https://bugzilla.suse.com/show_bug.cgi?id=1161225
- https://bugzilla.suse.com/show_bug.cgi?id=1162093