Skip to content

Upgrading to 0.19.x

This guide explains how to upgrade from 0.18.x to 0.19.x.

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 might change the resource definitions.

There are no breaking changes in this release. All new configuration is additive.

Follow the steps in this checklist to upgrade to 0.19.x.

Enable maintenance mode for the duration of the upgrade.

values.yaml
global:
maintenance:
enabled: true
banner:
message: "Upgrade in progress, we will be back shortly."
variant: "info"

Install the new Custom Resource Definitions (CRDs) for 0.19.x:

Terminal window
$ kubectl apply -f https://docs.kannika.io/refs/0.19.0/crd/kannika-crd-v1alpha.yml
Terminal window
$ helm install kannika-crd oci://quay.io/kannika/charts/kannika-crd \
--version 0.19.0

Install application with updated Helm values

Section titled “Install application with updated Helm values”

This release adds an optional terminationGracePeriodSeconds Helm value under operator.config.pod and under the pod of each pod type. No action is required. Restore, SchemaRegistryBackup, and SchemaRegistryRestore pods now get 60 seconds to shut down gracefully by default instead of 30 seconds.

For example, to give every pod 120 seconds and restore pods 300 seconds:

values.yaml
operator:
config:
pod:
terminationGracePeriodSeconds: 120
restore:
pod:
terminationGracePeriodSeconds: 300

Install the new version of Kannika Armory using Helm:

Terminal window
$ helm upgrade --install kannika oci://quay.io/kannika/charts/kannika \
--create-namespace \
--namespace kannika-system \
--version 0.19.0 \
--values values.yaml

Once you have completed the upgrade process, disable maintenance mode by setting global.maintenance.enabled to false.

values.yaml
global:
maintenance:
enabled: false

Verify that the upgrade was successful by checking the logs of the Kannika Armory components:

Terminal window
$ kubectl logs -n kannika-system -l app.kubernetes.io/name=kannika-operator # or operator
$ kubectl logs -n kannika-system -l app.kubernetes.io/name=kannika-api # or api
$ kubectl logs -n kannika-system -l app.kubernetes.io/name=kannika-console # or console

Verify that the backups are running as expected:

Terminal window
$ kubectl get backups -n [NAMESPACE]
$ kubectl get schemaregistrybackups -n [NAMESPACE]

Check that no backup or restore reports ConfigurationValid: False:

Terminal window
$ kubectl get backups,restores -A -o json \
| jq -r '.items[] | select(.status.conditions[]? | .type == "ConfigurationValid" and .status == "False") | "\(.kind) \(.metadata.namespace)/\(.metadata.name)"'

If you encounter any issues during the upgrade process, do not hesitate to contact us on Slack.