mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-05-07 21:42:38 +00:00
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:
3
changelogs/fragments/523-helm_info-get-all-values.yaml
Normal file
3
changelogs/fragments/523-helm_info-get-all-values.yaml
Normal 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).
|
||||||
@@ -77,7 +77,7 @@ def run_helm(module, command, fails_on_error=True):
|
|||||||
return rc, out, err
|
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
|
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
|
get_command = command + " get values --output=yaml " + release_name
|
||||||
|
|
||||||
|
if get_all:
|
||||||
|
get_command += " -a"
|
||||||
|
|
||||||
rc, out, err = run_helm(module, get_command)
|
rc, out, err = run_helm(module, get_command)
|
||||||
# Helm 3 return "null" string when no values are set
|
# Helm 3 return "null" string when no values are set
|
||||||
if out.rstrip("\n") == "null":
|
if out.rstrip("\n") == "null":
|
||||||
|
|||||||
@@ -53,6 +53,14 @@ options:
|
|||||||
type: list
|
type: list
|
||||||
elements: str
|
elements: str
|
||||||
version_added: "2.3.0"
|
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:
|
extends_documentation_fragment:
|
||||||
- kubernetes.core.helm_common_options
|
- kubernetes.core.helm_common_options
|
||||||
"""
|
"""
|
||||||
@@ -145,7 +153,9 @@ def get_release(state, release_name):
|
|||||||
|
|
||||||
|
|
||||||
# Get Release state from deployed release
|
# 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"
|
list_command = command + " list --output=yaml"
|
||||||
|
|
||||||
valid_release_states = [
|
valid_release_states = [
|
||||||
@@ -178,7 +188,7 @@ def get_release_status(module, command, release_name, release_state):
|
|||||||
if release is None: # not install
|
if release is None: # not install
|
||||||
return None
|
return None
|
||||||
|
|
||||||
release["values"] = get_values(module, command, release_name)
|
release["values"] = get_values(module, command, release_name, get_all_values)
|
||||||
|
|
||||||
return release
|
return release
|
||||||
|
|
||||||
@@ -190,6 +200,7 @@ def argument_spec():
|
|||||||
release_name=dict(type="str", required=True, aliases=["name"]),
|
release_name=dict(type="str", required=True, aliases=["name"]),
|
||||||
release_namespace=dict(type="str", required=True, aliases=["namespace"]),
|
release_namespace=dict(type="str", required=True, aliases=["namespace"]),
|
||||||
release_state=dict(type="list", default=[], elements="str"),
|
release_state=dict(type="list", default=[], elements="str"),
|
||||||
|
get_all_values=dict(type="bool", required=False, default=False),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return arg_spec
|
return arg_spec
|
||||||
@@ -209,11 +220,12 @@ def main():
|
|||||||
|
|
||||||
release_name = module.params.get("release_name")
|
release_name = module.params.get("release_name")
|
||||||
release_state = module.params.get("release_state")
|
release_state = module.params.get("release_state")
|
||||||
|
get_all_values = module.params.get("get_all_values")
|
||||||
|
|
||||||
helm_cmd_common = get_helm_binary(module)
|
helm_cmd_common = get_helm_binary(module)
|
||||||
|
|
||||||
release_status = get_release_status(
|
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:
|
if release_status is not None:
|
||||||
|
|||||||
Reference in New Issue
Block a user