Upgrading Axual
This is a landing page for upgrading the Axual Platform.
An example upgrading workflow is described here based on a GitOps workflow, child pages provide detailed step-by-step upgrade guides.
General upgrade steps
Always try out a change first by making a change on a "Test" cluster that does not run business data before moving to a "Production" cluster where possible mistakes can have a business impact. When making a Production change later, please announce the change window and potential impact to the end users! Little to no service interruptions are expected thanks to the platform’s resilience, but even a typo may cause trouble. |
-
An Axual Platform upgrade is announced, either Releases of Axual Platform or bugfixes with related Helm changes.
-
Read up on the changes and the upgrade steps in child pages of this page. If there is any uncertainty on steps and changes, please contact us.
-
First, establish a baseline and verify component functionality. Check for
ERROR
orWARN
logs, repeated restarts of Pods or Pods that are not in a Running state. Everything needs to be nominal before making a change.
Test functionality in the UI before the upgrade. -
Check there are no pending changes in Argo CD and that everything is
In Sync
-
Change the
Chart.yaml
to use the recommended new version of the Streaming Helm chart. For example:dependencies: - name: "axual-streaming" version: "0.3.0" # becomes 0.3.2
-
If configuration changes are required, add these changes to the
values.yaml
as instructed. For example "AddexampleConfig: true
to the Rest Proxy config"axual-streaming: rest-proxy: config: exampleConfig: true # add this line
-
Once all modifications to
Chart.yaml
andvalues.yaml
are done, do agit commit
andpush
to a remote branch. -
(Optional) Do a merge request if set up this way.
-
Go to the
axual-streaming
project in Argo CD, hit Refresh and then Diff. In the Diff view, on one side the actual state is shown and on the other side the change details that are pending after the upgrade steps.
Take your time to understand every change; this is a great opportunity to spot missed typos. -
When the Diff view is correct, open a view to the Kubernetes Pods (
kubectl get pods -w
for example) before hitting Sync in Argo CD. You should see new Pods come online and old Pods be terminated once new Pods are in a READY state. This may take a while, if Pods do not reach a READY state in about 5 minutes, it is unfortunately time for some Troubleshooting -
After the Sync phase is completed, some verifications need to be done:
-
Verify running Pods have the expected image versions
-
All Pods that have restarted should be checked for
ERROR
logging -
Dashboards showing message throughput graphs (Kafka, Rest-Proxy, etc.) have returned to throughput rates before the change
-
Quickly verify components that have been upgraded and/or reconfigured, check if the features or bugfixes are applied
-
-
That is all; with the proper preparations, there should be no interruptions in service.