Repository navigation
Description
User Story
As an operator of OpenShell,
I want to set the gateway's OTEL_* environment variables through the Helm chart,
so that I don't have to patch the rendered StatefulSet to authenticate to my collector or tune export.
Problem Statement
The gateway reads the standard OpenTelemetry environment variables to tune OTLP export, for example:
OTEL_EXPORTER_OTLP_HEADERSandOTEL_EXPORTER_OTLP_LOGS_HEADERSfor collector credentials. Supervisors also receive the OCSF headers.OTEL_TRACES_SAMPLERandOTEL_TRACES_SAMPLER_ARGfor sampling.OTEL_RESOURCE_ATTRIBUTESfor extra resource attributes, such asdeployment.environment.OTEL_EXPORTER_OTLP_COMPRESSIONandOTEL_EXPORTER_OTLP_TIMEOUTfor transport tuning.
The Helm chart has no way to add environment variables to the gateway container. A Helm deployment can't use any of these variables, so it can't send OCSF events to a collector that requires authentication.
Proposed Design
Let chart values add environment variables to the gateway container, including values read from a Kubernetes Secret, so that collector credentials don't appear in the values file.
server:
otlp:
endpoint: https://collector.example.com:4317
env:
- name: OTEL_TRACES_SAMPLER
value: parentbased_traceidratio
- name: OTEL_TRACES_SAMPLER_ARG
value: "0.1"
- name: OTEL_EXPORTER_OTLP_HEADERS
valueFrom:
secretKeyRef:
name: otel-collector-auth
key: headersThe exact values shape, whether it is OTLP-specific or a general extraEnv, is open.
Acceptance Criteria
- Helm values can set environment variables on the gateway container, both literal values and values read from a Secret.
- A Helm deployment can export OCSF events to a collector that requires an authorization header, and its supervisors receive the header.
- The gateway configuration docs and the chart's values documentation describe the setting.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity