Perses Helm Chart Upgrade Guide#
Overview#
This guide provides instructions for upgrading Perses Helm chart releases, particularly when dealing with breaking changes between versions.
We try as much as possible to avoid breaking changes, but sometimes it's necessary to introduce them. If you are upgrading from a version to another that contains breaking changes, you will need to follow the version-specific steps outlined below.
Upgrade Types#
Patch Upgrades#
For patch version upgrades (e.g., 0.8.0 → 0.8.1), you can typically perform a standard Helm upgrade without special considerations:
Major/Minor Upgrades with Breaking Changes#
For upgrades that introduce breaking changes, follow the version-specific migration guides below.
Breaking Changes by Version#
Upgrading to 0.20.0#
This version targets Perses v0.53.0 and includes breaking changes for SQL TLS configuration.
SQL TLS Configuration Field Changes#
Perses v0.53.0 only supports camelCase keys in config.database.sql.tls_config.
Legacy snake_case keys now fail during Helm template rendering.
Migration mapping:
ca_file->caFilecert_file->certFilekey_file->keyFileserver_name->serverNameinsecure_skip_verify->insecureSkipVerifymin_version->minVersion(values:TLS10,TLS11,TLS12,TLS13)max_version->maxVersion(values:TLS10,TLS11,TLS12,TLS13)
Before:
config:
database:
sql:
tls_config:
ca_file: /etc/perses/tls/ca.crt
cert_file: /etc/perses/tls/tls.crt
key_file: /etc/perses/tls/tls.key
server_name: mysql.internal
insecure_skip_verify: false
min_version: TLS12
max_version: TLS13
After:
config:
database:
sql:
tls_config:
caFile: /etc/perses/tls/ca.crt
certFile: /etc/perses/tls/tls.crt
keyFile: /etc/perses/tls/tls.key
serverName: mysql.internal
insecureSkipVerify: false
minVersion: TLS12
maxVersion: TLS13
Container User Change in Perses v0.53.0#
Perses switched its container default user from nobody to nonroot.
If you use file-based DB storage or existing PVC data, make sure mounted directories are writable by the effective runtime user/group.
The chart defaults include persistence.securityContext.fsGroup=2000, but custom security contexts or pre-existing volume permissions may still require manual adjustment.
Upgrading to 0.19.0#
This version introduces a breaking change to the sidecar image configuration.
Configuration Field Changes#
- The sidecar now uses its own registry field:
sidecar.image.registry. Previously, the sidecar image always inheritedimage.registry.
Before (sidecar registry implicitly inherited from image.registry):
image:
registry: custom.registry.local
name: "persesdev/perses"
sidecar:
enabled: true
image:
repository: kiwigrid/k8s-sidecar
tag: 2.1.2
After (set sidecar.image.registry explicitly to keep the same registry):
image:
registry: custom.registry.local
name: "persesdev/perses"
sidecar:
enabled: true
image:
registry: custom.registry.local
repository: kiwigrid/k8s-sidecar
tag: 2.1.2
If you rely on image.registry to point the sidecar to a custom registry, add sidecar.image.registry with the same value during upgrade.
Upgrading to 0.18.0#
This version introduces breaking changes to the image section. A field has been added.
Configuration Field Changes#
- Added
image.registryto support CRI-O 1.34
Before:
After:
Upgrading to 0.8.0#
This version introduces breaking changes to the config section. Some fields have been renamed and reorganized.
Configuration Field Changes#
Update security Fields:
- Change
readOnlytoreadonly - Change
enableAuthtoenable_auth
Before:
After:
Move important_dashboards to frontend section:
Before:
After:
Additional Changes#
- SQL field is not defined by default anymore
- File system storage is now the default storage mode
Migration Steps#
- Backup your current values:
-
Update your values file according to the field changes above
-
Test the upgrade in a non-production environment first
-
Perform the upgrade:
- Verify the deployment is working correctly after upgrade
General Upgrade Best Practices#
- Always backup your current Helm values and any persistent data before upgrading
- Review the changelog for the target version to understand all changes
- Test upgrades in a development or staging environment first
- Monitor the application after upgrade to ensure everything is functioning correctly
- Have a rollback plan ready in case issues arise
Rollback Procedure#
If you encounter issues after upgrading, you can rollback to the previous version: