Upgrading to 0.7.x
This guide explains how to upgrade from 0.6.x to 0.7.x.
Before you begin
Before you begin the upgrade process, ensure that you have a backup of your data.
The upgrade process will not touch the actual backup data, but will change the resource definitions.
Checklist
Follow the steps in this checklist to upgrade to 0.7.x.
Pause backups
Pause all backups to prevent any changes to the backup data by setting the .spec.enabled
field to false
.
Replace [NAMESPACE]
with the namespace where the backups are located.
Pause existing operator
Pause the existing operator by setting the .spec.replicas
field to 0
.
Upgrade CRDs
Install the new Custom Resource Definitions (CRDs) for 0.7.x.:
Using kubectl
Using Helm
Remove .spec.storage
from backups and restores
Before making any of the below changes,
remove the .spec.storage
field from all backups and restores,
when working outside of Kubernetes.
This field was automatically set to the default storage class in previous versions by the operator, but has been removed in 0.7.x.
Migrate to Storages and EventHubs
In 0.7.x, support for the legacy Endpoint Secrets have been removed in favor of the new EventHub and Storage resources. Storage resources were already available in earlier versions, but are now required to be fully migrated to.
To get a list of all Endpoint Secrets in the cluster, run the following command:
For each Endpoint Secret, create a new EventHub or Storage with the same name, and copy the data from the Endpoint Secret to the new resource.
Migrate Volume Endpoints to Volume Storages
To migrate a Volume Endpoint, you must create a Volume Storage instead.
Example:
Migrate Kafka Endpoints to Kafka EventHubs
To migrate a Kafka Endpoint, you must create a Kafka EventHub.
For authentication, you must create new Credentials resources:
- For SASL authentication, create new SASL Credentials.
- For mTLS authentication, create new mTLS Credentials.
Example:
Update sources and sinks
If you created new Storage or EventHub resources with different names than the Endpoint Secrets,
make sure to update the names in the source
and sink
fields in the backups and restores.
Example:
Define credentials on backups and restores
If you created new Credentials resources for the new EventHub or Storage resources,
you must update the backups and restores to use the new credentials by updating the sourceCredentialsFrom
and sinkCredentialsFrom
fields accordingly.
Old restores do not require any changes, unless you want to re-run them.
Example for backups and restores with the new credentials for the Kafka EventHub:
Install application with updated Helm values
The new version of Kannika Armory no longer defines any default resource requirements by default in the Helm chart or application.
Next to this, the platform also no longer defines a default security context. Therefore, you must define these settings yourself in the Helm chart or application.
Note that these settings can also be defined on each Backup Pod or Restore Pod individually.
The new version also supports defining default Tolerations, default Affinity, and default NodeSelector.
Example Helm chart values:
Install the new version of Kannika Armory using Helm:
For more installation options, see Installation.
Enable backups again
Once you have completed the upgrade process,
enable backups again by setting the .spec.enabled
field to true
.
Replace [NAMESPACE]
with the namespace where the backups are located.
Verify the installation
Verify that the upgrade was successful by checking the logs of the Kannika Armory components:
Verify that the backups are running as expected:
If you encounter any issues during the upgrade process, do not hesitate to contact us on Slack.