From 2d1ec224050edab0baf1fe7f9463e8c9d267dd63 Mon Sep 17 00:00:00 2001 From: Paul Voss Date: Wed, 5 Apr 2023 15:50:36 +0200 Subject: [PATCH] use post_renderer when checking 'changed' status for a helm release (#588) use post_renderer when checking 'changed' status for a helm release SUMMARY helmdiff_check needs to use --post-renderer if configured in order to detect changes correctly idempotency still seems to work ISSUE TYPE Bugfix Pull Request (50%) Feature Pull Request (50%) COMPONENT NAME kubernetes.core.helm ADDITIONAL INFORMATION - /snap/bin/helm diff upgrade myrelease some/chart --version=1.2.3 --reset-values -f=/tmp/tmpnn0rr50h.yml + /snap/bin/helm diff upgrade myrelease some/chart --version=1.2.3 --reset-values --post-renderer=/tmp/somescript.sh -f=/tmp/tmpnn0rr50h.yml Reviewed-by: Mike Graves --- .../fragments/588-helm-use-post-renderer-for-helmdiff.yml | 3 +++ plugins/modules/helm.py | 4 ++++ 2 files changed, 7 insertions(+) create mode 100644 changelogs/fragments/588-helm-use-post-renderer-for-helmdiff.yml diff --git a/changelogs/fragments/588-helm-use-post-renderer-for-helmdiff.yml b/changelogs/fragments/588-helm-use-post-renderer-for-helmdiff.yml new file mode 100644 index 00000000..a1c0f733 --- /dev/null +++ b/changelogs/fragments/588-helm-use-post-renderer-for-helmdiff.yml @@ -0,0 +1,3 @@ +--- +bugfixes: + - helm - use post_renderer when checking 'changed' status for a helm release (https://github.com/ansible-collections/kubernetes.core/pull/588). diff --git a/plugins/modules/helm.py b/plugins/modules/helm.py index db3aae31..87d5177b 100644 --- a/plugins/modules/helm.py +++ b/plugins/modules/helm.py @@ -637,6 +637,7 @@ def helmdiff_check( chart_version=None, replace=False, chart_repo_url=None, + post_renderer=False, ): """ Use helm diff to determine if a release would change by upgrading a chart. @@ -651,6 +652,8 @@ def helmdiff_check( cmd += " " + "--version=" + chart_version if not replace: cmd += " " + "--reset-values" + if post_renderer: + cmd += " --post-renderer=" + post_renderer if release_values != {}: fd, path = tempfile.mkstemp(suffix=".yml") @@ -892,6 +895,7 @@ def main(): chart_version, replace, chart_repo_url, + post_renderer, ) if would_change and module._diff: opt_result["diff"] = {"prepared": prepared}