From c708740d8a2b2b4667fe66355a1d410fbca5cb9d Mon Sep 17 00:00:00 2001 From: Martin Rowe Date: Wed, 20 Aug 2025 09:01:29 +1000 Subject: [PATCH] feat: add --take-ownership flag support This install/upgrade flag allows helm to ignore the check for helm annotations and take ownership of the existing resources. Not usually safe, so defaults to disabled. --- pyhelm3/client.py | 4 ++++ pyhelm3/command.py | 3 +++ pyhelm3/models.py | 2 ++ 3 files changed, 9 insertions(+) diff --git a/pyhelm3/client.py b/pyhelm3/client.py index 7039e52..de455b4 100644 --- a/pyhelm3/client.py +++ b/pyhelm3/client.py @@ -229,6 +229,7 @@ async def install_or_upgrade_release( reset_values: bool = False, reuse_values: bool = False, skip_crds: bool = False, + take_ownership: bool = False, timeout: t.Union[int, str, None] = None, wait: bool = False, disable_validation: bool = False, @@ -254,6 +255,7 @@ async def install_or_upgrade_release( reset_values = reset_values, reuse_values = reuse_values, skip_crds = skip_crds, + take_ownership = take_ownership, timeout = timeout, version = chart.metadata.version, wait = wait, @@ -353,6 +355,7 @@ async def ensure_release( reset_values: bool = False, reuse_values: bool = False, skip_crds: bool = False, + take_ownership: bool = False, timeout: t.Union[int, str, None] = None, wait: bool = False ) -> ReleaseRevision: @@ -390,6 +393,7 @@ async def ensure_release( reset_values = reset_values, reuse_values = reuse_values, skip_crds = skip_crds, + take_ownership = take_ownership, timeout = timeout, wait = wait ) diff --git a/pyhelm3/command.py b/pyhelm3/command.py index 23b852d..57ca17b 100644 --- a/pyhelm3/command.py +++ b/pyhelm3/command.py @@ -526,6 +526,7 @@ async def install_or_upgrade( reset_values: bool = False, reuse_values: bool = False, skip_crds: bool = False, + take_ownership: bool = False, timeout: t.Union[int, str, None] = None, version: t.Optional[str] = None, wait: bool = False, @@ -574,6 +575,8 @@ async def install_or_upgrade( command.append("--reuse-values") if skip_crds: command.append("--skip-crds") + if take_ownership: + command.append("--take-ownership") if version: command.extend(["--version", version]) if wait: diff --git a/pyhelm3/models.py b/pyhelm3/models.py index d03fdc6..613cd0d 100644 --- a/pyhelm3/models.py +++ b/pyhelm3/models.py @@ -420,6 +420,7 @@ async def upgrade( reset_values: bool = False, reuse_values: bool = False, skip_crds: bool = False, + take_ownership: bool = False, timeout: t.Union[int, str, None] = None, wait: bool = False ) -> ReleaseRevisionType: @@ -442,6 +443,7 @@ async def upgrade( reset_values = reset_values, reuse_values = reuse_values, skip_crds = skip_crds, + take_ownership = take_ownership, timeout = timeout, version = chart.metadata.version, wait = wait