From 1c753291df25973e99665cc96d353237a8f9e00b Mon Sep 17 00:00:00 2001 From: Viacheslav Mefodin Date: Fri, 21 May 2021 20:16:37 +0300 Subject: [PATCH] fix(cli): allow unconfigured secrets provider if it is passed via cli --- k8t/cli.py | 5 ++++- tests/cli.py | 6 ++++++ tests/resources/no_secrets_provider/.k8t | 0 .../no_secrets_provider/templates/template.yaml.j2 | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 tests/resources/no_secrets_provider/.k8t create mode 100644 tests/resources/no_secrets_provider/templates/template.yaml.j2 diff --git a/k8t/cli.py b/k8t/cli.py index e3e6fa0..732ab09 100644 --- a/k8t/cli.py +++ b/k8t/cli.py @@ -133,7 +133,10 @@ def cli_gen(method, value_files, cli_values, cname, ename, suffixes, secret_prov config.CONFIG = config.load_all(directory, cname, ename, method) if secret_provider is not None: - config.CONFIG['secrets']['provider'] = secret_provider + config.CONFIG = deep_merge( + config.CONFIG, + {'secrets': {'provider': secret_provider}} + ) eng = build(directory, cname, ename) diff --git a/tests/cli.py b/tests/cli.py index 114b596..a1988a8 100644 --- a/tests/cli.py +++ b/tests/cli.py @@ -383,5 +383,11 @@ def test_gen(): assert result.exit_code == 0 assert result.output == file.read() + result = runner.invoke(root, ['gen', 'tests/resources/no_secrets_provider']) + assert result.exit_code == 1 + + result = runner.invoke(root, ['gen', '--secret-provider', 'random', 'tests/resources/no_secrets_provider']) + assert result.exit_code == 0 + # vim: fenc=utf-8:ts=4:sw=4:expandtab diff --git a/tests/resources/no_secrets_provider/.k8t b/tests/resources/no_secrets_provider/.k8t new file mode 100644 index 0000000..e69de29 diff --git a/tests/resources/no_secrets_provider/templates/template.yaml.j2 b/tests/resources/no_secrets_provider/templates/template.yaml.j2 new file mode 100644 index 0000000..4e35bd7 --- /dev/null +++ b/tests/resources/no_secrets_provider/templates/template.yaml.j2 @@ -0,0 +1 @@ +secret: "{{get_secret('/test', 12) | b64encode}}"