mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-03-26 21:33:02 +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
|
||||
|
||||
|
||||
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":
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user