Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Operator: Migrate .Values.operator.instrumentation.spec to .Values.instrumentation #1436

Merged
merged 5 commits into from
Sep 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .chloggen/operator-instrumentation-update.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: breaking
# The name of the component, or a single word describing the area of concern, (e.g. agent, clusterReceiver, gateway, operator, chart, other)
component: operator
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Operator Helm values previously under `.Values.operator.instrumentation.spec.*` have been moved to `.Values.instrumentation.*`
# One or more tracking issues related to the change
issues: [1436]
# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext: If you use custom values under `.Values.operator.instrumentation.spec.*` please review the [upgrade guidelines](https://github.com/signalfx/splunk-otel-collector-chart/blob/main/UPGRADING.md#01055-01080)
6 changes: 3 additions & 3 deletions .github/workflows/update_docker_images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,16 @@ jobs:
- name: 'java'
component: 'operator'
yaml_file_path: 'helm-charts/splunk-otel-collector/values.yaml'
yaml_value_path: '.operator.instrumentation.spec.java'
yaml_value_path: '.instrumentation.java'
filter: 'v2.'
- name: 'nodejs'
component: 'operator'
yaml_file_path: 'helm-charts/splunk-otel-collector/values.yaml'
yaml_value_path: '.operator.instrumentation.spec.nodejs'
yaml_value_path: '.instrumentation.nodejs'
- name: 'dotnet'
component: 'operator'
yaml_file_path: 'helm-charts/splunk-otel-collector/values.yaml'
yaml_value_path: '.operator.instrumentation.spec.dotnet'
yaml_value_path: '.instrumentation.dotnet'
- name: 'fluentd-hec'
component: 'agent'
yaml_file_path: 'helm-charts/splunk-otel-collector/values.yaml'
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ pre-commit: render ## Test the Helm chart with pre-commit
.PHONY: unittest
unittest: ## Run unittests on the Helm chart
@echo "Running unit tests on helm chart..."
cd helm-charts/splunk-otel-collector && helm unittest --strict -f ../../test/unittests/*.yaml . || exit 1
cd helm-charts/splunk-otel-collector && helm unittest --strict -f "../../test/unittests/*.yaml" . || exit 1

##@ Changelog
# Tasks related to changelog management
Expand Down
32 changes: 32 additions & 0 deletions UPGRADING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,37 @@
# Upgrade guidelines

## 0.105.5 to 0.108.0

We've simplified the Helm chart configuration for `operator` auto-instrumentation.
The values previously under `.Values.operator.instrumentation.spec.*` have been moved to `.Values.instrumentation.*`.

- **No Action Needed**: If you have no customizations under `.Values.operator.instrumentation.spec.*`, no migration is required.
- **Action Required**: Continuing to use the old values path will result in a Helm install or upgrade error, blocking the process.

Migration Steps:

1. **Find** any references to `.Values.operator.instrumentation.spec.*` in your Helm values with custom values.
2. **Migrate** them from `.Values.operator.instrumentation.spec.*` to `.Values.instrumentation.*`.

Example Migration:

Before (Deprecated Path):

```yaml
operator:
instrumentation:
spec:
endpoint: XXX
...
```

After (Updated Path):
```yaml
instrumentation:
endpoint: XXX
...
```

## 0.105.3 to 0.105.4

The `Java instrumentation` for Operator auto-instrumentation has been upgraded from v1.32.2 to v2.7.0.
Expand Down
24 changes: 12 additions & 12 deletions helm-charts/splunk-otel-collector/templates/operator/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ Helper to ensure the correct usage of the Splunk OpenTelemetry Collector Operato

{{- /* Check if the endpoint is overridden in the Helm values */ -}}
{{- $endpointOverridden := and
.Values.operator.instrumentation.spec
.Values.operator.instrumentation.spec.exporter
.Values.operator.instrumentation.spec.exporter.endpoint
(ne .Values.operator.instrumentation.spec.exporter.endpoint "")
.Values.instrumentation
.Values.instrumentation.exporter
.Values.instrumentation.exporter.endpoint
(ne .Values.instrumentation.exporter.endpoint "")
-}}

{{- /* Validate the configuration */ -}}
Expand All @@ -40,12 +40,12 @@ Helper to define an endpoint for exporting telemetry data related to auto-instru

