From cdad086b5e063ae6e5a3882b90d85c39710c3077 Mon Sep 17 00:00:00 2001 From: mesaj Date: Tue, 24 Jun 2025 13:24:56 +0200 Subject: [PATCH] Fix render of PATCH_CONTENT in full_json_patch krm function This will fix Helm inline values patch rendering When using inline values such as: ``` inline_values: service: ports: http: "8080" https: "8443" ``` The current `full_json_patch()` function was failing with error: `Error: bad expression, please check expression syntax`. This is because yq seems like doesn't properly handle literal new-lines inside a double-quoted string. This change replace current implementation to a safer approach using HEREDOCS template to render the patch. Change-Id: If7e78a6509ca0e6731f3125eeb535cedf394b06b Signed-off-by: mesaj Signed-off-by: garciadeblas --- docker/osm-krm-functions/scripts/library/helper-functions.rc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/osm-krm-functions/scripts/library/helper-functions.rc b/docker/osm-krm-functions/scripts/library/helper-functions.rc index be3601a2..d012b804 100644 --- a/docker/osm-krm-functions/scripts/library/helper-functions.rc +++ b/docker/osm-krm-functions/scripts/library/helper-functions.rc @@ -423,9 +423,10 @@ function full_json_patch() { done # Wrap a full patch around, adding target specification + export PATCH_CONTENT local PATCH_FULL=$( yq --null-input ".target.kind = \"${TARGET_KIND}\", .target.name = \"${TARGET_NAME}\"" | \ - yq ".patch = \"${PATCH_CONTENT}\"" | \ + yq ".patch = env(PATCH_CONTENT)" | \ yq "[ . ]" ) -- 2.25.1