Skip to content

feat(chart): support deploymentStrategy, lifecycle, minReadySeconds, terminationGracePeriodSeconds - #1054

Merged
burningalchemist merged 1 commit into
burningalchemist:masterfrom
eenchevlp:feat/chart-rollout-controls
Aug 10, 2026
Merged

feat(chart): support deploymentStrategy, lifecycle, minReadySeconds, terminationGracePeriodSeconds#1054
burningalchemist merged 1 commit into
burningalchemist:masterfrom
eenchevlp:feat/chart-rollout-controls

Conversation

@eenchevlp

Copy link
Copy Markdown
Contributor

Bumps chart version to 0.18.5.

Fixes #1053

Summary

With replicas: 1 (the common configuration for this exporter), a plain
rolling restart briefly drops the only pod backing the Service, causing
Prometheus scrape gaps on every redeploy. spec.strategy,
spec.minReadySeconds, container lifecycle hooks, and
terminationGracePeriodSeconds were not configurable, so there was no way
to avoid this from the chart.

This adds four new optional, passthrough values:

  • deploymentStrategy → rendered verbatim under spec.strategy (e.g.
    RollingUpdate with maxSurge: 1, maxUnavailable: 0 to guarantee a
    new pod is ready before the old one terminates)
  • minReadySecondsspec.minReadySeconds (hold the new pod as "not yet
    available" long enough for Prometheus to discover and scrape it)
  • lifecycle → container lifecycle hooks (e.g. preStop: sleep 45 to
    let in-flight scrapes finish and service endpoints propagate before
    SIGTERM)
  • terminationGracePeriodSeconds → pod spec, sized to cover the preStop
    delay

Together these enable gapless rolling updates for single-replica
deployments: maxUnavailable: 0 + a preStop sleep keeps the old pod
serving /metrics until the new pod is confirmed ready and endpoints have
propagated.

All four values default to unset/empty and are guarded with
{{- with }}, so existing releases render identically until explicitly
configured.

Test plan

  • helm lint helm/
  • ct lint --charts helm
  • helm template test helm/ diffed against master with the new
    values unset — identical output (only the chart-version
    label/checksum differ, from the version bump)
  • helm template test helm/ -f <values with all four set> — verified
    via yq that spec.strategy, spec.minReadySeconds,
    spec.template.spec.terminationGracePeriodSeconds, and
    containers[0].lifecycle.preStop render in the correct locations

…nd terminationGracePeriodSeconds

Adds four optional passthrough values so users can configure zero-downtime
rolling updates for the exporter Deployment: spec.strategy,
spec.minReadySeconds, container lifecycle hooks, and
terminationGracePeriodSeconds. All default to unset and render nothing,
so existing manifests are unaffected.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@burningalchemist

Copy link
Copy Markdown
Owner

Hey @eenchevlp, looks good to me! Thanks for your contribution, let's ship it. 🚀

@burningalchemist
burningalchemist merged commit 1f0c9f9 into burningalchemist:master Aug 10, 2026
4 checks passed
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.

[Feature Request] Helm chart: support overriding additional parameters

2 participants