diff --git a/changelogs/fragments/523-helm_info-get-all-values.yaml b/changelogs/fragments/523-helm_info-get-all-values.yaml new file mode 100644 index 00000000..e6c7965f --- /dev/null +++ b/changelogs/fragments/523-helm_info-get-all-values.yaml @@ -0,0 +1,3 @@ +--- +minor_changes: + - helm_info - added possibility to get all values by adding get_all_values parameter (https://github.com/ansible-collections/kubernetes.core/pull/531). diff --git a/plugins/module_utils/helm.py b/plugins/module_utils/helm.py index 4e8b9565..6ca44aef 100644 --- a/plugins/module_utils/helm.py +++ b/plugins/module_utils/helm.py @@ -77,7 +77,7 @@ def run_helm(module, command, fails_on_error=True): return rc, out, err -def get_values(module, command, release_name): +def get_values(module, command, release_name, get_all=False): """ Get Values from deployed release """ @@ -86,6 +86,9 @@ def get_values(module, command, release_name): get_command = command + " get values --output=yaml " + release_name + if get_all: + get_command += " -a" + rc, out, err = run_helm(module, get_command) # Helm 3 return "null" string when no values are set if out.rstrip("\n") == "null": diff --git a/plugins/modules/helm_info.py b/plugins/modules/helm_info.py index c0294bc8..dbe650bb 100644 --- a/plugins/modules/helm_info.py +++ b/plugins/modules/helm_info.py @@ -53,6 +53,14 @@ options: type: list elements: str version_added: "2.3.0" + get_all_values: + description: + - Set to C(True) if you want to get all (computed) values of the release. + - When C(False) (default), only user supplied values are returned. + required: false + default: false + type: bool + version_added: "2.4.0" extends_documentation_fragment: - kubernetes.core.helm_common_options """ @@ -145,7 +153,9 @@ def get_release(state, release_name): # Get Release state from deployed release -def get_release_status(module, command, release_name, release_state): +def get_release_status( + module, command, release_name, release_state, get_all_values=False +): list_command = command + " list --output=yaml" valid_release_states = [ @@ -178,7 +188,7 @@ def get_release_status(module, command, release_name, release_state): if release is None: # not install return None - release["values"] = get_values(module, command, release_name) + release["values"] = get_values(module, command, release_name, get_all_values) return release @@ -190,6 +200,7 @@ def argument_spec(): release_name=dict(type="str", required=True, aliases=["name"]), release_namespace=dict(type="str", required=True, aliases=["namespace"]), release_state=dict(type="list", default=[], elements="str"), + get_all_values=dict(type="bool", required=False, default=False), ) ) return arg_spec @@ -209,11 +220,12 @@ def main(): release_name = module.params.get("release_name") release_state = module.params.get("release_state") + get_all_values = module.params.get("get_all_values") helm_cmd_common = get_helm_binary(module) release_status = get_release_status( - module, helm_cmd_common, release_name, release_state + module, helm_cmd_common, release_name, release_state, get_all_values ) if release_status is not None: