Docs » Get started with the Splunk Distribution of the OpenTelemetry Collector » Get started with the Collector for Kubernetes » Upgrade the Collector for Kubernetes and other updates

Upgrade the Collector for Kubernetes and other updates 🔗

The installer script uses one of the supported package managers to install the Collector, for example apt or yum.

When you update the Collector using the official packages, configuration files are never overridden. If you need to update the configuration after an update, edit them manually before backward compatibility is dropped.

General guidelines 🔗

Apply the following changes to the Collector configuration files for specific version upgrades.

From 0.96.1 to 0.97.0 🔗

memory_ballast is no longer effective. You can now control garbage collection with a soft memory limit using the SPLUNK_MEMORY_TOTAL_MIB env var, which is set to 90% of the total memory by default. For more information, see Environment variables.

Follow these steps to ensure your Collector instances work correctly:

  • If you haven’t customized memory_ballast, remove it from the configuration.

  • If you have customized memory_ballast using SPLUNK_BALLAST_SIZE_MIB (or extensions::memory_ballast::size_mib config), remove the memory_ballast extension and use the GOMEMLIMIT environment variable to set a custom soft memory limit:

    • To increase frequency of garbage collection set GOMEMLIMIT to a higher value than the default 90% of total memory.

    • To decrease frequency of garbage collection set GOMEMLIMIT to a lower value than the default 90% of total memory.

    • For more information, see Go environment variables .

From 0.68.0 to 0.69.0 🔗

The gke and gce resource detectors in the resourcedetection processor have been replaced with the gcp resource detector. If you have gke and gce detectors configured in the resourcedetection processor, update your configuration accordingly.

For more information, see Resource detection processor.

From 0.41.0 to 0.42.0 🔗

The Splunk Distribution of the OpenTelemetry Collector used to evaluate user configuration twice and this required escaping of each $ symbol with $$ to prevent unwanted environment variable expansion. The issue was fixed in the 0.42.0 version. Any occurrences of $$ in your configuration need to be replaced with $.

From 0.35.0 to 0.36.0 🔗

Move the config parameter exporters -> otlp -> insecure to exporters -> otlp -> tls -> insecure.

The otlp exporter configuration must look like this:

exporters:
  otlp:
    endpoint: "${SPLUNK_GATEWAY_URL}:4317"
    tls:
      insecure: true

From 0.34.0 to 0.35.0 🔗

Move the ballast_size_mib parameter from the memory_limiter processor to the memory_ballast extension, and rename it to size_mib.

extensions:
  memory_ballast:
    size_mib: ${SPLUNK_BALLAST_SIZE_MIB}

Upgrade the Collector for Kubernetes 🔗

To upgrade the Collector for Kubernetes run the following commands:

  • Use the flag --reuse-values to keep the config values you’d already set while installing or using the Collector:

helm upgrade splunk-otel-collector splunk-otel-collector-chart/splunk-otel-collector
--reuse-values
  • Use --values config.yaml to override your previous configuration while upgrading:

helm upgrade splunk-otel-collector --values config.yaml splunk-otel-collector-chart/splunk-otel-collector --reuse-values

Read more in the official Helm upgrade options documentation at https://helm.sh/docs/helm/helm_upgrade/#options .

Update the access token for the Collector for Kubernetes 🔗

Note

Make sure you don’t update your Helm chart or Collector version in the process of updating your access token. See Step 3 for details.

To update the access token for your Collector for Kubernetes instance follow these steps:

  1. Confirm the Helm release name and chart version. To do so, run:

helm list -f <Release_Name>
  1. Optionally, you can check your current access token:

helm get values <Release_Name>
  1. Deploy your new access token with Helm upgrade. This command will only update your access token, but will mantain your current Helm chart and Collector versions.

helm upgrade --reuse-values --version <Current_Chart_Version> --set splunkObservability.accessToken=<New_Access_Token> <Release_Name> splunk-otel-collector-chart/splunk-otel-collector

If you want to use the latest Helm version instead of your current one, remove '--version <Current_Chart_Version>' from the command.

  1. Verify the value of the updated access token:

helm get values <Release_Name>
  1. Restart the Collector’s daemonset and deployments:

  • If agent.enabled=true, restart the Collector’s agent daemonset:

kubectl rollout restart daemonset <Release_Name>-agent
  • If clusterReceiver.enabled=true, restart the Collector’s cluster receiver deployment:

kubectl rollout restart deployment <Release_Name>-k8s-cluster-receiver
  • If gateway.enabled=true, restart the Collector’s gateway deployment:

kubectl rollout restart deployment <Release_Name>
  1. Verify the status of your clusters’ pods:

kubectl get pod -n <Namespace> | grep <Release_Name>