Added possibility to get all values by helm_info module (#531)

Added possibility to get all values by helm_info module

SUMMARY
Parameter get_all_values has been added, which is passed to function get_values. Default is False. Parameter is not required.
ISSUE TYPE

Feature Pull Request

COMPONENT NAME
helm_info
ADDITIONAL INFORMATION
Unfortunately, helm_info module lacks functionality of getting all the values of a helm release, including the default ones. This restricts upgrade and config migration capabilities. Parameter get_all_values has been added. This parameter, if set, adds -a parameter to helm get values call. The parameter is not required and defaults to False, so backwards compability is complied.

Reviewed-by: Mike Graves <mgraves@redhat.com>
Reviewed-by: Bikouo Aubin <None>
This commit is contained in:
Fors1
2022-10-19 17:41:37 +02:00
committed by GitHub
parent 2092d921cd
commit 2a3862b67a
3 changed files with 22 additions and 4 deletions

View File

@@ -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).

View File

@@ -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":

View File

@@ -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: