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())