Upgrading Calico
Calico package update
This part of the upgrade procedure varies slightly according to which operating system you are using.
Important: Do not use older versions of
calicoctl
after the upgrade. This may result in unexpected behavior and data.
Upgrading an OpenStack cluster based on CentOS
-
On all nodes, change the location of the Calico packages to point to the 3.x repo:
sudo sed -i 's/calico-2.6/calico-3.1/g' /etc/yum.repos.d/calico.repo
- On all compute nodes, update packages:
sudo yum update
We recommend upgrading the whole distribution as shown here. In case you prefer to upgrade particular packages only, those needed for a Calico compute node are the following.
calico-common calico-compute calico-dhcp-agent calico-felix dnsmasq networking-calico openstack-neutron openstack-nova-api openstack-nova-compute
- Use the following command on the compute nodes to confirm that Felix has upgraded to v3.1.x.
calico-felix --version
It should return
v3.1.x
. - On all compute nodes, add the following line to the end of
/etc/calico/felix.cfg
:DatastoreType = etcdv3
If you need to change the EtcdEndpoints address (e.g. because you’ve installed a new etcdv3 cluster rather than upgrading your existing etcdv2 cluster), you should update the EtcdEndpoints addresses in
/etcd/calico/felix.cfg
at this point. - On all control nodes, update packages:
sudo yum update
We recommend upgrading the whole distribution as shown here. In case you prefer to upgrade particular packages only, those needed for a Calico control node are the following.
calico-common calico-control networking-calico openstack-neutron
- On all control nodes, restart
neutron-server
:sudo systemctl restart neutron-server
- If you ran
calico-upgrade
earlier to migrate non-openstack data, on the control node run:calico-upgrade complete
-
Remove any existing
calicoctl
instances and install the newcalicoctl
. -
Congratulations! You have upgraded to Calico v3.2.
Note: If an error occurs during the upgrade, refer to Downgrading Calico.
Upgrading an OpenStack cluster based on Ubuntu
-
On all nodes, change the location of the Calico packages to point to the 3.x repo:
sudo bash -c 'cat > /etc/apt/sources.list.d/project-calico-calico-3_1-trusty.list' << EOF deb http://ppa.launchpad.net/project-calico/calico-3.1/ubuntu trusty main # deb-src http://ppa.launchpad.net/project-calico/calico-3.1/ubuntu trusty main EOF
- On all compute nodes, update packages:
sudo apt-get update sudo apt-get install calico-compute calico-felix calico-common \ python-etcd networking-calico calico-dhcp-agent
- Use the following command on the compute nodes to confirm that Felix has upgraded to v3.1.x.
calico-felix --version
It should return
v3.1.x
. - On all compute nodes, add the following line to the end of
/etc/calico/felix.cfg
:DatastoreType = etcdv3
If you need to change the EtcdEndpoints address (e.g. because you’ve installed a new etcdv3 cluster rather than upgrading your existing etcdv2 cluster), you should update the EtcdEndpoints addresses in
/etcd/calico/felix.cfg
at this point. - On all control nodes, update packages:
sudo apt-get update sudo apt-get install calico-control calico-common python-etcd networking-calico
- On all control nodes, restart
neutron-server
:sudo service neutron-server restart
- If you ran
calico-upgrade
earlier to migrate non-openstack data, on the control node run:calico-upgrade complete
-
Remove any existing
calicoctl
instances and install the newcalicoctl
. -
Congratulations! You have upgraded to Calico v3.2.
Note: If an error occurs during the upgrade, refer to Downgrading Calico.