From 61515f1377bd270f2ab6c14fc45bc1563e6e6956 Mon Sep 17 00:00:00 2001 From: David Constenla <1520001+daconstenla@users.noreply.github.com> Date: Thu, 29 Jan 2026 13:32:54 +0100 Subject: [PATCH] chore: bump `helm` support to `4.x` the new version of `helm` does not introduce breaking changes that affect the features used by kpops https://helm.sh/docs/overview\#upgrading-to-helm-4 --- kpops/component_handlers/helm_wrapper/helm.py | 4 ++-- tests/component_handlers/helm_wrapper/test_helm_wrapper.py | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/kpops/component_handlers/helm_wrapper/helm.py b/kpops/component_handlers/helm_wrapper/helm.py index 0b527a841..b8763017c 100644 --- a/kpops/component_handlers/helm_wrapper/helm.py +++ b/kpops/component_handlers/helm_wrapper/helm.py @@ -55,8 +55,8 @@ def __init__(self, helm_config: HelmConfig) -> None: self._context = helm_config.context self._debug = helm_config.debug - if self.version.major != 3: - msg = f"The supported Helm version is 3.x.x. The current Helm version is {self.version.major}.{self.version.minor}.{self.version.patch}" + if self.version.major < 3 or self.version.major > 4: + msg = f"The supported Helm version is 3.x.x|4.x.x. The current Helm version is {self.version.major}.{self.version.minor}.{self.version.patch}" raise RuntimeError(msg) @cached(cache={}, key=cache_key) diff --git a/tests/component_handlers/helm_wrapper/test_helm_wrapper.py b/tests/component_handlers/helm_wrapper/test_helm_wrapper.py index cca93c1c6..f49cdf6c6 100644 --- a/tests/component_handlers/helm_wrapper/test_helm_wrapper.py +++ b/tests/component_handlers/helm_wrapper/test_helm_wrapper.py @@ -594,6 +594,10 @@ def test_should_call_run_command_method_when_helm_template_without_optional_args ("v3.12.0", Version(3, 12, 0)), ("v3.12", Version(3, 12, 0)), ("v3", Version(3, 0, 0)), + ("v4.1.0+4553a0a", Version(4, 1, 0)), + ("v4.1.0", Version(4, 1, 0)), + ("v4.1", Version(4, 1, 0)), + ("v4", Version(4, 0, 0)), ], ) def test_parse_version( @@ -620,7 +624,7 @@ def test_should_raise_exception_if_helm_version_is_old( mock_execute.return_value = "v2.9.0+gc9f554d" with pytest.raises( RuntimeError, - match="The supported Helm version is 3.x.x. The current Helm version is 2.9.0", + match="The supported Helm version is 3.x.x|4.x.x. The current Helm version is 2.9.0", ): Helm(helm_config=HelmConfig())