Version specific upgrade instructions

Overview

Review the instructions provided on this page before you upgrade!

This page provides specific instructions and details of any required manual steps to upgrade to each supported version of SUSE Observability. Any significant change that may impact how SUSE Observability runs after upgrade will be described here, such as a change in memory requirements or configuration.

Read and apply all instructions from the version that you are currently running up to the version that you will upgrade to.

Upgrade instructions

2.13.0

Affinity and tolerations

All workloads now apply global.suseObservability.tolerations and global.suseObservability.affinity consistently, and a component setting overrides a global one. The new precedence rules are described in Configure Kubernetes affinities and tolerations. Review your values.yaml before you upgrade, because the following behavior changed:

  • Tolerations are no longer combined. stackstate.components.all.tolerations was appended to the tolerations of each component, and hbase.all.tolerations to those of each HBase component. If a component sets its own tolerations, that list now replaces the all list instead of being added to it. Repeat the shared tolerations that the component still needs, or move them to global.suseObservability.tolerations.

  • An empty list now clears tolerations. tolerations: [] was the default and had no effect. It now removes the tolerations that the component would inherit from stackstate.components.all, hbase.all or global.suseObservability.tolerations. If you created your values.yaml from helm show values, remove leftover tolerations: [] entries, including on subcharts such as kafka, clickhouse or zookeeper.

  • An empty elasticsearch.nodeAffinity: {} now removes the global node affinity from Elasticsearch. Earlier versions shipped it as the default, so values files created from helm show values often contain it. Remove the entry if the Elasticsearch pods must follow the global node affinity.

  • A partial affinity override keeps the other fields. For Kafka, ClickHouse, ZooKeeper, VictoriaMetrics, HBase and the other infrastructure components, a local affinity used to drop the global node affinity and the anti-affinity of the sizing profile. It now replaces only the fields it sets. With an HA profile, an override that sets only nodeAffinity gets the required pod anti-affinity back, and pods can stay Pending on clusters with fewer nodes than replicas. Set podAntiAffinity: {} on the component, for example kafka.affinity.podAntiAffinity: {}, to keep the previous behavior.

  • Elasticsearch anti-affinity follows the global mode. It was always hard. With an HA profile and global.suseObservability.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution set to false, it is now soft. Set elasticsearch.antiAffinity: hard to keep the previous behavior.

  • Global affinity applies without a sizing profile. Installations that do not use a sizing profile now also get global.suseObservability.affinity. If those workloads must not get it, remove global.suseObservability.affinity or override the field per component.

Before you upgrade, render your values with the current and the new chart version (helm template) and compare the tolerations and affinity of each workload.

2.12.0

Resource naming changes

Some resources now use fixed suse-observability-* names, including in installations using the default release name.

  • Argo CD: Enable pruning or sync with pruning. Obsolete PodDisruptionBudgets (PDBs) can block node drains, ServiceMonitors can duplicate scraping, and Deployments can keep running old versions. PruneLast=true does not enable pruning.

  • Monitoring namespaces: Put each installation’s renamed main-chart ServiceMonitors in a separate monitoring namespace to avoid name collisions.

  • External references: Update scripts and manifests referencing renamed resources, including the UI Service.

  • Interruptions: Plan for temporary UI, metrics ingestion and trace storage interruptions. With backups enabled, VictoriaMetrics and ClickHouse Pods may restart even if backup settings are unchanged. Restart active replication checks afterwards.

  • Interrupted upgrades: Confirm replacements exist before deleting obsolete resources owned by your installation. Preserve storage, credentials and referenced configuration.

Existing volumes and data are preserved; no storage migration is required.

Component connection settings

These overrides are ignored, including values reused from an earlier release:

Setting New behavior

kubernetes-rbac-agent.url, kubernetes-rbac-agent.clusterName

Use the local router and release name. global.url.fromSecret / global.clusterName.fromSecret still take precedence.

victoria-metrics-0.backup.overrideS3Endpoint, victoria-metrics-0.backup.awsSecrets (also under victoria-metrics-1), clickhouse.backup.s3.endpoint, clickhouse.backup.s3.secretName

Use platform backup storage and credentials configured through backup.storage.backend and global.s3proxy.credentials.

anomaly-detection.stackstate.instance

Use the local router.

Collector environment variables

opentelemetry-collector.extraEnvs can no longer override MY_POD_IP, K8S_NODE_NAME, API_URL or INTAKE_URL, or GOMEMLIMIT when generated by the chart.

2.11.2

  • Backup jobs now consistently apply scheduling, metadata, and security settings. A new backup.manualJobs.containerSecurityContext override is available. Before you upgrade, review:

    • Any overrides under backup.configuration.securityContext.

    • Any explicit empty values in your backup configuration.

    • The enforced backup/backup-v2 component labels.

    • The fixed resource limits of the settings-PVC initializer (10m CPU and 100Mi memory).

2.10.0

  • The Helm chart values.yaml has undergone a major refactoring to improve readability and maintainability, you must review the Helm chart migration guide for v2.10.0 and update your values.yaml accordingly.

  • Minio was replaced with S3Proxy, this affects the backup and restore process. If you are using the backup and restore feature (i.e. global.backup.enabled=true), please follow the instructions in the migration guide to migrate your backup and restore configuration to S3Proxy.

2.8.0

  • The installation process has been streamlined by deprecating the mandatory "extra values" generation step. Users are encouraged to follow the Migration Guide to update their existing configurations to the new global mode.

2.7.0

  • The backup.enabled Helm value has been replaced by global.backup.enabled. Using the old backup.enabled=true value will now cause the deployment to fail.