Files
otel-demo/chart/UPGRADING.md
Scaffolder 92edf90fd9
Some checks failed
CI Pipeline / Build and Test (push) Successful in 4s
Security Scanning / Trivy — Filesystem & Dependency Scan (push) Failing after 7s
Security Scanning / Gitleaks — Secret Scan (push) Failing after 7s
Security Scanning / Security Summary (push) Failing after 3s
Build and Publish TechDocs / build-and-publish (push) Successful in 1m2s
initial commit
Change-Id: I8e318861a258686ddc53dda08858f74c573a6520
2026-04-02 13:07:28 +00:00

156 lines
6.1 KiB
Markdown

# Upgrade guidelines
> [!NOTE]
> The OpenTelemetry Demo does not support being upgraded from one version to
> another. If you need to upgrade the chart, you must first delete the existing
> release and then install the new version.
## To 0.40.4
The `transform` processor now uses the `set_semconv_span_name()` function to
reduce span metrics cardinality explosion caused by high-cardinality span names.
See the [processor documentation](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/transformprocessor#set_semconv_span_name)
and [troubleshooting guide](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/connector/spanmetricsconnector/README.md#troubleshooting-span-metrics-high-cardinality)
for details.
## To 0.40
The product catalog has been moved to use a Postgres database. Custom products
(and product reviews) can be specified with your own init-db.sql script
contained in a custom ConfigMap, and referenced for the Postgres component.
The Jaeger sub-chart was upgraded to 4.3, which included several breaking
changes to prior configurations.
Support for `podLabels` has been added to all components.
## To 0.39
Support for IPv6 environments was introduced to the demo.
## To 0.38
A new postgresql container was introduced to the demo.
## To 0.36
The Demo 2.0 release removed the `service` suffix from many components names,
and renamed some components based on a naming standard defined in
the [#1788](https://github.com/open-telemetry/opentelemetry-demo/issues/1788)
issue in the OpenTelemetry Demo repository. Any custom configuration for a Demo
component that was renamed will need to be updated to use the new name. The
following table shows the old and new names for each component:
| Old Name | New Name |
| ---------------------- | --------------- |
| accountingservice | accounting |
| adservice | ad |
| cartservice | cart |
| checkoutservice | checkout |
| currencyservice | currency |
| emailservice | email |
| flagd | flagd |
| flagd-ui | flagd-ui |
| frauddetectionservice | fraud-detection |
| frontend | frontend |
| frontendproxy | frontend-proxy |
| frontend-web | frontend-web |
| grafana | grafana |
| imageprovider | image-provider |
| jaeger | jaeger |
| kafka | kafka |
| loadgenerator | load-generator |
| opensearch | opensearch |
| otelcollector | otel-collector |
| paymentservice | payment |
| productcatalogservice | product-catalog |
| prometheus | prometheus |
| quotesservice | quote |
| recommendationsservice | recommendation |
| shippingservice | shipping |
| valkey-cart | valkey-cart |
## To 0.35
The Helm chart release name prefix has been removed from all resources. If you
have any custom configuration that depend on the release name, you will need to
update it accordingly.
## To 0.33
The Helm prerequisite version has been updated to Helm 3.14+. Please upgrade your
Helm client to the latest version.
## To 0.28
The `configuration` property for components has been removed in favor of the new `mountedConfigMaps` property.
This new property allows you to specify the contents of the configuration using the `data` sub-property. You will also
need to specify the `mountPath` to use, and give the configuration a name. The old `configuration` property used
`/etc/config` and `config` as values for these respectively. The following example shows how to migrate from the old
`configuration` property to the new `mountedConfigMaps` property:
```yaml
# Old configuration property
configuration:
my-config.yaml: |
# Contents of my-config.yaml
# New mountedConfigMaps property
mountedConfigMaps:
- name: config
mountPath: /etc/config
data:
my-config.yaml: |
# Contents of my-config.yaml
```
## To 0.24
This release uses the [kubernetes attributes processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/k8sattributesprocessor)
to add kubernetes metadata as resource attributes. If you override the processors array in your config, you will
need to add the k8s attributes processor manually to restore `service.instance.id`
resource attribute.
## To 0.23
The Prometheus sub-chart dependency made updates to pod labels. You may need to
use the `--force` option with your Helm upgrade command, or delete the release
and re-install it.
## To 0.22
This release moves to using the `connectors` functionality in the OpenTelemetry
Collector. The `spanmetrics` processor has been moved to use `connectors`
which results in an additional required exporter in the `traces` pipeline.
Existing releases that override `exporters` in the `traces` pipeline, will
need to add `spanmetrics` to the list of exporters before upgrading. The
OpenTelemetry Collector will fail to start otherwise.
## To 0.21
The deployment labelSelector `app.kubernetes.io/name` has been renamed to
individual workload naming. If you upgrade it from charts <= 0.20, you
will have to delete all existing opentelemetry-demo deployments before running
`helm upgrade` command.
## To 0.20
The `observability.<sub chart>.enabled` parameters have been moved to an
`enabled` parameter within the sub chart itself. If you had changes to these
parameters, you will need to update your changes to work with the new structure.
## To 0.18
The `serviceType` and `servicePort` parameters have been moved under a `service`
parameter with names of `type` and `port` respectively. If you had changes to
these parameters for any demo component, you will need to update your changes
to work with the new structure for the `service` parameter.
## To 0.13
Jaeger was moved to a Helm sub-chart instead of a local chart deployment. If you
had changes specified to the `observability.jaeger` parameter, those changes
will need to be re-implemented as sub-chart parameters under the top level
`jaeger` parameter instead.