From dfb743fb09d7ba0bd74209bad13bb50bc4a005c9 Mon Sep 17 00:00:00 2001 From: Mor Cohen Date: Mon, 22 Aug 2022 22:40:05 +0300 Subject: [PATCH] Add the force_update arg --- plugins/modules/helm_repository.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/plugins/modules/helm_repository.py b/plugins/modules/helm_repository.py index 1125e5e6fd3..55ade5d3241 100644 --- a/plugins/modules/helm_repository.py +++ b/plugins/modules/helm_repository.py @@ -97,6 +97,13 @@ type: path aliases: [ ssl_ca_cert ] version_added: "2.3.0" + force_update: + description: + - Whether or not to replace (overwrite) the repo if it already exists. + type: bool + aliases: [ force ] + default: False + version_added: "2.3.3" """ EXAMPLES = r""" @@ -195,6 +202,7 @@ def install_repository( repository_username, repository_password, pass_credentials, + force_update ): install_command = command + " repo add " + repository_name + " " + repository_url @@ -205,6 +213,9 @@ def install_repository( if pass_credentials: install_command += " --pass-credentials" + if force_update: + install_command += " --force-update" + return install_command @@ -242,6 +253,11 @@ def main(): aliases=["verify_ssl"], fallback=(env_fallback, ["K8S_AUTH_VERIFY_SSL"]), ), + force_update=dict( + type="bool", + default=False, + aliases=["force"], + ), api_key=dict( type="str", no_log=True, fallback=(env_fallback, ["K8S_AUTH_API_KEY"]) ), @@ -263,6 +279,7 @@ def main(): repo_password = module.params.get("repo_password") repo_state = module.params.get("repo_state") pass_credentials = module.params.get("pass_credentials") + force_update = module.params.get("force_update") if bin_path is not None: helm_cmd = bin_path @@ -275,7 +292,7 @@ def main(): helm_cmd = delete_repository(helm_cmd, repo_name) changed = True elif repo_state == "present": - if repository_status is None: + if repository_status is None or force_update: helm_cmd = install_repository( helm_cmd, repo_name, @@ -283,6 +300,7 @@ def main(): repo_username, repo_password, pass_credentials, + force_update ) changed = True elif repository_status["url"] != repo_url: