CI Failure: pull-e2e-cnao-multus-dynamic-networks-functests / The pull-e2e-cnao-multus-dynamic-networks-functests CI#2830
CI Failure: pull-e2e-cnao-multus-dynamic-networks-functests / The pull-e2e-cnao-multus-dynamic-networks-functests CI#2830RamLavi wants to merge 2 commits into
pull-e2e-cnao-multus-dynamic-networks-functests CI#2830Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Code Review
This pull request upgrades the yq tool from version 3 to version 4 in hack/components/yaml-utils.sh and updates the helper functions (get_param, set_param, and delete_param) to use the new eval syntax. The feedback highlights a potential syntax error in set_param when ${value} contains nested double quotes or special characters, and suggests using the --arg flag in yq to safely pass the value.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| local value="$3" | ||
|
|
||
| __yq w -i ${yaml_file} ${path} "${value}" | ||
| __yq eval ".${path} = \"${value}\"" -i ${yaml_file} |
There was a problem hiding this comment.
Interpolating ${value} directly into the double-quoted yq expression will cause syntax errors if the value contains nested double quotes, backslashes, or other special characters (such as the lifecycle preStop command in bump-multus.sh which contains nested double quotes).
To prevent this, use yq's --arg flag to safely pass the value as a variable.
| __yq eval ".${path} = \"${value}\"" -i ${yaml_file} | |
| __yq eval ".${path} = \$val" --arg val "${value}" -i ${yaml_file} |
CI Failure Analysis — commit d393e37Total failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit 7bd0c6bTotal failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit 2d828abTotal failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit 27f8749Total failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit 2b53b8dTotal failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit ccfc637Total failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit 5d5241eTotal failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit 8649ba5Total failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit 8256c01Total failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit 61aeaacTotal failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit 8aa4d41Total failures: 1 (1 infrastructure) 🔧 Infrastructure:
|
|
/oompa The The yq v3 Read: Write: Delete: Get with filter: Set with filter: Fix |
|
Fixed! Changes made:
Verified that both regular paths and filter expressions work correctly with the new implementation. |
|
|
Rebased commit a18de9b on main and pushed. |
CI Failure Analysis — commit a18de9bTotal failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit f0641abTotal failures: 1 (1 related) 🔴 Related:
|
|
…functests / The `pull-e2e-cnao-multus-dynamic-networks-functests` CI fix: upgrade yq from v3.3.4 to v4 to resolve Docker Hub image availability The mikefarah/yq:3.3.4 Docker image is no longer available on Docker Hub, causing CI failures in pull-e2e-cnao-multus-dynamic-networks-functests. This image has been pinned to version 3.3.4 since December 2020 (commit 3bf8f71) and is now unavailable after 5+ years. This commit upgrades to yq v4 by: - Using the system-installed yq binary instead of Docker containers - Migrating command syntax from yq v3 to v4: - get: 'yq r file path' → 'yq eval ".path" file' - set: 'yq w -i file path value' → 'yq eval ".path = \"value\"" -i file' - delete: 'yq d -i file path' → 'yq eval "del(.path)" -i file' - Updating filter syntax: 'path(name=="value")' → '(.path[] | select(.name == "value"))' - Adding yaml-utils::unquote_template_variables to preserve Go template syntax - Replaces the overly aggressive remove_single_quotes_from_yaml - Only removes quotes around template variables like {{ .Var }} - Preserves legitimate single quotes in other string values The v4 API changes are minimal since we only prepend a dot to paths to convert them to yq v4's jq-style path syntax. This provides long-term support with an actively maintained yq version. Fixes kubevirt#2829 Signed-off-by: RamLavi <ralavi@redhat.com> Assisted-by: Claude <noreply@anthropic.com>
CI Failure Analysis — commit db4a67eTotal failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit 0b09608Total failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit f0fd174Total failures: 1 (1 related) 🔴 Related:
|
CI Failure Analysis — commit cf4b8b4Total failures: 1 (1 related) 🔴 Related:
|
…functests / The `pull-e2e-cnao-multus-dynamic-networks-functests` CI fix: upgrade yq from v3.3.4 to v4 to resolve Docker Hub image availability The mikefarah/yq:3.3.4 Docker image is no longer available on Docker Hub, causing CI failures in pull-e2e-cnao-multus-dynamic-networks-functests. This image has been pinned to version 3.3.4 since December 2020 (commit 3bf8f71) and is now unavailable after 5+ years. This commit upgrades to yq v4 by: - Using the system-installed yq binary instead of Docker containers - Migrating command syntax from yq v3 to v4: - get: 'yq r file path' → 'yq eval ".path" file' - set: 'yq w -i file path value' → 'yq eval ".path = \"value\"" -i file' - delete: 'yq d -i file path' → 'yq eval "del(.path)" -i file' - Updating filter syntax: 'path(name=="value")' → '(.path[] | select(.name == "value"))' - Adding yaml-utils::unquote_template_variables to preserve Go template syntax - Replaces the overly aggressive remove_single_quotes_from_yaml - Only removes quotes around template variables like {{ .Var }} - Preserves legitimate single quotes in other string values The v4 API changes are minimal since we only prepend a dot to paths to convert them to yq v4's jq-style path syntax. This provides long-term support with an actively maintained yq version. Fixes kubevirt#2829 Signed-off-by: RamLavi <ralavi@redhat.com> Assisted-by: Claude <noreply@anthropic.com>
CI Failure Analysis — commit b192367Total failures: 1 (1 related) 🔴 Related:
|
|
Invalid commit message issues detected Invalid commit messagesKeywords which can automatically close issues and hashtag(#) mentions are not allowed.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|



Fixes #2829
What this PR does / why we need it:
This PR upgrades the yq tool from version 3.3.4 to version 4 to resolve CI failures caused by the unavailability of the
docker.io/mikefarah/yq:3.3.4Docker image on Docker Hub.The
pull-e2e-cnao-multus-dynamic-networks-functestsCI job was failing with a 404 error when attempting to pull the yq:3.3.4 image, which has been removed from Docker Hub after being in use for 5+ years (since December 2020, commit 3bf8f71).The fix includes:
mikefarah/yq:3.3.4tomikefarah/yq:4Special notes for your reviewer:
The yq v3 to v4 migration is straightforward - we only need to prepend a dot (
.) to paths to convert them to yq v4's jq-style path syntax:yq r file pathbecomesyq eval '.path' fileyq w -i file path valuebecomesyq eval '.path = "value"' -i fileyq d -i file pathbecomesyq eval 'del(.path)' -i fileAll existing usages of yaml-utils functions (get_param, set_param, delete_param, update_param) remain compatible without changes to calling code.
Release note: