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.
  1. An Axual Platform upgrade is announced, either Releases of Axual Platform or bugfixes with related Helm changes.

  2. 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.

  3. First, establish a baseline and verify component functionality. Check for ERROR or WARN 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.

  4. Check there are no pending changes in Argo CD and that everything is In Sync

  5. 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
  6. If configuration changes are required, add these changes to the values.yaml as instructed. For example "Add exampleConfig: true to the Rest Proxy config"

    axual-streaming:
      rest-proxy:
        config:
          exampleConfig: true  # add this line
  7. Once all modifications to Chart.yaml and values.yaml are done, do a git commit and push to a remote branch.

  8. (Optional) Do a merge request if set up this way.

  9. 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.

  10. 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

  11. After the Sync phase is completed, some verifications need to be done:

    1. Verify running Pods have the expected image versions

    2. All Pods that have restarted should be checked for ERROR logging

    3. Dashboards showing message throughput graphs (Kafka, Rest-Proxy, etc.) have returned to throughput rates before the change

    4. Quickly verify components that have been upgraded and/or reconfigured, check if the features or bugfixes are applied

  12. That is all; with the proper preparations, there should be no interruptions in service.