From ddd7e79a125bdf0045f2f8e44bcaa1ae1f29acf9 Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 17:58:34 +0000 Subject: [PATCH] Update kustomize.py add --enable-helm support (#592) (#712) [PR #592/0408aa93 backport][stable-3] Update kustomize.py add --enable-helm support This is a backport of PR #592 as merged into main (0408aa9). Add --enable-helm support SUMMARY Fixes #568 ISSUE TYPE Feature Pull Request COMPONENT NAME Lookup plugin: kubernetes.core.kustomize ADDITIONAL INFORMATION Current and maintained arg: lookup('kubernetes.core.kustomize', dir=item) Additional feature args: lookup('kubernetes.core.kustomize', dir=item, enable_helm=false) lookup('kubernetes.core.kustomize', dir=item, enable_helm=true) Reviewed-by: Mike Graves --- .../fragments/592-kustomize-helm-support.yml | 3 ++ docs/kubernetes.core.kustomize_lookup.rst | 28 +++++++++++++++++-- plugins/lookup/kustomize.py | 26 ++++++++++++++--- 3 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 changelogs/fragments/592-kustomize-helm-support.yml diff --git a/changelogs/fragments/592-kustomize-helm-support.yml b/changelogs/fragments/592-kustomize-helm-support.yml new file mode 100644 index 00000000..8c442219 --- /dev/null +++ b/changelogs/fragments/592-kustomize-helm-support.yml @@ -0,0 +1,3 @@ +--- +minor_changes: + - kustomize - new parameter added to --enable-helm (https://github.com/ansible-collections/kubernetes.core/issues/568) diff --git a/docs/kubernetes.core.kustomize_lookup.rst b/docs/kubernetes.core.kustomize_lookup.rst index 5c368d14..4083ebad 100644 --- a/docs/kubernetes.core.kustomize_lookup.rst +++ b/docs/kubernetes.core.kustomize_lookup.rst @@ -77,6 +77,24 @@ Parameters
If omitted, '.' is assumed.
+ + +
+ enable_helm + +
+ - +
+ + + Default:
"False"
+ + + + +
Enable the helm chart inflation generator
+ +
@@ -112,16 +130,20 @@ Examples .. code-block:: yaml - name: Run lookup using kustomize - set_fact: + ansible.builtin.set_fact: resources: "{{ lookup('kubernetes.core.kustomize', binary_path='/path/to/kustomize') }}" - name: Run lookup using kubectl kustomize - set_fact: + ansible.builtin.set_fact: resources: "{{ lookup('kubernetes.core.kustomize', binary_path='/path/to/kubectl') }}" - name: Create kubernetes resources for lookup output - k8s: + kubernetes.core.k8s: definition: "{{ lookup('kubernetes.core.kustomize', dir='/path/to/kustomization') }}" + + - name: Create kubernetes resources for lookup output with `--enable-helm` set + kubernetes.core.k8s: + definition: "{{ lookup('kubernetes.core.kustomize', dir='/path/to/kustomization', enable_helm=True) }}" diff --git a/plugins/lookup/kustomize.py b/plugins/lookup/kustomize.py index dd580a2f..c18f71ff 100644 --- a/plugins/lookup/kustomize.py +++ b/plugins/lookup/kustomize.py @@ -30,6 +30,10 @@ DOCUMENTATION = """ opt_dirs: description: - An optional list of directories to search for the executable in addition to PATH. + enable_helm: + description: + - Enable the helm chart inflation generator + default: "False" requirements: - "python >= 3.6" @@ -37,16 +41,20 @@ DOCUMENTATION = """ EXAMPLES = """ - name: Run lookup using kustomize - set_fact: + ansible.builtin.set_fact: resources: "{{ lookup('kubernetes.core.kustomize', binary_path='/path/to/kustomize') }}" - name: Run lookup using kubectl kustomize - set_fact: + ansible.builtin.set_fact: resources: "{{ lookup('kubernetes.core.kustomize', binary_path='/path/to/kubectl') }}" - name: Create kubernetes resources for lookup output - k8s: + kubernetes.core.k8s: definition: "{{ lookup('kubernetes.core.kustomize', dir='/path/to/kustomization') }}" + +- name: Create kubernetes resources for lookup output with `--enable-helm` set + kubernetes.core.k8s: + definition: "{{ lookup('kubernetes.core.kustomize', dir='/path/to/kustomization', enable_helm=True) }}" """ RETURN = """ @@ -91,7 +99,14 @@ def run_command(command): class LookupModule(LookupBase): def run( - self, terms, variables=None, dir=".", binary_path=None, opt_dirs=None, **kwargs + self, + terms, + variables=None, + dir=".", + binary_path=None, + opt_dirs=None, + enable_helm=False, + **kwargs ): executable_path = binary_path if executable_path is None: @@ -122,6 +137,9 @@ class LookupModule(LookupBase): ) ) + if enable_helm: + command += ["--enable-helm"] + (out, err) = run_command(command) if err: raise AnsibleLookupError(