Upgrades

Upgrades of Yorc that preserve already deployed applications are available starting with Yorc 3.1.0. It is safe to upgrade from Yorc 3.0.0 but upgrading from previous releases can lead to unpredictable results.

An upgrade leads to a service interruption. Currently the standard process is to stop all running instances of Yorc. Upgrade dependencies like Consul, Terraform, Ansible for instance, then upgrade Yorc itself and restart it. Yorc will automatically take care of upgrading its database schema by its own from version 3.0.0 up to its current version.

By default Yorc takes a snapshot of the Consul database before upgrading and automatically rollback to this snapshot if an error occurs during the upgrade process. If you are running Consul with ACL enabled the snapshot and restore feature requires to have the management ACL. It is possible to disable this feature by setting the YORC_DISABLE_CONSUL_SNAPSHOTS_ON_UPGRADE environment variable to 1 or true.

Note

A rolling upgrade without interruption feature is planned for future versions.

Upgrading to Yorc 4.3.0

Consul

Consul needs to be upgraded to version 1.11.3, run the following command to do it:

wget https://releases.hashicorp.com/consul/1.11.3/consul_1.11.3_linux_amd64.zip
sudo unzip consul_1.11.3_linux_amd64.zip -d /usr/local/bin

Then restart Consul.

The recommended way to upgrade Consul is to perform a rolling upgrade. See Consul documentation for details.

Upgrading to Yorc 4.1.0

Ansible

Upgrade Ansible to version 2.10.0:

sudo pip uninstall ansible
sudo pip install ansible==2.10.0
sudo pip install paramiko

Terraform OpenStack Provider

The Terraform OpenStack Provider needs to be upgraded at least to version 1.32.0.

# Assuming Terraform providers are stored at /var/terraform/plugins
wget https://releases.hashicorp.com/terraform-provider-openstack/1.9.0/terraform-provider-openstack_1.32.0_linux_amd64.zip
sudo rm /var/terraform/plugins/terraform-provider-openstack_*
sudo unzip terraform-provider-openstack_1.32.0_linux_amd64.zip -d /var/terraform/plugins
sudo chmod 775 /var/terraform/plugins/*

Upgrading to Yorc 3.2.0

Ansible

Although Yorc 3.2.0 can still work with Ansible 2.7.2, security vulnerabilities were identified in this Ansible version.

So, it is strongly advised to upgrade Ansible to version 2.7.9:

sudo pip install ansible==2.7.9

Upgrading to Yorc 3.1.0

Ansible

Ansible needs to be upgraded to version 2.7.2, run the following command to do it:

sudo pip install ansible==2.7.2

Terraform

Terraform needs to be upgraded to version 0.11.8. Moreover this version comes with a new packaging where providers are not shipped anymore in the main binary. So you also need to download them separately.

# Install the new Terraform version
wget https://releases.hashicorp.com/terraform/0.11.8/terraform_0.11.8_linux_amd64.zip
sudo unzip terraform_0.11.8_linux_amd64.zip -d /usr/local/bin

# Now install Terraform plugins
sudo mkdir -p /var/terraform/plugins

wget https://releases.hashicorp.com/terraform-provider-consul/2.1.0/terraform-provider-consul_2.1.0_linux_amd64.zip
sudo unzip terraform-provider-consul_2.1.0_linux_amd64.zip -d /var/terraform/plugins

wget https://releases.hashicorp.com/terraform-provider-null/1.0.0/terraform-provider-null_1.0.0_linux_amd64.zip
sudo unzip terraform-provider-null_1.0.0_linux_amd64.zip -d /var/terraform/plugins

wget https://releases.hashicorp.com/terraform-provider-aws/1.36.0/terraform-provider-aws_1.36.0_linux_amd64.zip
sudo unzip terraform-provider-aws_1.36.0_linux_amd64.zip -d /var/terraform/plugins

wget https://releases.hashicorp.com/terraform-provider-google/1.18.0/terraform-provider-google_1.18.0_linux_amd64.zip
sudo unzip terraform-provider-google_1.18.0_linux_amd64.zip -d /var/terraform/plugins

wget https://releases.hashicorp.com/terraform-provider-openstack/1.9.0/terraform-provider-openstack_1.9.0_linux_amd64.zip
sudo unzip terraform-provider-openstack_1.9.0_linux_amd64.zip -d /var/terraform/plugins

sudo chmod 775 /var/terraform/plugins/*

Consul

Consul needs to be upgraded to version 1.2.3, run the following command to do it:

wget https://releases.hashicorp.com/consul/1.2.3/consul_1.2.3_linux_amd64.zip
sudo unzip consul_1.2.3_linux_amd64.zip -d /usr/local/bin

Then restart Consul.

The recommended way to upgrade Consul is to perform a rolling upgrade. See Consul documentation for details.