Feat: Make helm flags timeout and force configurable#648
Merged
Conversation
tobbber
commented
Jun 1, 2026
timeout and force configurable
There was a problem hiding this comment.
Pull request overview
This PR adds configuration knobs for Helm’s --timeout and --force behavior, exposing them via global HelmConfig (and timeout additionally at the individual HelmApp level) and updating docs/schemas/tests accordingly.
Changes:
- Add
timeout(global + per-HelmApp) andforce_replace(global) to Helm configuration/models. - Wire
timeoutprecedence (local → global → default) into Helm flag construction and add tests for precedence. - Regenerate/update JSON schemas, env var docs, and CLI init snapshot to reflect the new config fields.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_kpops_config.py | Asserts new HelmConfig defaults (timeout, force_replace). |
| tests/components/test_helm_app.py | Adds tests for timeout precedence and global force_replace wiring. |
| tests/component_handlers/helm_wrapper/test_helm_diff.py | Adjusts logging capture in Helm diff test. |
| tests/cli/snapshots/test_init/test_init_project_include_optional/config.yaml | Updates init snapshot with new helm_config fields. |
| kpops/components/base_components/helm_app.py | Adds per-app timeout and applies global force_replace/timeout into flags. |
| kpops/components/base_components/cleaner.py | Applies timeout precedence to Cleaner Helm flags. |
| kpops/component_handlers/helm_wrapper/model.py | Extends HelmConfig with timeout/force_replace; updates Helm flags model. |
| docs/docs/schema/pipeline.json | Adds timeout field to HelmApp-derived component schemas. |
| docs/docs/schema/defaults.json | Adds timeout field to HelmApp-derived component schemas (defaults schema). |
| docs/docs/schema/config.json | Adds helm_config.timeout and helm_config.force_replace to config schema. |
| docs/docs/resources/variables/config_env_vars.md | Documents new env vars for helm timeout/force_replace. |
| docs/docs/resources/variables/config_env_vars.env | Adds new env var entries for helm timeout/force_replace. |
| docs/docs/resources/pipeline-components/dependencies/kpops_structure.yaml | Documents timeout as a component field in the pipeline structure docs. |
Comments suppressed due to low confidence (1)
kpops/components/base_components/helm_app.py:151
helm_config.force_replaceis currently added to the sharedhelm_flags, which are reused fortemplate_flags. This means--forcewill also be passed tohelm templatewhen force_replace is enabled, even though--forceis an upgrade/install concern and can break templating/manifest generation. Consider explicitly disablingforceforHelmTemplateFlagssohelm templatestays unaffected by this setting.
@property
def template_flags(self) -> HelmTemplateFlags:
"""Return flags for Helm template command."""
return HelmTemplateFlags(
**self.helm_flags.model_dump(),
api_version=get_config().helm_config.api_version,
)
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
disrupted
reviewed
Jun 1, 2026
disrupted
reviewed
Jun 1, 2026
Co-authored-by: Salomon Popp <hi@salomonpopp.me>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
disrupted
approved these changes
Jun 2, 2026
Member
disrupted
left a comment
There was a problem hiding this comment.
one small remark, other than that LGTM
disrupted
approved these changes
Jun 2, 2026
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.
Closes #647