helm: split env values into server and telemetry scopes (MAPCO-11622) - #476
Merged
Merged
Conversation
- 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
|
🎫 Related Jira Issue: MAPCO-11622 |
…al leave them unset" This reverts commit c57262c.
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.
CptSchnitz
requested changes
Sep 10, 2026
Use the standard OpenTelemetry env var name and its key=value,key=value format instead of a JSON string so the SDK parses it.
CptSchnitz
approved these changes
Sep 10, 2026
This was referenced Sep 10, 2026
fix(helm): align values with ts-server-boilerplate server/telemetry split
MapColonies/job-tracker#76
Open
Open
This was referenced Sep 10, 2026
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Restructures the Helm values so server and telemetry settings live in their own scopes instead of the flat
envblock, and aligns the chart with the config schema and the pattern used in other MapColonies charts.values.yaml
server:port,targetPort,protocol,requestPayloadLimit,responseCompressionEnabledtelemetry.logger:level,prettyPrint,opentelemetryOptions(enabled,url,resourceAttributes)telemetry.tracing:enabled,urlglobal.telemetrymirrors the same hierarchy for umbrella-chart overridesmetricsvalues. Nothing consumedTELEMETRY_METRICS_*; metrics are pull-based via the Prometheus label.Templates
{{- with $server }}/{{- with $telemetry }}blocks and exportsOPENTELEMETRY_LOGGING_ENABLED,OTLP_LOGGER_ENDPOINT_URL,OTEL_RESOURCE_ATTRIBUTESwhen OpenTelemetry logging is enabled.$servervariable. Ingress keeps a direct.Values.server.portreference since it is the only server value it uses._helpers.tpl:tracingUrlandopentelemetryLoggingUrlreturn the global URL when set, otherwise the chart URL. Defaults live invalues.yaml. Only the URLs are overridable from global.Breaking changes
env.*values are renamed. Consumers must move toserver.*andtelemetry.*.global.tracing.urlmoved toglobal.telemetry.tracing.url.env.metricswas removed.Notes
global.telemetry.*.urlwins over the chart's URL when both are set. Enabled flags and resource attributes stay chart-level.REQUEST_PAYLOAD_LIMITandRESPONSE_COMPRESSION_ENABLEDare kept, but the currentcommonBoilerplateV3schema maps no env var to them.Verification
helm linthelm templatehelm install --dry-runwith defaultshelm install --dry-runwithglobal.telemetryURLs andresourceAttributesnpm testnpm run start:devRendered scenarios for the telemetry URLs: