From bff9976113bbdf0e8f6163e13d41ab76f92aaa92 Mon Sep 17 00:00:00 2001 From: Andrea Fasano Date: Mon, 15 Jun 2026 10:11:57 -0400 Subject: [PATCH] override IRI manifest --- agent/iso_no_registry.sh | 62 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/agent/iso_no_registry.sh b/agent/iso_no_registry.sh index d3397d6e2..f0209a9cb 100755 --- a/agent/iso_no_registry.sh +++ b/agent/iso_no_registry.sh @@ -102,6 +102,68 @@ function create_agent_iso_no_registry() { rm -rf "${asset_dir}"/src popd + + inject_iri_manifest_into_ove_iso +} + +function inject_iri_manifest_into_ove_iso() { + local agent_iso_no_registry + agent_iso_no_registry=$(get_agent_iso_no_registry) + + local release_version + release_version=$(oc adm release info --registry-config "$PULL_SECRET_FILE" "$OPENSHIFT_RELEASE_IMAGE" -o json | jq -r '.metadata.version') + + local version_for_tag="${release_version}" + if [[ "${OPENSHIFT_RELEASE_TYPE}" != "ci" ]] && [[ "${OPENSHIFT_RELEASE_TYPE}" != "nightly" ]]; then + version_for_tag="${release_version}-x86_64" + fi + + local ocp_bundle_str="ocp-release-bundle-${version_for_tag}" + if [[ ${#ocp_bundle_str} -gt 64 ]]; then + ocp_bundle_str="${ocp_bundle_str:0:64}" + fi + + local manifest_content + manifest_content=$(cat < "${ign_temp_path}/iso.ign" + + jq --arg path "/etc/assisted/extra-manifests/internalreleaseimage.yaml" \ + --arg source "data:text/plain;charset=utf-8;base64,${manifest_b64}" \ + '.storage.files = [.storage.files[] | select(.path != $path)] + [{"path": $path, "mode": 420, "overwrite": true, "contents": {"source": $source}}]' \ + < "${ign_temp_path}/iso.ign" > "${ign_temp_path}/modified.ign" + + echo "Embedding modified ignition with IRI manifest..." + podman run --privileged --rm \ + -v /run/udev:/run/udev \ + -v "${agent_iso_no_registry}:/data/agent.iso" \ + -v "${ign_temp_path}/modified.ign:/data/modified.ign" \ + -w /data \ + quay.io/coreos/coreos-installer:release iso ignition embed -f -i modified.ign agent.iso + + rm -rf "${ign_temp_path}" + echo "IRI manifest injected into OVE ISO" } # Deletes all files and directories under asset_dir