Skip to main content
Version: v1.3.0-rc.2 (pre-release)

Upgrading from v1.2 to v1.3

Follow the standard upgrade process: apply each plane's updated CRDs, then helm upgrade the control, data, workflow, and observability planes in order.

Service account entitlement claim defaults to client_id

v1.3 ships ThunderID 1.0.1 as the bundled identity provider in place of Thunder 0.28.0. Its client-credentials tokens carry the client identifier in client_id instead of sub, so these chart defaults change from sub to client_id:

ChartValue
openchoreo-control-planeopenchoreoApi.config.security.subjects.service_account.mechanisms.jwt.entitlement.claim
openchoreo-control-planeentitlement.claim of the service account entries in openchoreoApi.config.security.authorization.bootstrap.mappings
openchoreo-observability-planeentitlement.claim of the service_account entry in observer.security.subjectTypes

If you rely on the chart defaults, your service accounts are matched on sub today and will be matched on client_id after the upgrade, so their role bindings stop matching. Copy these values into your own values files, keeping them on sub, before upgrading. Values you already set yourself are unaffected.

Control plane values:

openchoreoApi:
config:
security:
subjects:
service_account:
mechanisms:
jwt:
entitlement:
claim: "sub"
authorization:
bootstrap:
mappings:
# The full list of mappings, with service account entries on
# claim: sub

bootstrap.mappings is a list, so your values must contain every mapping you want to keep. If you have not overridden it, start from the v1.2 defaults:

helm show values oci://ghcr.io/openchoreo/helm-charts/openchoreo-control-plane \
--version <v1.2-version> | yq '.openchoreoApi.config.security.authorization.bootstrap.mappings'

Observability plane values:

observer:
security:
subjectTypes:
- type: "user"
display_name: "User"
priority: 1
auth_mechanisms:
- type: "jwt"
entitlement:
claim: "groups"
display_name: "User Group"
- type: "service_account"
display_name: "Service Account"
priority: 2
auth_mechanisms:
- type: "jwt"
entitlement:
claim: "sub"
display_name: "Client ID"

Community module versions

If you use the default logs, metrics, traces, and events modules at the versions from the OpenChoreo v1.2 documentation, upgrade them to the versions compatible with v1.3 as well.

  • Observability Logs OpenSearch module: v0.5.3 -> v0.6.0
helm upgrade --install observability-logs-opensearch \
oci://ghcr.io/openchoreo/helm-charts/observability-logs-opensearch \
--create-namespace \
--namespace openchoreo-observability-plane \
--version 0.6.0 \
--reset-then-reuse-values \
--set openSearchSetup.openSearchSecretName="opensearch-admin-credentials" \
--set adapter.openSearchSecretName="opensearch-admin-credentials" \
--set fluentBitCustomizations.clusterInstance=openchoreo

v0.6.0 requires fluentBitCustomizations.clusterInstance when log collection (fluent-bit.enabled) is on, and the upgrade fails without it. It names the cluster on every collected log record. Use a value that is unique among the clusters reporting to this observability plane.

  • Observability Metrics Prometheus module: v0.6.x -> v0.7.1
helm upgrade --install observability-metrics-prometheus \
oci://ghcr.io/openchoreo/helm-charts/observability-metrics-prometheus \
--create-namespace \
--namespace openchoreo-observability-plane \
--version 0.7.1 \
--reset-then-reuse-values
  • Observability Events OTEL Collector module: v0.1.1 -> v0.1.2
helm upgrade observability-events-otel-collector \
oci://ghcr.io/openchoreo/helm-charts/observability-events-otel-collector \
--namespace openchoreo-observability-plane \
--version 0.1.2 \
--reset-then-reuse-values

--reset-then-reuse-values carries forward the OpenSearch exporter values you supplied when installing the module, so you do not need to pass them again.

  • Observability Traces OpenSearch module: v0.6.0 is still the compatible version, so no upgrade is needed.