Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion tools/deployment-cli-tools/ch_cli_tools/codefresh.py
Original file line number Diff line number Diff line change
Expand Up @@ -391,8 +391,9 @@ def adjust_build_steps(index):
if app.harness.secrets:
for secret in [secret[0] for secret in app.harness.secrets.items() if secret[1] != ""]:
secret_name = secret.replace("_", "__")
value_ref = "\"${{%s}}\"" % secret_name.upper()
arguments["custom_values"].append(
"apps_%s_harness_secrets_%s=${{%s}}" % (app_name.replace("_", "__"), secret_name, secret_name.upper()))
"apps_%s_harness_secrets_%s=%s" % (app_name.replace("_", "__"), secret_name, value_ref))

cmds = codefresh['steps']['prepare_deployment']['commands']

Expand Down
47 changes: 47 additions & 0 deletions tools/deployment-cli-tools/tests/test_codefresh.py
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,53 @@ def test_create_codefresh_configuration_nobuild():
assert "publish_myapp-mytask" in l1_steps["publish"]["steps"]


def test_codefresh_secret_with_quotes():
values = create_helm_chart(
[CLOUDHARNESS_ROOT, RESOURCES],
output_path=OUT,
include=['myapp'],
exclude=['events'],
domain="my.local",
namespace='test',
env='dev',
local=False,
tag=1,
registry='reg'
)
try:
root_paths = preprocess_build_overrides(
root_paths=[CLOUDHARNESS_ROOT, RESOURCES],
helm_values=values,
merge_build_path=BUILD_MERGE_DIR
)

build_included = [app['harness']['name']
for app in values['apps'].values() if 'harness' in app]

values.apps["myapp"].harness.secrets = {
"settings_secret": "SECRET_KEY='replace-with-strong-shared-secret'"
}

cf = create_codefresh_deployment_scripts(root_paths, include=build_included,
envs=['dev'],
base_image_name=values['name'],
helm_values=values, save=False)

custom_values = cf['steps']['deployment']['arguments']['custom_values']
entry = next(
value for value in custom_values
if value.startswith("apps_myapp_harness_secrets_settings__secret=")
)
assert entry == 'apps_myapp_harness_secrets_settings__secret="${{SETTINGS__SECRET}}"'
rendered = entry.replace(
"${{SETTINGS__SECRET}}",
values.apps["myapp"].harness.secrets["settings_secret"]
)
assert rendered == 'apps_myapp_harness_secrets_settings__secret="SECRET_KEY=\'replace-with-strong-shared-secret\'"'
finally:
shutil.rmtree(BUILD_MERGE_DIR)


def test_app_depends_on_app():

root_paths = [CLOUDHARNESS_ROOT, RESOURCES]
Expand Down
Loading