Upgrading Calico for OpenStack
Important: You will be unable to issue API requests to your OpenStack system during the procedure. Please plan your upgrade window accordingly, and see the Service Impact section for more details.
During the upgrade, all VMs will continue to function normally: there should be no impact on the data plane. However, control plane traffic may fail at different points throughout the upgrade.
Generally, users should be prevented from creating or updating virtual machines during this procedure, as these actions will fail. VM deletion may succeed, but will likely be delayed until the end of the upgrade.
For this reason, we highly recommend planning a maintenance window for the upgrade. During this window, you should disable all user API access to your OpenStack deployment.
Upgrade from an earlier Calico v3 release
The datastore is compatible, so you only need to upgrade your Calico packages, first on each compute node, then on the controllers.
Upgrade from Calico v2
Then please take the following steps, which include converting all Calico datastore data from the etcdv2 API and format to etcdv3.
Set up an etcdv3 cluster, if you don’t already have etcdv3 capability, either by upgrading the etcd software of your existing etcdv2 cluster, or by installing an etcdv3 cluster on new servers.
Tip: etcd v3.x still supports the etcdv2 API, as used by Calico v2.6.x. However, Calico v3.0.0+ does not support the etcdv2 API. The upgrade steps below move the data from the etcdv2 API to the etcdv3 API. This requires an etcd v3.x server.
If you have added Calico objects in addition to those that are derived automatically (by our Neutron driver) from OpenStack networks/security groups (e.g., Host Endpoints, Host Protection policies, etc) you will need to follow these additional steps to migrate that data:
Upgrade Calico packages, first on each compute node, then on the controllers.
Delete old data from etcd.
Finally, if you have any Calico resource manifests stored offline (e.g., files checked into code management systems), you should update them to the new API using the conversion tool: Convert any offline Calico data from v1 to v3