mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-07-25 00:44:40 +00:00
feat: add plugin --keyring option (#1150)
* feat: add plugin --keyring option * docs: add changelog fragment * Update changelogs/fragments/20260620-add-plugin-keyring-option.yaml Co-authored-by: Yuriy Novostavskiy <yuriy@novostavskiy.kyiv.ua> * feat: restrict helm_plugin keyring to install subcommand (#1) Restrict the keyring option to state=present (helm plugin install), the only implemented subcommand that supports --keyring, and fail explicitly when it is used with other states. Co-authored-by: Kenji Gaillac <48765390+Nhqml@users.noreply.github.com> * refactor(helm_plugin): warn instead of fail * Resolve linter error * Update plugins/modules/helm_plugin.py --------- Co-authored-by: Yuriy Novostavskiy <yuriy@novostavskiy.kyiv.ua> Co-authored-by: Bianca Henderson <bianca@redhat.com> Co-authored-by: Bianca Henderson <beeankha@gmail.com>
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
minor_changes:
|
||||||
|
- helm_plugin - add ``--keyring`` argument to allow changing the keyring default location. The option is only accepted with ``state=present`` (the ``helm plugin install`` subcommand), as that is the only implemented subcommand that supports ``--keyring`` (https://github.com/ansible-collections/kubernetes.core/pull/1150).
|
||||||
@@ -56,6 +56,14 @@ options:
|
|||||||
type: bool
|
type: bool
|
||||||
default: true
|
default: true
|
||||||
version_added: 6.4.0
|
version_added: 6.4.0
|
||||||
|
keyring:
|
||||||
|
description:
|
||||||
|
- Location of public keys used for verification.
|
||||||
|
- Only valid with C(state=present), which maps to the C(helm plugin install) subcommand.
|
||||||
|
- This option requires helm version >= 4.0.0.
|
||||||
|
type: path
|
||||||
|
required: false
|
||||||
|
version_added: 6.5.0
|
||||||
extends_documentation_fragment:
|
extends_documentation_fragment:
|
||||||
- kubernetes.core.helm_common_options
|
- kubernetes.core.helm_common_options
|
||||||
"""
|
"""
|
||||||
@@ -153,6 +161,10 @@ def argument_spec():
|
|||||||
type="bool",
|
type="bool",
|
||||||
default=True,
|
default=True,
|
||||||
),
|
),
|
||||||
|
keyring=dict(
|
||||||
|
type="path",
|
||||||
|
required=False,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return arg_spec
|
return arg_spec
|
||||||
@@ -181,16 +193,28 @@ def main():
|
|||||||
|
|
||||||
state = module.params.get("state")
|
state = module.params.get("state")
|
||||||
|
|
||||||
|
# The ``--keyring`` flag is only supported by the ``install``, ``verify`` and
|
||||||
|
# ``package`` plugin subcommands. Of those, this module only implements
|
||||||
|
# ``install`` (state=present); using ``keyring`` with other states emits a
|
||||||
|
# warning and the option is not passed to Helm.
|
||||||
|
if module.params.get("keyring") is not None and state != "present":
|
||||||
|
module.warn(
|
||||||
|
"The 'keyring' option is only supported with state=present "
|
||||||
|
"(the 'helm plugin install' subcommand)."
|
||||||
|
)
|
||||||
|
|
||||||
helm_cmd_common = module.get_helm_binary() + " plugin"
|
helm_cmd_common = module.get_helm_binary() + " plugin"
|
||||||
|
|
||||||
if state == "present":
|
if state == "present":
|
||||||
helm_cmd_common += " install %s" % module.params.get("plugin_path")
|
helm_cmd_common += " install %s" % module.params.get("plugin_path")
|
||||||
plugin_version = module.params.get("plugin_version")
|
plugin_version = module.params.get("plugin_version")
|
||||||
verify = module.params.get("verify")
|
verify = module.params.get("verify")
|
||||||
|
keyring = module.params.get("keyring")
|
||||||
if plugin_version is not None:
|
if plugin_version is not None:
|
||||||
helm_cmd_common += " --version=%s" % plugin_version
|
helm_cmd_common += " --version=%s" % plugin_version
|
||||||
if not verify:
|
if not verify or keyring is not None:
|
||||||
helm_version = module.get_helm_version()
|
helm_version = module.get_helm_version()
|
||||||
|
if not verify:
|
||||||
if LooseVersion(helm_version) < LooseVersion("4.0.0"):
|
if LooseVersion(helm_version) < LooseVersion("4.0.0"):
|
||||||
module.warn(
|
module.warn(
|
||||||
"verify parameter requires helm >= 4.0.0, current version is {0}".format(
|
"verify parameter requires helm >= 4.0.0, current version is {0}".format(
|
||||||
@@ -199,6 +223,15 @@ def main():
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
helm_cmd_common += " --verify=false"
|
helm_cmd_common += " --verify=false"
|
||||||
|
if keyring is not None:
|
||||||
|
if LooseVersion(helm_version) < LooseVersion("4.0.0"):
|
||||||
|
module.warn(
|
||||||
|
"keyring parameter requires helm >= 4.0.0, current version is {0}".format(
|
||||||
|
helm_version
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
helm_cmd_common += " --keyring=" + keyring
|
||||||
if not module.check_mode:
|
if not module.check_mode:
|
||||||
rc, out, err = module.run_helm_command(
|
rc, out, err = module.run_helm_command(
|
||||||
helm_cmd_common, fails_on_error=False
|
helm_cmd_common, fails_on_error=False
|
||||||
|
|||||||
Reference in New Issue
Block a user