{{- /* Use the user-defined endpoint if specified in the Helm values */ -}}
{{- if and
.Values.operator.instrumentation.spec
.Values.operator.instrumentation.spec.exporter
.Values.operator.instrumentation.spec.exporter.endpoint
(ne .Values.operator.instrumentation.spec.exporter.endpoint "")
.Values.instrumentation
.Values.instrumentation.exporter
.Values.instrumentation.exporter.endpoint
(ne .Values.instrumentation.exporter.endpoint "")
}}
{{- $endpoint = .Values.operator.instrumentation.spec.exporter.endpoint -}}
{{- $endpoint = .Values.instrumentation.exporter.endpoint -}}
{{- /* Use the agent service endpoint if the agent is enabled */ -}}
{{- else if .Values.agent.service.enabled -}}
{{- $endpoint = printf "http://%s-agent.%s.svc.cluster.local:4317" (include "splunk-otel-collector.fullname" .) .Release.Namespace -}}
Expand All @@ -57,7 +57,7 @@ Helper to define an endpoint for exporting telemetry data related to auto-instru
{{- $endpoint = printf "http://%s:4317" (include "splunk-otel-collector.fullname" .) -}}
{{- /* Fail if no valid endpoint is available */ -}}
{{- else -}}
{{- fail "When operator.enabled=true, (splunkPlatform.tracesEnabled=true or splunkObservability.tracesEnabled=true), either agent.enabled=true, gateway.enabled=true, or .Values.operator.instrumentation.spec.exporter.endpoint must be set" -}}
{{- fail "When operator.enabled=true, (splunkPlatform.tracesEnabled=true or splunkObservability.tracesEnabled=true), either agent.enabled=true, gateway.enabled=true, or .Values.instrumentation.exporter.endpoint must be set" -}}
{{- end -}}

{{- /* Return the determined endpoint */ -}}
Expand All @@ -81,8 +81,8 @@ Helper to define entries for instrumentation libraries.
{{- $instLibAliases := dict "apache-httpd" "apacheHttpd" -}}

{{- /* Iterate over each specified instrumentation library */ -}}
{{- if .Values.operator.instrumentation.spec -}}
{{- range $key, $value := .Values.operator.instrumentation.spec -}}
{{- if .Values.instrumentation -}}
{{- range $key, $value := .Values.instrumentation -}}
{{- /* Check for required fields to determine if it is an instrumentation library */ -}}
{{- if and (eq (kindOf $value) "map") $value.repository $value.tag -}}
{{- $instLibName := get $instLibAliases $key | default $key -}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,17 @@ spec:
- tracecontext
- baggage
- b3
{{- with .Values.operator.instrumentation.spec.sampler }}
{{- with .Values.instrumentation.sampler }}
sampler:
{{- toYaml . | nindent 4 }}
{{- end }}
env:
{{- if .Values.splunkObservability.profilingEnabled }}
{{- if eq (include "splunk-otel-collector.operator.env-has" (dict "env" .Values.operator.instrumentation.spec.env "envName" "SPLUNK_PROFILER_ENABLED")) "false" }}
{{- if eq (include "splunk-otel-collector.operator.env-has" (dict "env" .Values.instrumentation.env "envName" "SPLUNK_PROFILER_ENABLED")) "false" }}
- name: SPLUNK_PROFILER_ENABLED
value: "true"
{{- end }}
{{- if eq (include "splunk-otel-collector.operator.env-has" (dict "env" .Values.operator.instrumentation.spec.env "envName" "SPLUNK_PROFILER_MEMORY_ENABLED")) "false" }}
{{- if eq (include "splunk-otel-collector.operator.env-has" (dict "env" .Values.instrumentation.env "envName" "SPLUNK_PROFILER_MEMORY_ENABLED")) "false" }}
- name: SPLUNK_PROFILER_MEMORY_ENABLED
value: "true"
{{- end }}
Expand All @@ -42,7 +42,7 @@ spec:
apiVersion: v1
fieldPath: status.hostIP
{{- end }}
{{- with .Values.operator.instrumentation.spec.env }}
{{- with .Values.instrumentation.env }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{ include "splunk-otel-collector.operator.instrumentation-libraries" . }}
Expand Down
Loading
Loading