Skip to content

helm: split env values into server and telemetry scopes (MAPCO-11622) - #476

Merged
CL-SHLOMIKONCHA merged 13 commits into
masterfrom
helm/server-telemetry-scopes
Sep 10, 2026
Merged

CL-SHLOMIKONCHA merged 13 commits into
masterfrom
helm/server-telemetry-scopes

Conversation

@CL-SHLOMIKONCHA

@CL-SHLOMIKONCHA CL-SHLOMIKONCHA commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Restructures the Helm values so server and telemetry settings live in their own scopes instead of the flat env block, and aligns the chart with the config schema and the pattern used in other MapColonies charts.

values.yaml

  • server: port, targetPort, protocol, requestPayloadLimit, responseCompressionEnabled
  • telemetry.logger: level, prettyPrint, opentelemetryOptions (enabled, url, resourceAttributes)
  • telemetry.tracing: enabled, url
  • global.telemetry mirrors the same hierarchy for umbrella-chart overrides
  • Removed metrics values. Nothing consumed TELEMETRY_METRICS_*; metrics are pull-based via the Prometheus label.

Templates

  • ConfigMap uses {{- with $server }} / {{- with $telemetry }} blocks and exports OPENTELEMETRY_LOGGING_ENABLED, OTLP_LOGGER_ENDPOINT_URL, OTEL_RESOURCE_ATTRIBUTES when OpenTelemetry logging is enabled.
  • Service and Deployment reference the shared $server variable. Ingress keeps a direct .Values.server.port reference since it is the only server value it uses.
  • _helpers.tpl: tracingUrl and opentelemetryLoggingUrl return the global URL when set, otherwise the chart URL. Defaults live in values.yaml. Only the URLs are overridable from global.

Breaking changes

  • env.* values are renamed. Consumers must move to server.* and telemetry.*.
  • global.tracing.url moved to global.telemetry.tracing.url.
  • env.metrics was removed.

Notes

  • global.telemetry.*.url wins over the chart's URL when both are set. Enabled flags and resource attributes stay chart-level.
  • REQUEST_PAYLOAD_LIMIT and RESPONSE_COMPRESSION_ENABLED are kept, but the current commonBoilerplateV3 schema maps no env var to them.

Verification

Check Result
helm lint Passed, 0 failures
helm template Passed, renders ConfigMap, Deployment, Service, Ingress, Route
helm install --dry-run with defaults Passed against the cluster (namespace raster-dev), no release left behind
helm install --dry-run with global.telemetry URLs and resourceAttributes Passed, global URLs win and attributes rendered as key=value pairs
npm test 5 files, 12 tests passed
npm run start:dev Built and started, liveness returned 200, no errors logged

Rendered scenarios for the telemetry URLs:

Scenario TELEMETRY_TRACING_URL OTLP_LOGGER_ENDPOINT_URL
Nothing set http://localhost:55681/v1/trace http://localhost:4317
Chart URLs only chart value chart value
Global URLs only global value global value
Both set global value global value

- replace the flat env block with a server scope (port, targetPort,
  protocol, requestPayloadLimit, responseCompressionEnabled) and a
  telemetry scope (logger, tracing)
- rename logger keys to level and prettyPrint to match the config schema
- add logger.opentelemetryOptions (enabled, url, resourceAttributes)
  exported as OPENTELEMETRY_LOGGING_ENABLED, OTLP_LOGGER_ENDPOINT_URL and
  OPENTELEMETRY_RESOURCE_ATTRIBUTES
- remove the metrics values and helper, nothing consumed them
- move global overrides under global.telemetry with the same hierarchy
  and replace the per-url helpers with a single telemetry.merged helper
  where chart values take precedence and global fills empty keys
- reference $server / $telemetry via with blocks across the templates
@CL-SHLOMIKONCHA CL-SHLOMIKONCHA changed the title helm: split env values into server and telemetry scopes helm!: split env values into server and telemetry scopes Sep 9, 2026
@CL-SHLOMIKONCHA CL-SHLOMIKONCHA changed the title helm!: split env values into server and telemetry scopes helm!: split env values into server and telemetry scopes (MAPCO-11622) Sep 9, 2026
@github-actions

github-actions Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

🎫 Related Jira Issue: MAPCO-11622

@CptSchnitz CptSchnitz changed the title helm!: split env values into server and telemetry scopes (MAPCO-11622) helm: split env values into server and telemetry scopes (MAPCO-11622) Sep 9, 2026
Replace the whole-telemetry merge helper with two url helpers,
tracingUrl and opentelemetryLoggingUrl. Each returns the global url when
set, otherwise the chart url, and nothing when neither is set so the
configmap default applies. Only the urls are overridable from global;
enabled flags and the rest stay chart-level.
Comment thread helm/templates/configmap.yaml Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants