diff --git a/Makefile.version.aarch64.var b/Makefile.version.aarch64.var index e369b9f742..d67b7b737f 100644 --- a/Makefile.version.aarch64.var +++ b/Makefile.version.aarch64.var @@ -1 +1 @@ -OCP_VERSION := 4.22.0-0.nightly-arm64-2026-04-02-213117 +OCP_VERSION := 5.0.0-0.nightly-arm64-2026-04-16-232425 diff --git a/Makefile.version.x86_64.var b/Makefile.version.x86_64.var index 6f87f834f1..1b8b4f7d90 100644 --- a/Makefile.version.x86_64.var +++ b/Makefile.version.x86_64.var @@ -1 +1 @@ -OCP_VERSION := 4.22.0-0.nightly-2026-04-01-223038 +OCP_VERSION := 5.0.0-0.nightly-2026-04-16-172425 diff --git a/assets/components/multus/kustomization.aarch64.yaml b/assets/components/multus/kustomization.aarch64.yaml index 6036fc726b..f50dea3f53 100644 --- a/assets/components/multus/kustomization.aarch64.yaml +++ b/assets/components/multus/kustomization.aarch64.yaml @@ -1,8 +1,8 @@ images: - name: multus-cni-microshift - newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:bfb904a68e228e2fc306f4b69646c3a733cff4c10e6fda7fe75df3174c818ae2 + newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev + digest: sha256:eb6b8347d088bebcf85a1cec86d78330fbd99dbdfef75cdaba2a5f28d9323a5d - name: containernetworking-plugins-microshift - newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:6ad7f1c820b2b007971c60cdcf85dff0f20bc2f2b3c8b1fe5226522322b2792d + newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev + digest: sha256:464cca590482118bb8263385816d870b3143215b66ef4a109138f9e665f73da0 diff --git a/assets/components/multus/kustomization.x86_64.yaml b/assets/components/multus/kustomization.x86_64.yaml index 8d63c55a14..f919b8b7aa 100644 --- a/assets/components/multus/kustomization.x86_64.yaml +++ b/assets/components/multus/kustomization.x86_64.yaml @@ -1,8 +1,8 @@ images: - name: multus-cni-microshift - newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:6fc2898a173a8a6831fcf079c9b8afb66851d2fc066ada6285e9fdb176f5d1fe + newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev + digest: sha256:ee8059698e26e4376215c0df71ed72e548e7334be4061272bd3ca6087533cb6c - name: containernetworking-plugins-microshift - newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:6650ccac2f542d305f2dbf1c607da0b4b514f08a6f80b787b11c0d7659195e74 + newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev + digest: sha256:10729eece790c49f196e44ad121dd632f6a5722b3c0a4c49c76e151983c1f71d diff --git a/assets/components/multus/release-multus-aarch64.json b/assets/components/multus/release-multus-aarch64.json index 71c61fca97..bc0e9a73ef 100644 --- a/assets/components/multus/release-multus-aarch64.json +++ b/assets/components/multus/release-multus-aarch64.json @@ -1,9 +1,9 @@ { "release": { - "base": "4.22.0-0.nightly-arm64-2026-04-02-213117" + "base": "5.0.0-0.nightly-arm64-2026-04-16-232425" }, "images": { - "multus-cni-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:bfb904a68e228e2fc306f4b69646c3a733cff4c10e6fda7fe75df3174c818ae2", - "containernetworking-plugins-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6ad7f1c820b2b007971c60cdcf85dff0f20bc2f2b3c8b1fe5226522322b2792d" + "multus-cni-microshift": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:eb6b8347d088bebcf85a1cec86d78330fbd99dbdfef75cdaba2a5f28d9323a5d", + "containernetworking-plugins-microshift": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:464cca590482118bb8263385816d870b3143215b66ef4a109138f9e665f73da0" } } diff --git a/assets/components/multus/release-multus-x86_64.json b/assets/components/multus/release-multus-x86_64.json index 484c2c44d5..314dadef93 100644 --- a/assets/components/multus/release-multus-x86_64.json +++ b/assets/components/multus/release-multus-x86_64.json @@ -1,9 +1,9 @@ { "release": { - "base": "4.22.0-0.nightly-2026-04-01-223038" + "base": "5.0.0-0.nightly-2026-04-16-172425" }, "images": { - "multus-cni-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6fc2898a173a8a6831fcf079c9b8afb66851d2fc066ada6285e9fdb176f5d1fe", - "containernetworking-plugins-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6650ccac2f542d305f2dbf1c607da0b4b514f08a6f80b787b11c0d7659195e74" + "multus-cni-microshift": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:ee8059698e26e4376215c0df71ed72e548e7334be4061272bd3ca6087533cb6c", + "containernetworking-plugins-microshift": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:10729eece790c49f196e44ad121dd632f6a5722b3c0a4c49c76e151983c1f71d" } } diff --git a/assets/components/service-ca/clusterrole.yaml b/assets/components/service-ca/clusterrole.yaml index 4ef03dc5cf..2a24b9489b 100644 --- a/assets/components/service-ca/clusterrole.yaml +++ b/assets/components/service-ca/clusterrole.yaml @@ -78,3 +78,19 @@ rules: - get - list - watch +- apiGroups: + - config.openshift.io + resources: + - featuregates + verbs: + - get + - list + - watch +- apiGroups: + - config.openshift.io + resources: + - pkis + verbs: + - get + - list + - watch diff --git a/assets/components/service-ca/deployment.yaml b/assets/components/service-ca/deployment.yaml index fc27a300fb..f51d49b47d 100644 --- a/assets/components/service-ca/deployment.yaml +++ b/assets/components/service-ca/deployment.yaml @@ -37,6 +37,8 @@ spec: requests: memory: 120Mi cpu: 10m + env: + - name: OPERATOR_IMAGE_VERSION terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /var/run/secrets/signing-key diff --git a/assets/optional/operator-lifecycle-manager/kustomization.aarch64.yaml b/assets/optional/operator-lifecycle-manager/kustomization.aarch64.yaml index 20bf82baa4..ade29ea678 100644 --- a/assets/optional/operator-lifecycle-manager/kustomization.aarch64.yaml +++ b/assets/optional/operator-lifecycle-manager/kustomization.aarch64.yaml @@ -1,14 +1,14 @@ images: - name: quay.io/operator-framework/olm - newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:ff87b8ca01872de4f6fddf890f0e7a243b179376f200567300b1c2c1918e5402 + newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev + digest: sha256:4a1ea3c63005636dbb62b68219c1059bccd2c6b60d59074dbf3356da7f0376b5 - name: quay.io/operator-framework/configmap-operator-registry - newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:00f42ea149e7b5ab62b08da79da65bcd7e0785442bd5ee0314b924fbeb0df975 + newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev + digest: sha256:5c51341a1d1721b79d168547f301260d7c907f24268a9677f40c2dc4b759abba - name: quay.io/openshift/origin-kube-rbac-proxy - newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:b2a0c592a6105fcba0299bcebf9c6079015f533bc2ebb8791e7953b26861c788 + newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev + digest: sha256:d4cb8ac0d9bd423f6f21c4746492568dae7514c7f4a6a38c02a400bc84a330d1 patches: - patch: |- @@ -16,12 +16,12 @@ patches: path: /spec/template/spec/containers/0/env/- value: name: OPERATOR_REGISTRY_IMAGE - value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:00f42ea149e7b5ab62b08da79da65bcd7e0785442bd5ee0314b924fbeb0df975 + value: quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:5c51341a1d1721b79d168547f301260d7c907f24268a9677f40c2dc4b759abba - op: add path: /spec/template/spec/containers/0/env/- value: name: OLM_IMAGE - value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:ff87b8ca01872de4f6fddf890f0e7a243b179376f200567300b1c2c1918e5402 + value: quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:4a1ea3c63005636dbb62b68219c1059bccd2c6b60d59074dbf3356da7f0376b5 target: kind: Deployment labelSelector: app=catalog-operator diff --git a/assets/optional/operator-lifecycle-manager/kustomization.x86_64.yaml b/assets/optional/operator-lifecycle-manager/kustomization.x86_64.yaml index 608e46929e..c7c77f6d64 100644 --- a/assets/optional/operator-lifecycle-manager/kustomization.x86_64.yaml +++ b/assets/optional/operator-lifecycle-manager/kustomization.x86_64.yaml @@ -1,14 +1,14 @@ images: - name: quay.io/operator-framework/olm - newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:d0356b881554c2579ab4eabcd2433c0ec548df35766f03f0d03a87204742b8d2 + newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev + digest: sha256:3486df8d22a1d6da876f336fb0834b5b821d6755a74326902d441b694952412b - name: quay.io/operator-framework/configmap-operator-registry - newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:fdf853cfa6b7b84c9b009bb3b81e4a896e97df95d9ea3657d0851a855311b2d8 + newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev + digest: sha256:697a6935830840e75e281f717c0a6d201fa2e8a4c1dbeaff2dfb2ea0ef7a5522 - name: quay.io/openshift/origin-kube-rbac-proxy - newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:57a72fc145d1d8c46ea65ed851c48c96c3b3b3e7775a7ddddb1f7463ba4a3743 + newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev + digest: sha256:99226d69076922896e9ff9e8e46542baa477bf833d90775140f3128b18ce9e5b patches: - patch: |- @@ -16,12 +16,12 @@ patches: path: /spec/template/spec/containers/0/env/- value: name: OPERATOR_REGISTRY_IMAGE - value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:fdf853cfa6b7b84c9b009bb3b81e4a896e97df95d9ea3657d0851a855311b2d8 + value: quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:697a6935830840e75e281f717c0a6d201fa2e8a4c1dbeaff2dfb2ea0ef7a5522 - op: add path: /spec/template/spec/containers/0/env/- value: name: OLM_IMAGE - value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d0356b881554c2579ab4eabcd2433c0ec548df35766f03f0d03a87204742b8d2 + value: quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:3486df8d22a1d6da876f336fb0834b5b821d6755a74326902d441b694952412b target: kind: Deployment labelSelector: app=catalog-operator diff --git a/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json b/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json index 1a5194a163..8d7c556c9a 100644 --- a/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json +++ b/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json @@ -1,10 +1,10 @@ { "release": { - "base": "4.22.0-0.nightly-arm64-2026-04-02-213117" + "base": "5.0.0-0.nightly-arm64-2026-04-16-232425" }, "images": { - "operator-lifecycle-manager": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:ff87b8ca01872de4f6fddf890f0e7a243b179376f200567300b1c2c1918e5402", - "operator-registry": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:00f42ea149e7b5ab62b08da79da65bcd7e0785442bd5ee0314b924fbeb0df975", - "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a0c592a6105fcba0299bcebf9c6079015f533bc2ebb8791e7953b26861c788" + "operator-lifecycle-manager": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:4a1ea3c63005636dbb62b68219c1059bccd2c6b60d59074dbf3356da7f0376b5", + "operator-registry": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:5c51341a1d1721b79d168547f301260d7c907f24268a9677f40c2dc4b759abba", + "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:d4cb8ac0d9bd423f6f21c4746492568dae7514c7f4a6a38c02a400bc84a330d1" } } diff --git a/assets/optional/operator-lifecycle-manager/release-olm-x86_64.json b/assets/optional/operator-lifecycle-manager/release-olm-x86_64.json index 15f759a1dc..f0f3407afd 100644 --- a/assets/optional/operator-lifecycle-manager/release-olm-x86_64.json +++ b/assets/optional/operator-lifecycle-manager/release-olm-x86_64.json @@ -1,10 +1,10 @@ { "release": { - "base": "4.22.0-0.nightly-2026-04-01-223038" + "base": "5.0.0-0.nightly-2026-04-16-172425" }, "images": { - "operator-lifecycle-manager": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d0356b881554c2579ab4eabcd2433c0ec548df35766f03f0d03a87204742b8d2", - "operator-registry": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:fdf853cfa6b7b84c9b009bb3b81e4a896e97df95d9ea3657d0851a855311b2d8", - "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:57a72fc145d1d8c46ea65ed851c48c96c3b3b3e7775a7ddddb1f7463ba4a3743" + "operator-lifecycle-manager": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:3486df8d22a1d6da876f336fb0834b5b821d6755a74326902d441b694952412b", + "operator-registry": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:697a6935830840e75e281f717c0a6d201fa2e8a4c1dbeaff2dfb2ea0ef7a5522", + "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:99226d69076922896e9ff9e8e46542baa477bf833d90775140f3128b18ce9e5b" } } diff --git a/assets/release/release-aarch64.json b/assets/release/release-aarch64.json index 596e4cd30e..129753f1ca 100644 --- a/assets/release/release-aarch64.json +++ b/assets/release/release-aarch64.json @@ -1,16 +1,16 @@ { "release": { - "base": "4.22.0-0.nightly-arm64-2026-04-02-213117" + "base": "5.0.0-0.nightly-arm64-2026-04-16-232425" }, "images": { - "cli": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:835082ac6f84153d7db69efe76862e92c29fd251803be928209e98f187c1bc8d", - "coredns": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7abb8320c380cfc7d75599f01e96907d1b9562a1be4a5e800c25b62de24eff62", - "haproxy-router": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:fdb988f8075078798dc00de52f75d4b9c7aa9d80ffdd202fd7476a5de7430c91", - "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b2a0c592a6105fcba0299bcebf9c6079015f533bc2ebb8791e7953b26861c788", - "ovn-kubernetes-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:ef9cad701c4c04fc7677bce9bdae0f39609f5c3578feb97c95c4ea0d5d9b8573", - "pod": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:0eee7f97711c71d3a4c559c0063d9752ccddc563e196b6a876a5184402495a86", - "service-ca-operator": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:433aa7050a25cf8eacbca42a490c715334f42ddb8c894036dfb3bed430a3a92e", + "cli": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:c8de3e103b12e4521076a7056d65f9becfa015894a27576ad2582d9200a5849f", + "coredns": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:307ddfbdb0e221839c71c02a38484fd6f7c6f8efa5d162b968fa224f73a1855b", + "haproxy-router": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:77512153a5706d12001f4e4615a9df9ee97f3715d7fd66ad3356ca6bf62ae69b", + "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:d4cb8ac0d9bd423f6f21c4746492568dae7514c7f4a6a38c02a400bc84a330d1", + "ovn-kubernetes-microshift": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:9760316816f8a91e97f447dec17f6484dad15513cdced87cc57648fca9687402", + "pod": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:daa4e16c74261dfef83e76f804a6d46447d2ebf134267c663570566797c5e02a", + "service-ca-operator": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:27859086f1689e5dc15dd90aa6a32bcfa472bedc91e24b41d0725e78402b6552", "lvms_operator": "registry.redhat.io/lvms4/lvms-rhel9-operator@sha256:3766640b19c336b443619ecdb35f36b479c79ea71b21de97febf024a5eaf6c84", - "csi-snapshot-controller": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:dc954461f464bb9a26fbfa41aa3f9275d382fe0e529185827b829f5e1b075eb5" + "csi-snapshot-controller": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:49de8598fb75c91e8a1dd1d2b2db58c58eb2f2f2ea8e50bdd8d5a7068d4b1158" } } diff --git a/assets/release/release-x86_64.json b/assets/release/release-x86_64.json index b1696f4930..a363a1cecb 100644 --- a/assets/release/release-x86_64.json +++ b/assets/release/release-x86_64.json @@ -1,16 +1,16 @@ { "release": { - "base": "4.22.0-0.nightly-2026-04-01-223038" + "base": "5.0.0-0.nightly-2026-04-16-172425" }, "images": { - "cli": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:04f7a852610d92a3c751cc9a1d095349498027ab01199d177bf798b116fd1d8b", - "coredns": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7386c18b14ce499057b6cf9494d48ec02fe0f13474767306ff78f443c90d1450", - "haproxy-router": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:56078e74606f8111c021a599acae8779c787a6803bebba40b3b8c36b5a5469a6", - "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:57a72fc145d1d8c46ea65ed851c48c96c3b3b3e7775a7ddddb1f7463ba4a3743", - "ovn-kubernetes-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5a57fe2d1c81778088dacc9992dc54a5c37df54904384a83285a23b1a4c654a5", - "pod": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e33f10b68b3d6e40f059734d7943d995c792c79d2ca64d31f3d15f7e9d8ce807", - "service-ca-operator": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6fcebe23dec478754c6d867eea754a7319d7f6919ee95cea8f47561ac6ecbf24", + "cli": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:b41de1f2cd52ef59125223e3f563826e372593cae70ebdf7bae35e8b2a3b98b2", + "coredns": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:b6c13ac7d813b23a2ef28f4005da58f1161eeee35fd12b8a272f6d1888267f99", + "haproxy-router": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:905a1225d64d35b7e10236cc2de46341049efaf40d385e5376ecb23de64c777f", + "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:99226d69076922896e9ff9e8e46542baa477bf833d90775140f3128b18ce9e5b", + "ovn-kubernetes-microshift": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:21fad56affa5aa8925f9eba4e9d656d00b1720127bc5915b0c2e8b96ffb72cf2", + "pod": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:b2c4aba5b37248adf70a343d02ba3a89fcf2a002e94f2f4b6f9892acb0008c56", + "service-ca-operator": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:ec1502a640fb930fa3cc69e6de6031d75fbbedaa43868aa5c1f0611652d8b99e", "lvms_operator": "registry.redhat.io/lvms4/lvms-rhel9-operator@sha256:58804d8baf922927b66cec9424d431a3bdb341d207024ce40cc8f0123bac03ee", - "csi-snapshot-controller": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:fbb958e9953a5af8bc2a8b93e5351559df3b22663e5578bcaae69d5863020cc8" + "csi-snapshot-controller": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:b94c727235d7529524a94382a9b77e974d850e67fb5b53e193755e7f6950c2d5" } } diff --git a/etcd/go.mod b/etcd/go.mod index 04d82f8b40..dee4ffc66c 100644 --- a/etcd/go.mod +++ b/etcd/go.mod @@ -5,7 +5,7 @@ go 1.25.0 replace github.com/openshift/microshift => ../ require ( - github.com/openshift/api v0.0.0-20260402091533-d0af9d722390 + github.com/openshift/api v0.0.0-20260416215613-f9587f6e7c60 github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af github.com/openshift/microshift v0.0.0-00010101000000-000000000000 github.com/spf13/cobra v1.10.2 diff --git a/etcd/go.sum b/etcd/go.sum index 7ea290207d..e76f75e6b9 100644 --- a/etcd/go.sum +++ b/etcd/go.sum @@ -152,8 +152,8 @@ github.com/oklog/run v1.2.0 h1:O8x3yXwah4A73hJdlrwo/2X6J62gE5qTMusH0dvz60E= github.com/oklog/run v1.2.0/go.mod h1:mgDbKRSwPhJfesJ4PntqFUbKQRZ50NgmZTSPlFA0YFk= github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k= -github.com/openshift/api v0.0.0-20260402091533-d0af9d722390 h1:tzmI6HyEB/2gQu3NEo/qzFsy2IMyuYaSy64Sg8vv5UI= -github.com/openshift/api v0.0.0-20260402091533-d0af9d722390/go.mod h1:pyVjK0nZ4sRs4fuQVQ4rubsJdahI1PB94LnQ8sGdvxo= +github.com/openshift/api v0.0.0-20260416215613-f9587f6e7c60 h1:/BT4yqpRo6O21GkacqhE7opGGjPvYOjfzecNggZq0QQ= +github.com/openshift/api v0.0.0-20260416215613-f9587f6e7c60/go.mod h1:pyVjK0nZ4sRs4fuQVQ4rubsJdahI1PB94LnQ8sGdvxo= github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af h1:UiYYMi/CCV+kwWrXuXfuUSOY2yNXOpWpNVgHc6aLQlE= github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af/go.mod h1:8jcm8UPtg2mCAsxfqKil1xrmRMI3a+XU2TZ9fF8A7TE= github.com/openshift/etcd/api/v3 v3.5.0-alpha.0.0.20260312150232-d8d67b8ce849 h1:em2blvFukNrVPlEZuMA1rHioi0eFjSk5qvV/Yp02HxQ= diff --git a/etcd/vendor/modules.txt b/etcd/vendor/modules.txt index d30f71fd9b..4045f50859 100644 --- a/etcd/vendor/modules.txt +++ b/etcd/vendor/modules.txt @@ -197,7 +197,7 @@ github.com/munnerz/goautoneg # github.com/oklog/run v1.2.0 ## explicit; go 1.20 github.com/oklog/run -# github.com/openshift/api v0.0.0-20260402091533-d0af9d722390 +# github.com/openshift/api v0.0.0-20260416215613-f9587f6e7c60 ## explicit; go 1.25.0 github.com/openshift/api/config/v1 github.com/openshift/api/operator/v1 diff --git a/packaging/crio.conf.d/10-microshift_amd64.conf b/packaging/crio.conf.d/10-microshift_amd64.conf index 5f56db49ae..c12516a789 100644 --- a/packaging/crio.conf.d/10-microshift_amd64.conf +++ b/packaging/crio.conf.d/10-microshift_amd64.conf @@ -2,6 +2,6 @@ # for community builds on top of OKD, this setting has no effect [crio.image] global_auth_file="/etc/crio/openshift-pull-secret" -pause_image = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e33f10b68b3d6e40f059734d7943d995c792c79d2ca64d31f3d15f7e9d8ce807" +pause_image = "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:b2c4aba5b37248adf70a343d02ba3a89fcf2a002e94f2f4b6f9892acb0008c56" pause_image_auth_file = "/etc/crio/openshift-pull-secret" pause_command = "/usr/bin/pod" diff --git a/packaging/crio.conf.d/10-microshift_arm64.conf b/packaging/crio.conf.d/10-microshift_arm64.conf index 39826fb65b..82492a7555 100644 --- a/packaging/crio.conf.d/10-microshift_arm64.conf +++ b/packaging/crio.conf.d/10-microshift_arm64.conf @@ -2,6 +2,6 @@ # for community builds on top of OKD, this setting has no effect [crio.image] global_auth_file="/etc/crio/openshift-pull-secret" -pause_image = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:0eee7f97711c71d3a4c559c0063d9752ccddc563e196b6a876a5184402495a86" +pause_image = "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:daa4e16c74261dfef83e76f804a6d46447d2ebf134267c663570566797c5e02a" pause_image_auth_file = "/etc/crio/openshift-pull-secret" pause_command = "/usr/bin/pod" diff --git a/pkg/admin/prerun/version.go b/pkg/admin/prerun/version.go index f31bb39096..ecb995c51e 100644 --- a/pkg/admin/prerun/version.go +++ b/pkg/admin/prerun/version.go @@ -30,6 +30,31 @@ type versionFile struct { const MAX_VERSION_SKEW = 2 +// lastMinorForMajor defines the last minor version for each major version +// before the next major begins. +var lastMinorForMajor = map[int]int{ + 4: 22, +} + +// linearVersion flattens a Major.Minor version into a single monotonically +// increasing integer so that cross-major upgrades can be compared using +// simple arithmetic. +// It counts how many minor versions existed in all previous majors, then +// adds the current minor. For example, major 4 had minors 0 through 22 +// (23 versions), so major 5 starts at offset 23: +func linearVersion(ver versionMetadata) (int, error) { + linear := 0 + for major := 4; major < ver.Major; major++ { + last, ok := lastMinorForMajor[major] + if !ok { + return 0, fmt.Errorf("unknown major version %d in version map", major) + } + linear += last + 1 + } + linear += ver.Minor + return linear, nil +} + func (hi *versionFile) BackupName() data.BackupName { return data.BackupName(fmt.Sprintf("%s_%s", hi.DeploymentID, hi.BootID)) } @@ -298,32 +323,39 @@ func GetVersionStringOfData() string { } // checkVersionCompatibility compares versions of executable and existing data -// to detect unsupported version changes +// to detect unsupported version changes such as downgrades or upgrades that +// skip too many minor versions. Uses linearVersion to handle cross-major +// boundaries transparently (e.g. 4.22 -> 5.0 is treated as a single minor +// version upgrade). func checkVersionCompatibility(execVer, dataVer versionMetadata) error { if execVer == dataVer { klog.InfoS("Executable and data versions are the same - continuing") return nil } - if execVer.Major != dataVer.Major { - return fmt.Errorf("major versions are different: %d and %d", dataVer.Major, execVer.Major) + execLinear, err := linearVersion(execVer) + if err != nil { + return err + } + dataLinear, err := linearVersion(dataVer) + if err != nil { + return err } - if execVer.Minor < dataVer.Minor { - return fmt.Errorf("executable (%s) is older than existing data (%s): migrating data to older version is not supported", execVer.String(), dataVer.String()) + if execLinear < dataLinear { + return fmt.Errorf("executable (%s) is older than existing data (%s): "+ + "migrating data to older version is not supported", + execVer.String(), dataVer.String()) } - if execVer.Minor > dataVer.Minor { - versionSkew := execVer.Minor - dataVer.Minor - if versionSkew <= MAX_VERSION_SKEW { - klog.Infof("Executable is newer than data by %d minor versions, continuing", versionSkew) - return nil - } else { - return fmt.Errorf("executable (%s) is too recent compared to existing data (%s): minor version difference is %d, maximum allowed difference is %d", - execVer.String(), dataVer.String(), versionSkew, MAX_VERSION_SKEW) - } + skew := execLinear - dataLinear + if skew > MAX_VERSION_SKEW { + return fmt.Errorf("executable (%s) is too recent compared to existing data (%s): "+ + "version distance is %d, maximum allowed is %d", + execVer.String(), dataVer.String(), skew, MAX_VERSION_SKEW) } - klog.InfoS("All version checks passed") + klog.Infof("Version upgrade from %s to %s (distance %d), continuing", + dataVer.String(), execVer.String(), skew) return nil } diff --git a/pkg/admin/prerun/version_test.go b/pkg/admin/prerun/version_test.go index 2e29239347..dc3f500691 100644 --- a/pkg/admin/prerun/version_test.go +++ b/pkg/admin/prerun/version_test.go @@ -20,12 +20,6 @@ func TestCheckVersionDiff(t *testing.T) { dataVer: versionMetadata{Major: 4, Minor: 14}, errExpected: false, }, - { - name: "X versions must be the same", - execVer: versionMetadata{Major: 4, Minor: 14}, - dataVer: versionMetadata{Major: 5, Minor: 14}, - errExpected: true, - }, { name: "binary must not be older than data", execVer: versionMetadata{Major: 4, Minor: 14}, @@ -50,6 +44,42 @@ func TestCheckVersionDiff(t *testing.T) { dataVer: versionMetadata{Major: 4, Minor: 13}, errExpected: true, }, + { + name: "cross-major upgrade 4.22 to 5.0 allowed (distance 1)", + execVer: versionMetadata{Major: 5, Minor: 0}, + dataVer: versionMetadata{Major: 4, Minor: 22}, + errExpected: false, + }, + { + name: "cross-major upgrade 4.21 to 5.0 allowed (distance 2)", + execVer: versionMetadata{Major: 5, Minor: 0}, + dataVer: versionMetadata{Major: 4, Minor: 21}, + errExpected: false, + }, + { + name: "cross-major upgrade 4.20 to 5.0 blocked (distance 3)", + execVer: versionMetadata{Major: 5, Minor: 0}, + dataVer: versionMetadata{Major: 4, Minor: 20}, + errExpected: true, + }, + { + name: "cross-major downgrade 5.0 to 4.22 blocked", + execVer: versionMetadata{Major: 4, Minor: 22}, + dataVer: versionMetadata{Major: 5, Minor: 0}, + errExpected: true, + }, + { + name: "cross-major upgrade 4.22 to 5.1 allowed (distance 2)", + execVer: versionMetadata{Major: 5, Minor: 1}, + dataVer: versionMetadata{Major: 4, Minor: 22}, + errExpected: false, + }, + { + name: "same major upgrade 5.0 to 5.1 allowed", + execVer: versionMetadata{Major: 5, Minor: 1}, + dataVer: versionMetadata{Major: 5, Minor: 0}, + errExpected: false, + }, } for _, td := range testData { diff --git a/scripts/auto-rebase/changelog.txt b/scripts/auto-rebase/changelog.txt index 0e06f91661..ed959e1c8f 100644 --- a/scripts/auto-rebase/changelog.txt +++ b/scripts/auto-rebase/changelog.txt @@ -1,18 +1,344 @@ -- api embedded-component 80fcf457ee87d9a81075bcc4e6deac506448195f to e9d6d439b48bfa2d127ee90c28e6d0f55243b620 - - ceacb94c 2026-03-24T09:40:44+05:30 kubebuilder validation and clarified API behavior for KubeletConfig API doc and adds tests - - 13eaa95e 2026-03-02T18:23:59+05:30 kubebuilder validation and clarified API behavior for KubeletConfig API doc and adds tests - -- cluster-ingress-operator embedded-component dfec6c028e2d4eaf7dd161cdc0e75740894df421 to c79099dcdc4e58f5a0d55a47b626a805a02af526 - - eeb09ed 2026-03-30T14:26:32-04:00 NE-2501: Added network policies for the router - -- machine-config-operator embedded-component 39ca98383d9b1aedf6147f9ff89e69b5a23541be to f325e92327ccfcda3ff09c09dc1b233a63fb312b - - db7b8e1e 2026-04-01T11:47:17Z MCO-2183: migrated configdrift, kubeletconfig, containerruntimeconfig and metrics e2e test cases - - 34cd2aa2 2026-03-13T17:30:09+01:00 OCPBUGS-78154: Add GetDefaultLeaderElectionConfig for MCC - - 65d648b8 2026-03-13T16:22:34+01:00 OCPBUGS-78154: Log when using HA default leader election timings - - 165da5a9 2026-03-13T15:56:37+01:00 OCPBUGS-78154: Add useDefaultTimings flag to GetLeaderElectionConfig - - f016a8e8 2026-03-13T09:58:06+01:00 Trim comment in GetLeaderElectionConfig. - - a7b45feb 2026-03-13T09:52:13+01:00 OCPBUGS-78154: Use HA leader election defaults for MCO on SNO. - -- oc image-arm64 f835dae3a861b593c4dd8b688394a61614dd6663 to 075cd278d1e62cf49b266e157891967bda16079d +- api embedded-component e9d6d439b48bfa2d127ee90c28e6d0f55243b620 to 464776f9520793f0f20645fbcb82d945abb0a05b + - 22d3aa19 2026-04-07T14:26:51+02:00 MON-4035: Add ThanosQuerierConfig to ClusterMonitoring API + - e63c0d57 2026-04-07T16:42:28+12:00 OCPBUGS-81627: Load ClusterResourceQuota CRD before CVO manifests + - 1966dc1a 2026-04-06T16:02:49-04:00 upkeep: add jobtier for tnf jobs to allow verify to check tests + - e7b9c574 2026-04-06T16:02:49-04:00 Regenerate CRDs and features.md after rebase onto master + - bc83f5af 2026-04-06T16:02:49-04:00 Enable DualReplica in OKD featureset + - 682edbd4 2026-04-06T16:02:49-04:00 Promote DualReplica to default + - b8c3b96d 2026-04-06T14:49:50-04:00 feat: remove pacemaker from payload deployment + - 7480ccda 2026-04-02T23:53:03+01:00 Add extra padding to avoid table being cut-off + - a7d84d8f 2026-04-02T23:53:01+01:00 Use static ordering of job variants in HTML output + - 492ac673 2026-04-02T14:38:52-04:00 upkeep: lowered the validation for agents down to 0 + - e9e6359f 2026-04-02T12:34:05-04:00 feat: add exclusion for pacemaker required conditions + - 3f0cd07e 2026-04-02T10:37:31-04:00 feat: promote pacemaker to v1 in prep for tnf + - 71580b7e 2026-04-02T09:35:09-04:00 NE-2520: Promote GatewayAPIWithoutOLM to GA + - 72cac067 2026-04-01T14:05:14-04:00 Include candidate tier in default sippy queries for feature promotion + - 78c930f0 2026-03-31T12:59:48-04:00 Remove GCPClusterHostedDNSInstall featuregate + - a443b3b6 2026-03-26T11:21:00+01:00 CNTRLPLANE-2796: promote the event-ttl feature + +- cluster-csi-snapshot-controller-operator embedded-component 98d8223ebe55a0ddc10bb485e7603deb2c0acbb9 to 108f37f0e378accc322cbeb68136ec500ec35b94 + - f3e4439 2026-04-10T14:38:09+02:00 Fix PDB unhealthyPodEvictionPolicy field name + +- cluster-ingress-operator embedded-component c79099dcdc4e58f5a0d55a47b626a805a02af526 to 2c5b4ef0021db96ba6fecf630c53a15c12134578 + - 210a341 2026-04-09T17:01:02-04:00 OCPBUGS-81550: AWS, Azure, GCP: Add Ingress LB IPs to Infra CR after masters up + - 5ce7d1c 2026-04-03T13:08:44-04:00 NE-2332: Implement ROUTER_CURVES environment variable + - d71ebcb 2026-04-02T20:53:38-03:00 Address review comments + - 07482a1 2026-04-02T20:49:51-03:00 extend subscription unittest to contain expected subscription + - e71c658 2026-04-02T20:49:51-03:00 Address review comments and make pkg name a constant + - 9533689 2026-04-02T20:49:51-03:00 Add unit tests for the new subscription conflict management logic + - 9dee19f 2026-04-02T20:49:51-03:00 fix the logic to verify if package is installed + - 0d9d740 2026-04-02T20:49:51-03:00 Add status conditions to OSSM subscription takeover + - 27a962a 2026-04-02T20:49:51-03:00 Address comments + - e1691ac 2026-04-02T20:49:51-03:00 Add every ossm subscription to state and to related objects + - a80bbff 2026-04-02T20:49:50-03:00 NE-2224: Do not take over OSSM subscription + - 0da1246 2026-03-27T19:48:03-04:00 OCPBUGS-3917: Filter non-FIPS TLS 1.3 ciphers and validate effective profiles + +- cluster-kube-apiserver-operator embedded-component de2a3ebcb3ceea0ea411a6fbb9b5b52c18c27e06 to 8cb1bc8cfe4266126010678bbd21b8a49accd7d0 + - 9dffd09 2026-04-09T14:29:55-04:00 certrotationcontroller: add configurable pki parameters + - c929452 2026-04-09T14:29:55-04:00 vendor: bump + - f0b1025 2026-03-23T17:29:05-04:00 Update pkg/operator/starter.go + - bf51996 2026-03-23T10:41:37-04:00 add network policies for apiserver operator and operand + - 3c124fc 2026-03-18T09:05:18+01:00 bindata/bootkube: Remove configmap-csr-controller-ca.yaml + - d22154c 2026-02-23T12:19:42-05:00 scc: fix uid{Min,Max}Range for nested-container + +- cluster-kube-controller-manager-operator embedded-component 7df2876085ac1d76ac11bf476c0538876110c9f0 to e2d54f2da0346309b329c34552d9896476683fc8 + - 295165e 2026-04-09T21:08:09Z CNTRLPLANE-3011: Create network policies for kube-controller-manager components (#919) + - f6a1d00 2026-04-09T16:37:45-04:00 enable configurable PKI for managed certificate rotation + - e691655 2026-04-09T15:40:07-04:00 vendor: bump + - feaa384 2026-03-17T16:01:18+01:00 bindata: Import configmap-csr-controller-ca.yaml from KAS-O + +- cluster-kube-scheduler-operator embedded-component ddbfddb8a0c77b03c1d7c994991caa031d99c330 to b80850a15da8485c52c486de30cec79600782206 + - 7a7f230 2026-04-10T11:59:15-04:00 vendor: bump library-go, api, client-go + - 4fafb58 2026-03-18T14:17:11+01:00 Add operator and operand network policies + +- cluster-network-operator embedded-component 594de43f4f1567e5ce55be2eff7c0cf28d1e09e7 to d2bd842bcf9c3ecaff5fb5440a91ad4d96ea056c + - a5238cc 2026-04-08T16:37:58+02:00 Align VTEP CRD additionalPrinterColumns with upstream + - 996b1b8 2026-04-07T23:14:45-07:00 avoid false Progressing during reboot churn + - 740568c 2026-04-02T00:59:59+02:00 Add VTEP update/patch RBAC for CM + - f247bbe 2026-04-02T00:35:17+02:00 Update the CRDs for CUDN/VTEP APIs + - 7dc6fba 2026-03-25T06:02:03-04:00 Add NetworkPolicies for CNO and its operands + - 9fb14f4 2026-01-30T12:16:11+01:00 multus: MultiNetworkPolicy nftables + +- cluster-openshift-controller-manager-operator embedded-component e0d28ec9e1c91b0b72ff66c98f7a3b126f4480ad to e1c3674198c6c1274fd3fd3c3108eb4cade4eb0a + - e026db0 2026-04-08T22:41:21-07:00 Add checks to ensure that cache syncs were actually successful before proceeding. + - a3e56c2 2026-04-09T00:27:03Z add network policies (#414) + - 9b9fceb 2026-04-03T16:07:02-07:00 Ensure that we don't have operators performing transiently incorrect operations by acting on informer data before it's fully finished syncing. + +- machine-config-operator embedded-component f325e92327ccfcda3ff09c09dc1b233a63fb312b to 3da03918cca33a367671ebd80146b9db5f0408dc + - 8aa3c8ec 2026-04-15T14:28:47+02:00 Revert "Merge pull request #5797 from mkowalski/more-cpu-for-ovs" + - d639f33b 2026-04-09T09:22:19-04:00 e2e test fix + - 22b65522 2026-04-09T05:29:55-04:00 temporary fix for the MCN IRI status CEL validation rule + - c2cedd87 2026-04-09T10:44:00+05:30 fix: reuse PIS object from CreateGenericPinnedImageSet instead of creating a new one + - 80403a3c 2026-04-08T15:04:55-04:00 add missing verbs for mcd service role + - d1090728 2026-04-08T11:02:32-04:00 cleanup MCN on IRI deletion + - 411484cd 2026-04-08T08:05:24-04:00 various fixes + - 4adea70f 2026-04-08T08:05:24-04:00 add basic e2e test for MCD IRI + - caf52e26 2026-04-08T08:05:24-04:00 fix stale reference to FeatureGateMachineConfigNodes feature + - 06ff2047 2026-04-08T08:05:24-04:00 using MachineConfigNodeLister instead of the client + - 0a034891 2026-04-08T08:05:24-04:00 add MCD IRI unit tests + - 625c0d1c 2026-04-08T08:05:24-04:00 managed the MCN status + - d62207c3 2026-04-07T18:01:00+05:30 test: separate duplicate PinnedImageSet validation into OCP-88562 + - db039712 2026-04-06T15:00:16-04:00 bump openshift/api and openshift/client-go + - 85777fdd 2026-04-06T15:00:16-04:00 allows MCD to get IRI resource + - a5917687 2026-04-06T15:00:16-04:00 add MCD IRI manager + - 6e2b4d48 2026-04-06T14:30:38-04:00 update sharded e2e-ocl tests + - 3b6ef438 2026-04-06T14:30:38-04:00 only allow OSImageURL or setting OSImageStream name + - dd3cc64e 2026-04-06T14:30:38-04:00 remove unneeded test fixtures + - 21ba6d9c 2026-04-06T14:30:38-04:00 updates e2e-ocl test to use new MachineOSBuild constructor + - e1a1705c 2026-04-06T14:30:37-04:00 updated the reconciler to not use OSImageURLConfig + - ec546a10 2026-04-06T14:30:34-04:00 removes OSImageURLConfig from buildrequest module + - 1e5cc08e 2026-04-06T14:08:22-04:00 Reapply "MCO-2120: Rework OS Image Stream label classification" + - b63d34cf 2026-04-02T13:40:13-05:00 Move state logging to updateConfigAndState after SetDone + - 2f270e7e 2026-04-02T09:43:18-04:00 AGENT-1416: Add default NodeDisruptionPolicy for IRI + - c9cb2a15 2026-03-31T10:45:14-04:00 adds additional K8s secret test cases + - 9c244e06 2026-03-31T10:45:07-04:00 initial commit of machine-config-osimagestream + - b7189285 2026-03-30T13:33:55-04:00 Fix order of cleanup to further avoid race + - fcd6476b 2026-03-30T08:43:37-04:00 tests: add e2e test for OSStream labels on machines, machineSets, and controlPaneMachineSets + - e04826a9 2026-03-24T14:48:37+01:00 ovs: increase CPU priority for Open vSwitch Forwarding Unit + - afd3adfb 2025-12-10T16:43:55+01:00 OCPBUGS-63152: Fail wait-for-node-ip if primary IP(s) disappear + +- operator-framework-olm embedded-component 438f0e600e4ae75c8b7854afba5be963061eb2a1 to e627823c743797da91b4ae8a318d2420a511b752 + - fce118df 2026-04-09T00:03:55Z :seedling: Bump github.com/itchyny/gojq from 0.12.18 to 0.12.19 (#3810) + - afbf3c3e 2026-04-08T13:36:29-04:00 test(olm): skip ppc64le/s390x for tests using single-arch images + - 1a58fbf7 2026-04-08T00:05:03Z :seedling: Bump google.golang.org/grpc from 1.79.3 to 1.80.0 (#3809) + - 4ab4b031 2026-04-08T00:04:17Z :seedling: Bump go.podman.io/image/v5 from 5.39.1 to 5.39.2 (#3808) + - 98b602fa 2026-04-08T00:04:00Z :seedling: Bump github.com/maxbrunsfeld/counterfeiter/v6 (#3807) + - 09254b45 2026-04-04T00:04:30Z OPRUN-4519: block upgrades from 4.23 to 5.0 (#3803) + - 22ef120c 2026-04-01T00:04:23Z Add fgiudici as reviewer (#3805) + - 19fadf7d 2026-03-30T18:01:23-03:00 fix: retry transient registry errors in opm QE + +- service-ca-operator embedded-component 951ea66067b4d69c868470e26a5a1a9f689be23e to 7b3033bba87d7b40684b66f8f44a3525433d1ac7 + - d3b5a4d 2026-04-08T15:26:32-04:00 docs: document feature gate forwarding pattern + - 1790560 2026-04-08T15:25:12-04:00 fix: remove FeatureGate runtime detection from controller process + - 068f79d 2026-04-08T15:24:54-04:00 fix: consolidate feature gate forwarding to controller via CLI args + - ca5ae82 2026-04-02T10:20:04-04:00 fix: register informer before Start() to prevent WaitForCacheSync hang + - 9f8d755 2026-04-02T10:20:04-04:00 add feature gated PKI config support + - adc2776 2026-03-30T09:37:20-04:00 vendor: bump for openshift/library-go + - 769deb7 2026-03-18T14:15:18+01:00 manifests: add service-ca operator and workload network policies + +- oc image-amd64 12f8fce897cae737720309a894dac856d221485e to 66dee73f66c4f048c333c6a77d76871872027896 + - 0595c992 2026-04-10T15:01:30+02:00 claude: Split tester agent away from code-reviewer + - b2b2a40a 2026-04-07T14:19:27+01:00 Fix extraction of gated manifests using --install-config - 075cd278 2026-04-02T11:58:36Z NO-JIRA: Add feature gate changes to changelog JSON output (#2247) + - b2332831 2026-03-31T14:21:43-04:00 NO-ISSUE: recover the context in upgrade + +- ovn-kubernetes image-amd64 ee514f9f66a328f4dd4b583709a8e411b515fa5f to 90d101f8b4ebae811d1a0ea195d98a5a85ffaef1 + - c8fa46c0 2026-04-10T14:47:07Z openshift tests: demote to informing + - 5912b521 2026-04-09T19:41:07Z chore: update openshift tests + - 613c1a39 2026-04-09T21:19:48+02:00 Fix nil pointer panic in ParseNetConf for conflist configs + - af65f624 2026-04-08T19:43:35Z Bump the go_modules group across 2 directories with 4 updates + - c97a7eb0 2026-04-08T18:13:26+02:00 e2e: annotate nodes with VTEP IPs and check VTEP health + - a1ed35e1 2026-04-08T18:13:26+02:00 Dualstack and IPV6 VTEPs are not supported by FRR + - 9dcb94d9 2026-04-08T18:13:26+02:00 VTEP: add Accepted status printer columns + - f22bb34e 2026-04-08T18:13:26+02:00 Add RBAC for VTEP updates/patches from CM + - 2bd32668 2026-04-08T18:13:26+02:00 RA: configure ToReceive filters for VTEP CIDR ranges + - b13a4da6 2026-04-08T18:13:25+02:00 RA: advertise per-node VTEP IPs in default-VRF router + - 72eefa5e 2026-04-08T17:34:50+02:00 Add node controller for vtep annotation change logic + - 548cec39 2026-04-08T17:34:50+02:00 Add CUDN controller for finalizer logic + - 06f610fd 2026-04-08T17:34:50+02:00 Discover Node VTEPIPs for unmanaged mode + - 7dd8a48b 2026-04-08T17:34:50+02:00 Implement overlapping CIDR checks across VTEPs + - 9c64237c 2026-04-08T17:34:49+02:00 Add finalizers to VTEP + - 357e39d5 2026-04-08T17:34:49+02:00 Prevent managed VTEPs from being accepted + - 699cf88e 2026-04-08T17:34:49+02:00 Add VTEP controller plumbing + - 1a870ee8 2026-04-08T17:32:12+02:00 Add nftables support to test/e2e/diagnostics + - 81aa2265 2026-04-08T17:32:12+02:00 Add helpers that know the set of relevant NFT sets/maps + - b343bf0e 2026-04-08T17:32:12+02:00 Refactor nftables rule comparison in the unit tests + - 0992bf51 2026-04-08T16:33:21+02:00 Fix multicast traffic for EVPN Layer2 primary networks + - 78188684 2026-04-08T16:21:44+02:00 routeadvertisements: fix targetVRF auto for MAC-VRF only Layer2 networks + - dbd3095d 2026-04-08T15:32:44+02:00 Clean up VTEP annotation on VTEP deletion or mode change + - fbf56ce6 2026-04-08T15:32:44+02:00 Add self-healing for externally modified VTEP annotations + - 8f05a5c6 2026-04-08T15:32:44+02:00 Skip unnecessary VTEP reconciliation on node address changes + - e1ec673e 2026-04-08T15:32:44+02:00 Persist EVPN VTEP IPs in node annotation for stability across reconciles + - 5d4a3b77 2026-04-08T15:32:44+02:00 Use node address manager for EVPN VTEP IP discovery + - 5d98245f 2026-04-08T15:32:44+02:00 Add EVPN annotation to node admission webhook + - 200339aa 2026-04-08T15:32:44+02:00 Pick lowest unmanaged VTEP IP instead of error + - ac618f13 2026-04-08T15:32:44+02:00 Add new VTEP annotation utils + - d2aab21c 2026-04-06T15:06:55Z Disable informing tests for the time being + - d898ccf0 2026-04-06T10:21:11-04:00 e2e: fix no-overlay tcpdump race losing captured packets + - 6cf8a4d9 2026-04-06T09:33:49-04:00 fix cudn nopods workload and make cudn_ns template generic + - a8e16bda 2026-04-06T09:33:49-04:00 fix cudn workload formatting and align label selectors + - e2b4a5a2 2026-04-06T09:33:49-04:00 address review from rsevilla wrt cudn ns + - 747caa67 2026-04-06T09:33:49-04:00 add udn and cudn test with pods, svc, netpols + - 1e6a545a 2026-04-06T14:51:33+05:30 CUDN: Skip TransportAccepted status for empty transport + - b1f1dc86 2026-04-02T14:34:41-07:00 catch ./openshift/ dir up to changes in ./test/e2e + - 06062d57 2026-04-02T11:25:24+02:00 Add EVPN node controller unit tests for state transitions and edge cases + - c898fae6 2026-04-02T11:25:24+02:00 Wait for FRR daemons before configuring EVPN in kind setup + - a82aa48f 2026-04-02T11:25:24+02:00 Fail EVPN VTEP reconciliation when hybrid overlay VXLAN port conflicts + - ecf3c321 2026-04-02T11:25:24+02:00 Bump FRR to 10.4.3 + - 620480c7 2026-04-02T11:25:24+02:00 Handle OVS port not yet available during VTEP reconciliation + - fd22bf59 2026-04-02T11:25:23+02:00 Lighten EVPN initial sync: defer OVS ports and pod entries to normal reconciliation + - 6482be3d 2026-04-02T11:25:23+02:00 Add static FDB entries and live migration support to EVPN pod controller + - 4d170469 2026-04-02T11:25:23+02:00 Add pod neighbor controller for EVPN networks + - 7f71214a 2026-04-02T11:25:23+02:00 E2E: Use unmanaged VTEP mode with single CIDR + - 3cc8d531 2026-04-02T11:25:23+02:00 Revert "REVERT ME: Temporary commit till ovnkube EVPN implementation lands" + - 144e8265 2026-04-02T11:25:23+02:00 Add OVS port handling for layer2 EVPN networks + - 02cb3423 2026-04-02T11:25:23+02:00 Add SVI reconciliation for EVPN networks + - 97114a68 2026-04-02T11:25:23+02:00 Reconcile VID/VNI mappings for VXLAN devices + - 99f03714 2026-04-02T11:23:30+02:00 Clarify unmanaged VTEP IP discovery in OKEP + - c26b4259 2026-04-02T11:23:30+02:00 Add EVPN node controller + - 8258fa3e 2026-04-02T11:19:15+02:00 Add EVPN device naming utils + - 4c404d05 2026-04-02T11:19:14+02:00 Add VTEP informers/clients for EVPN support + - db22a8c6 2026-04-01T13:46:57+02:00 Remove EVPN/RA labels from CUDN transport tests + - b6e871f4 2026-04-01T13:46:57+02:00 crd,cudn,evpn: fix unanchored regex in RouteTarget CEL validation rules + - 5b317c6d 2026-04-01T13:46:57+02:00 Add CEL to block overlapping CIDRs within same VTEP + - b14e8027 2026-04-01T13:46:57+02:00 Add CEL validations to control VTEP CIDR mutations + - 6d09b15b 2026-04-01T13:46:57+02:00 Allow supporting multiple CIDRs in same family + - 3c1ad54b 2026-04-01T13:46:57+02:00 EVPN API: macVRF and ipVRF must use different VNIs + - b41be4fa 2026-03-31T21:18:03-04:00 no-overlay e2e: Add managed mode reconciliation tests + - 2f5eb215 2026-03-31T17:59:03+02:00 Stop using netlink.AddrList directly + - 0d735c61 2026-03-31T17:59:03+02:00 Bump vishvananda/netlink + - b288f9fd 2026-03-31T17:59:03+02:00 Use netlink handle with strict check for AdrrList + - de6b3bb2 2026-03-31T10:48:10+02:00 E2E: apply interface segregation to infraprovider API + - ca939661 2026-03-31T10:48:10+02:00 E2E: Add SSHRunner for remote command execution + - a149b229 2026-03-31T10:48:10+02:00 E2E: refactor infraprovider with reusable container ops + - e399decd 2026-03-31T10:48:10+02:00 E2E: use NamespacePodSecurityLevel to set PS levels + - d4684ae8 2026-03-31T10:48:10+02:00 EVPN E2E: Use f.CreateNamespace for proper label propagation + - c55b6d28 2026-03-31T10:48:10+02:00 EVPN E2E: exclude default cluster network CIDRs from random subnet generation + - a3b5cd51 2026-03-31T10:48:10+02:00 E2E: move AgnHost image retrieval to deployment config + - 4127d21f 2026-03-31T10:48:10+02:00 E2E: add provider factory pattern and move kind to internal package + - 79985403 2026-03-31T10:48:10+02:00 E2E: fix GetIPv6Gateway returning wrong gateway + - bbaaace7 2026-03-31T10:48:10+02:00 E2E: refactor container operations into reusable abstractions + - ff6e8143 2026-03-26T17:06:02+01:00 Fix duplicate deleteEgressIPStatusSetup call in deleteEgressIPAssignments + - bc596f5e 2026-03-26T17:00:45+01:00 e2e: avoid EVPN CUDN subnet collision with podman default network + - 1a7a0178 2026-03-25T23:26:56-04:00 no-overlay e2e: Refactor test structure: BeforeEach setup hoisted to Describe level + - 24585d54 2026-03-25T17:28:32-07:00 Fix SettleAddresses timeout: pass 10*time.Second instead of 10 + - 2f6a7fef 2026-03-25T13:24:15-07:00 Fix build and test breakages from containernetworking/cni v1.3.0 upgrade + - 9431a81c 2026-03-25T13:24:15-07:00 Update multus-cni to return deterministic order of device IDs + - 6381f672 2026-03-24T21:56:30Z evpn: fix wrong use of IPv4 GW address on IPv6 ACL + - b8554628 2026-03-24T20:14:29+05:30 CUDN: Validate no-overlay transport and update status conditions + - 8e4b0a03 2026-03-24T20:13:29+05:30 include all no-overlay network pod subnets in toReceive + - 73c528f1 2026-03-24T20:13:29+05:30 CUDN: Cleanup interconnect resources for no-overlay transport UT coverage + - d1a51e55 2026-03-24T18:05:29+05:30 fix: trigger ci again + - d688d02a 2026-03-24T15:30:30+05:30 Addressesd the comments + - 64b0c132 2026-03-24T00:05:10+01:00 skip no-overlay cases for default network is not enable no-overlay + - 7bf8ffc6 2026-03-24T00:05:10+01:00 add comments explaining why the no-overlay CI lanes are needed + - 23a27430 2026-03-24T00:05:10+01:00 e2e: Add connectivity tests for no-overlay mode + - 9ecd2149 2026-03-21T14:10:02-04:00 Change update pod status to just annotations + - af5dcb59 2026-03-20T18:12:42-04:00 Trim more information from pod informer cache + - 7a7403b7 2026-03-20T11:03:31-07:00 CNI: reorder SR-IOV representor lifecycle to prevent CmdAdd/CmdDel race + - 5d367bc8 2026-03-18T11:01:11-07:00 OKEP-5377: Extend Primary UDN/CUDN to Support Multiple Cluster Subnets in Layer3 Topology + - d03cc453 2026-03-18T17:25:46+01:00 CNC: Fix typo in CRD description + - 52d6d72c 2026-03-10T10:30:54+05:30 CUDN: Add test coverage for BGP route import with transport modes + - c8e7f518 2026-03-10T00:42:50+05:30 Fix DNSNameResolver CI lanes + +- service-ca-operator image-amd64 951ea66067b4d69c868470e26a5a1a9f689be23e to 7b3033bba87d7b40684b66f8f44a3525433d1ac7 + - d3b5a4d 2026-04-08T15:26:32-04:00 docs: document feature gate forwarding pattern + - 1790560 2026-04-08T15:25:12-04:00 fix: remove FeatureGate runtime detection from controller process + - 068f79d 2026-04-08T15:24:54-04:00 fix: consolidate feature gate forwarding to controller via CLI args + - ca5ae82 2026-04-02T10:20:04-04:00 fix: register informer before Start() to prevent WaitForCacheSync hang + - 9f8d755 2026-04-02T10:20:04-04:00 add feature gated PKI config support + - adc2776 2026-03-30T09:37:20-04:00 vendor: bump for openshift/library-go + - 769deb7 2026-03-18T14:15:18+01:00 manifests: add service-ca operator and workload network policies + +- oc image-arm64 075cd278d1e62cf49b266e157891967bda16079d to 66dee73f66c4f048c333c6a77d76871872027896 + - 0595c992 2026-04-10T15:01:30+02:00 claude: Split tester agent away from code-reviewer + - b2b2a40a 2026-04-07T14:19:27+01:00 Fix extraction of gated manifests using --install-config + +- ovn-kubernetes image-arm64 ee514f9f66a328f4dd4b583709a8e411b515fa5f to 90d101f8b4ebae811d1a0ea195d98a5a85ffaef1 + - c8fa46c0 2026-04-10T14:47:07Z openshift tests: demote to informing + - 5912b521 2026-04-09T19:41:07Z chore: update openshift tests + - 613c1a39 2026-04-09T21:19:48+02:00 Fix nil pointer panic in ParseNetConf for conflist configs + - af65f624 2026-04-08T19:43:35Z Bump the go_modules group across 2 directories with 4 updates + - c97a7eb0 2026-04-08T18:13:26+02:00 e2e: annotate nodes with VTEP IPs and check VTEP health + - a1ed35e1 2026-04-08T18:13:26+02:00 Dualstack and IPV6 VTEPs are not supported by FRR + - 9dcb94d9 2026-04-08T18:13:26+02:00 VTEP: add Accepted status printer columns + - f22bb34e 2026-04-08T18:13:26+02:00 Add RBAC for VTEP updates/patches from CM + - 2bd32668 2026-04-08T18:13:26+02:00 RA: configure ToReceive filters for VTEP CIDR ranges + - b13a4da6 2026-04-08T18:13:25+02:00 RA: advertise per-node VTEP IPs in default-VRF router + - 72eefa5e 2026-04-08T17:34:50+02:00 Add node controller for vtep annotation change logic + - 548cec39 2026-04-08T17:34:50+02:00 Add CUDN controller for finalizer logic + - 06f610fd 2026-04-08T17:34:50+02:00 Discover Node VTEPIPs for unmanaged mode + - 7dd8a48b 2026-04-08T17:34:50+02:00 Implement overlapping CIDR checks across VTEPs + - 9c64237c 2026-04-08T17:34:49+02:00 Add finalizers to VTEP + - 357e39d5 2026-04-08T17:34:49+02:00 Prevent managed VTEPs from being accepted + - 699cf88e 2026-04-08T17:34:49+02:00 Add VTEP controller plumbing + - 1a870ee8 2026-04-08T17:32:12+02:00 Add nftables support to test/e2e/diagnostics + - 81aa2265 2026-04-08T17:32:12+02:00 Add helpers that know the set of relevant NFT sets/maps + - b343bf0e 2026-04-08T17:32:12+02:00 Refactor nftables rule comparison in the unit tests + - 0992bf51 2026-04-08T16:33:21+02:00 Fix multicast traffic for EVPN Layer2 primary networks + - 78188684 2026-04-08T16:21:44+02:00 routeadvertisements: fix targetVRF auto for MAC-VRF only Layer2 networks + - dbd3095d 2026-04-08T15:32:44+02:00 Clean up VTEP annotation on VTEP deletion or mode change + - fbf56ce6 2026-04-08T15:32:44+02:00 Add self-healing for externally modified VTEP annotations + - 8f05a5c6 2026-04-08T15:32:44+02:00 Skip unnecessary VTEP reconciliation on node address changes + - e1ec673e 2026-04-08T15:32:44+02:00 Persist EVPN VTEP IPs in node annotation for stability across reconciles + - 5d4a3b77 2026-04-08T15:32:44+02:00 Use node address manager for EVPN VTEP IP discovery + - 5d98245f 2026-04-08T15:32:44+02:00 Add EVPN annotation to node admission webhook + - 200339aa 2026-04-08T15:32:44+02:00 Pick lowest unmanaged VTEP IP instead of error + - ac618f13 2026-04-08T15:32:44+02:00 Add new VTEP annotation utils + - d2aab21c 2026-04-06T15:06:55Z Disable informing tests for the time being + - d898ccf0 2026-04-06T10:21:11-04:00 e2e: fix no-overlay tcpdump race losing captured packets + - 6cf8a4d9 2026-04-06T09:33:49-04:00 fix cudn nopods workload and make cudn_ns template generic + - a8e16bda 2026-04-06T09:33:49-04:00 fix cudn workload formatting and align label selectors + - e2b4a5a2 2026-04-06T09:33:49-04:00 address review from rsevilla wrt cudn ns + - 747caa67 2026-04-06T09:33:49-04:00 add udn and cudn test with pods, svc, netpols + - 1e6a545a 2026-04-06T14:51:33+05:30 CUDN: Skip TransportAccepted status for empty transport + - b1f1dc86 2026-04-02T14:34:41-07:00 catch ./openshift/ dir up to changes in ./test/e2e + - 06062d57 2026-04-02T11:25:24+02:00 Add EVPN node controller unit tests for state transitions and edge cases + - c898fae6 2026-04-02T11:25:24+02:00 Wait for FRR daemons before configuring EVPN in kind setup + - a82aa48f 2026-04-02T11:25:24+02:00 Fail EVPN VTEP reconciliation when hybrid overlay VXLAN port conflicts + - ecf3c321 2026-04-02T11:25:24+02:00 Bump FRR to 10.4.3 + - 620480c7 2026-04-02T11:25:24+02:00 Handle OVS port not yet available during VTEP reconciliation + - fd22bf59 2026-04-02T11:25:23+02:00 Lighten EVPN initial sync: defer OVS ports and pod entries to normal reconciliation + - 6482be3d 2026-04-02T11:25:23+02:00 Add static FDB entries and live migration support to EVPN pod controller + - 4d170469 2026-04-02T11:25:23+02:00 Add pod neighbor controller for EVPN networks + - 7f71214a 2026-04-02T11:25:23+02:00 E2E: Use unmanaged VTEP mode with single CIDR + - 3cc8d531 2026-04-02T11:25:23+02:00 Revert "REVERT ME: Temporary commit till ovnkube EVPN implementation lands" + - 144e8265 2026-04-02T11:25:23+02:00 Add OVS port handling for layer2 EVPN networks + - 02cb3423 2026-04-02T11:25:23+02:00 Add SVI reconciliation for EVPN networks + - 97114a68 2026-04-02T11:25:23+02:00 Reconcile VID/VNI mappings for VXLAN devices + - 99f03714 2026-04-02T11:23:30+02:00 Clarify unmanaged VTEP IP discovery in OKEP + - c26b4259 2026-04-02T11:23:30+02:00 Add EVPN node controller + - 8258fa3e 2026-04-02T11:19:15+02:00 Add EVPN device naming utils + - 4c404d05 2026-04-02T11:19:14+02:00 Add VTEP informers/clients for EVPN support + - db22a8c6 2026-04-01T13:46:57+02:00 Remove EVPN/RA labels from CUDN transport tests + - b6e871f4 2026-04-01T13:46:57+02:00 crd,cudn,evpn: fix unanchored regex in RouteTarget CEL validation rules + - 5b317c6d 2026-04-01T13:46:57+02:00 Add CEL to block overlapping CIDRs within same VTEP + - b14e8027 2026-04-01T13:46:57+02:00 Add CEL validations to control VTEP CIDR mutations + - 6d09b15b 2026-04-01T13:46:57+02:00 Allow supporting multiple CIDRs in same family + - 3c1ad54b 2026-04-01T13:46:57+02:00 EVPN API: macVRF and ipVRF must use different VNIs + - b41be4fa 2026-03-31T21:18:03-04:00 no-overlay e2e: Add managed mode reconciliation tests + - 2f5eb215 2026-03-31T17:59:03+02:00 Stop using netlink.AddrList directly + - 0d735c61 2026-03-31T17:59:03+02:00 Bump vishvananda/netlink + - b288f9fd 2026-03-31T17:59:03+02:00 Use netlink handle with strict check for AdrrList + - de6b3bb2 2026-03-31T10:48:10+02:00 E2E: apply interface segregation to infraprovider API + - ca939661 2026-03-31T10:48:10+02:00 E2E: Add SSHRunner for remote command execution + - a149b229 2026-03-31T10:48:10+02:00 E2E: refactor infraprovider with reusable container ops + - e399decd 2026-03-31T10:48:10+02:00 E2E: use NamespacePodSecurityLevel to set PS levels + - d4684ae8 2026-03-31T10:48:10+02:00 EVPN E2E: Use f.CreateNamespace for proper label propagation + - c55b6d28 2026-03-31T10:48:10+02:00 EVPN E2E: exclude default cluster network CIDRs from random subnet generation + - a3b5cd51 2026-03-31T10:48:10+02:00 E2E: move AgnHost image retrieval to deployment config + - 4127d21f 2026-03-31T10:48:10+02:00 E2E: add provider factory pattern and move kind to internal package + - 79985403 2026-03-31T10:48:10+02:00 E2E: fix GetIPv6Gateway returning wrong gateway + - bbaaace7 2026-03-31T10:48:10+02:00 E2E: refactor container operations into reusable abstractions + - ff6e8143 2026-03-26T17:06:02+01:00 Fix duplicate deleteEgressIPStatusSetup call in deleteEgressIPAssignments + - bc596f5e 2026-03-26T17:00:45+01:00 e2e: avoid EVPN CUDN subnet collision with podman default network + - 1a7a0178 2026-03-25T23:26:56-04:00 no-overlay e2e: Refactor test structure: BeforeEach setup hoisted to Describe level + - 24585d54 2026-03-25T17:28:32-07:00 Fix SettleAddresses timeout: pass 10*time.Second instead of 10 + - 2f6a7fef 2026-03-25T13:24:15-07:00 Fix build and test breakages from containernetworking/cni v1.3.0 upgrade + - 9431a81c 2026-03-25T13:24:15-07:00 Update multus-cni to return deterministic order of device IDs + - 6381f672 2026-03-24T21:56:30Z evpn: fix wrong use of IPv4 GW address on IPv6 ACL + - b8554628 2026-03-24T20:14:29+05:30 CUDN: Validate no-overlay transport and update status conditions + - 8e4b0a03 2026-03-24T20:13:29+05:30 include all no-overlay network pod subnets in toReceive + - 73c528f1 2026-03-24T20:13:29+05:30 CUDN: Cleanup interconnect resources for no-overlay transport UT coverage + - d1a51e55 2026-03-24T18:05:29+05:30 fix: trigger ci again + - d688d02a 2026-03-24T15:30:30+05:30 Addressesd the comments + - 64b0c132 2026-03-24T00:05:10+01:00 skip no-overlay cases for default network is not enable no-overlay + - 7bf8ffc6 2026-03-24T00:05:10+01:00 add comments explaining why the no-overlay CI lanes are needed + - 23a27430 2026-03-24T00:05:10+01:00 e2e: Add connectivity tests for no-overlay mode + - 9ecd2149 2026-03-21T14:10:02-04:00 Change update pod status to just annotations + - af5dcb59 2026-03-20T18:12:42-04:00 Trim more information from pod informer cache + - 7a7403b7 2026-03-20T11:03:31-07:00 CNI: reorder SR-IOV representor lifecycle to prevent CmdAdd/CmdDel race + - 5d367bc8 2026-03-18T11:01:11-07:00 OKEP-5377: Extend Primary UDN/CUDN to Support Multiple Cluster Subnets in Layer3 Topology + - d03cc453 2026-03-18T17:25:46+01:00 CNC: Fix typo in CRD description + - 52d6d72c 2026-03-10T10:30:54+05:30 CUDN: Add test coverage for BGP route import with transport modes + - c8e7f518 2026-03-10T00:42:50+05:30 Fix DNSNameResolver CI lanes + +- service-ca-operator image-arm64 951ea66067b4d69c868470e26a5a1a9f689be23e to 7b3033bba87d7b40684b66f8f44a3525433d1ac7 + - d3b5a4d 2026-04-08T15:26:32-04:00 docs: document feature gate forwarding pattern + - 1790560 2026-04-08T15:25:12-04:00 fix: remove FeatureGate runtime detection from controller process + - 068f79d 2026-04-08T15:24:54-04:00 fix: consolidate feature gate forwarding to controller via CLI args + - ca5ae82 2026-04-02T10:20:04-04:00 fix: register informer before Start() to prevent WaitForCacheSync hang + - 9f8d755 2026-04-02T10:20:04-04:00 add feature gated PKI config support + - adc2776 2026-03-30T09:37:20-04:00 vendor: bump for openshift/library-go + - 769deb7 2026-03-18T14:15:18+01:00 manifests: add service-ca operator and workload network policies diff --git a/scripts/auto-rebase/commits.txt b/scripts/auto-rebase/commits.txt index 15ff65304d..c4a96ad848 100644 --- a/scripts/auto-rebase/commits.txt +++ b/scripts/auto-rebase/commits.txt @@ -1,35 +1,35 @@ -https://github.com/openshift/api embedded-component e9d6d439b48bfa2d127ee90c28e6d0f55243b620 -https://github.com/openshift/cluster-csi-snapshot-controller-operator embedded-component 98d8223ebe55a0ddc10bb485e7603deb2c0acbb9 +https://github.com/openshift/api embedded-component 464776f9520793f0f20645fbcb82d945abb0a05b +https://github.com/openshift/cluster-csi-snapshot-controller-operator embedded-component 108f37f0e378accc322cbeb68136ec500ec35b94 https://github.com/openshift/cluster-dns-operator embedded-component 3d2141182243cde1ec6417bd005c76d29aa88a01 -https://github.com/openshift/cluster-ingress-operator embedded-component c79099dcdc4e58f5a0d55a47b626a805a02af526 -https://github.com/openshift/cluster-kube-apiserver-operator embedded-component de2a3ebcb3ceea0ea411a6fbb9b5b52c18c27e06 -https://github.com/openshift/cluster-kube-controller-manager-operator embedded-component 7df2876085ac1d76ac11bf476c0538876110c9f0 -https://github.com/openshift/cluster-kube-scheduler-operator embedded-component ddbfddb8a0c77b03c1d7c994991caa031d99c330 -https://github.com/openshift/cluster-network-operator embedded-component 594de43f4f1567e5ce55be2eff7c0cf28d1e09e7 -https://github.com/openshift/cluster-openshift-controller-manager-operator embedded-component e0d28ec9e1c91b0b72ff66c98f7a3b126f4480ad +https://github.com/openshift/cluster-ingress-operator embedded-component 2c5b4ef0021db96ba6fecf630c53a15c12134578 +https://github.com/openshift/cluster-kube-apiserver-operator embedded-component 8cb1bc8cfe4266126010678bbd21b8a49accd7d0 +https://github.com/openshift/cluster-kube-controller-manager-operator embedded-component e2d54f2da0346309b329c34552d9896476683fc8 +https://github.com/openshift/cluster-kube-scheduler-operator embedded-component b80850a15da8485c52c486de30cec79600782206 +https://github.com/openshift/cluster-network-operator embedded-component d2bd842bcf9c3ecaff5fb5440a91ad4d96ea056c +https://github.com/openshift/cluster-openshift-controller-manager-operator embedded-component e1c3674198c6c1274fd3fd3c3108eb4cade4eb0a https://github.com/openshift/cluster-policy-controller embedded-component 44985a1306411101c84dd5081598fc928b432321 https://github.com/openshift/csi-external-snapshotter embedded-component d1bc3ffaa9759c13a06c2ec61c541342e71bd109 https://github.com/openshift/etcd embedded-component d8d67b8ce849f816d6d23c904098336632e2348f https://github.com/openshift/kubernetes embedded-component 9193b12ab88e006723c8605bea1659bfcbe7d638 https://github.com/openshift/kubernetes-kube-storage-version-migrator embedded-component 72835e43c7754356645e41031f3a99926b4d42e6 -https://github.com/openshift/machine-config-operator embedded-component f325e92327ccfcda3ff09c09dc1b233a63fb312b +https://github.com/openshift/machine-config-operator embedded-component 3da03918cca33a367671ebd80146b9db5f0408dc https://github.com/openshift/openshift-controller-manager embedded-component 26d20feae8892f648f5b06ed3f5492fe6ffb4532 -https://github.com/openshift/operator-framework-olm embedded-component 438f0e600e4ae75c8b7854afba5be963061eb2a1 +https://github.com/openshift/operator-framework-olm embedded-component e627823c743797da91b4ae8a318d2420a511b752 https://github.com/openshift/route-controller-manager embedded-component 624742d93f3a7885cf7f70985f1e23ff60da580d -https://github.com/openshift/service-ca-operator embedded-component 951ea66067b4d69c868470e26a5a1a9f689be23e -https://github.com/openshift/oc image-amd64 12f8fce897cae737720309a894dac856d221485e +https://github.com/openshift/service-ca-operator embedded-component 7b3033bba87d7b40684b66f8f44a3525433d1ac7 +https://github.com/openshift/oc image-amd64 66dee73f66c4f048c333c6a77d76871872027896 https://github.com/openshift/coredns image-amd64 0dded2d232dab43c107b1dab9d0d9fdfd8259622 https://github.com/openshift/csi-external-snapshotter image-amd64 d1bc3ffaa9759c13a06c2ec61c541342e71bd109 https://github.com/openshift/router image-amd64 896390778ebe15f57f87e6ca78f11c96e64c2652 https://github.com/openshift/kube-rbac-proxy image-amd64 d12e274605248f6c59373240a7eae7a7a357dcb3 -https://github.com/openshift/ovn-kubernetes image-amd64 ee514f9f66a328f4dd4b583709a8e411b515fa5f +https://github.com/openshift/ovn-kubernetes image-amd64 90d101f8b4ebae811d1a0ea195d98a5a85ffaef1 https://github.com/openshift/kubernetes image-amd64 9193b12ab88e006723c8605bea1659bfcbe7d638 -https://github.com/openshift/service-ca-operator image-amd64 951ea66067b4d69c868470e26a5a1a9f689be23e -https://github.com/openshift/oc image-arm64 075cd278d1e62cf49b266e157891967bda16079d +https://github.com/openshift/service-ca-operator image-amd64 7b3033bba87d7b40684b66f8f44a3525433d1ac7 +https://github.com/openshift/oc image-arm64 66dee73f66c4f048c333c6a77d76871872027896 https://github.com/openshift/coredns image-arm64 0dded2d232dab43c107b1dab9d0d9fdfd8259622 https://github.com/openshift/csi-external-snapshotter image-arm64 d1bc3ffaa9759c13a06c2ec61c541342e71bd109 https://github.com/openshift/router image-arm64 896390778ebe15f57f87e6ca78f11c96e64c2652 https://github.com/openshift/kube-rbac-proxy image-arm64 d12e274605248f6c59373240a7eae7a7a357dcb3 -https://github.com/openshift/ovn-kubernetes image-arm64 ee514f9f66a328f4dd4b583709a8e411b515fa5f +https://github.com/openshift/ovn-kubernetes image-arm64 90d101f8b4ebae811d1a0ea195d98a5a85ffaef1 https://github.com/openshift/kubernetes image-arm64 9193b12ab88e006723c8605bea1659bfcbe7d638 -https://github.com/openshift/service-ca-operator image-arm64 951ea66067b4d69c868470e26a5a1a9f689be23e +https://github.com/openshift/service-ca-operator image-arm64 7b3033bba87d7b40684b66f8f44a3525433d1ac7 diff --git a/scripts/auto-rebase/last_rebase.sh b/scripts/auto-rebase/last_rebase.sh index 2b05c6657a..994128ed10 100755 --- a/scripts/auto-rebase/last_rebase.sh +++ b/scripts/auto-rebase/last_rebase.sh @@ -1,2 +1,2 @@ #!/bin/bash -x -./scripts/auto-rebase/rebase.sh to "registry.ci.openshift.org/ocp/release:4.22.0-0.nightly-2026-04-01-223038" "registry.ci.openshift.org/ocp-arm64/release-arm64:4.22.0-0.nightly-arm64-2026-04-02-213117" +./scripts/auto-rebase/rebase.sh to "registry.ci.openshift.org/ocp/release-5:5.0.0-0.nightly-2026-04-16-172425" "registry.ci.openshift.org/ocp-arm64/release-5-arm64:5.0.0-0.nightly-arm64-2026-04-16-232425" diff --git a/scripts/auto-rebase/rebase_job_entrypoint.sh b/scripts/auto-rebase/rebase_job_entrypoint.sh index 6f2c5ad365..0bf1ced03a 100755 --- a/scripts/auto-rebase/rebase_job_entrypoint.sh +++ b/scripts/auto-rebase/rebase_job_entrypoint.sh @@ -65,7 +65,7 @@ if [[ -z "${PULLSPEC_RELEASE_AMD64:-}" ]]; then oc registry login --to=/tmp/registry.json release_amd64="$(oc image info --registry-config=/tmp/registry.json $OPENSHIFT_RELEASE_IMAGE -o json | jq -r '.config.config.Labels."io.openshift.release"')" - PULLSPEC_RELEASE_AMD64="registry.ci.openshift.org/ocp/release:${release_amd64}" + PULLSPEC_RELEASE_AMD64="registry.ci.openshift.org/ocp/release-5:${release_amd64}" else echo "INFO: Using provided PULLSPEC_RELEASE_AMD64: ${PULLSPEC_RELEASE_AMD64}" fi @@ -77,7 +77,7 @@ if [[ -z "${PULLSPEC_RELEASE_ARM64:-}" ]]; then oc registry login --to=/tmp/registry.json release_arm64="$(oc image info --registry-config=/tmp/registry.json $OPENSHIFT_RELEASE_IMAGE_ARM -o json | jq -r '.config.config.Labels."io.openshift.release"')" - PULLSPEC_RELEASE_ARM64="registry.ci.openshift.org/ocp-arm64/release-arm64:${release_arm64}" + PULLSPEC_RELEASE_ARM64="registry.ci.openshift.org/ocp-arm64/release-5-arm64:${release_arm64}" else echo "INFO: Using provided PULLSPEC_RELEASE_ARM64: ${PULLSPEC_RELEASE_ARM64}" fi diff --git a/test/assets/common_versions.sh.template b/test/assets/common_versions.sh.template index 2c6137000b..9a5ae9cad0 100644 --- a/test/assets/common_versions.sh.template +++ b/test/assets/common_versions.sh.template @@ -76,7 +76,16 @@ export PREVIOUS_MAJOR_VERSION={previous_major_version} export PREVIOUS_MINOR_VERSION={previous_minor_version} export YMINUS2_MAJOR_VERSION={yminus2_major_version} export YMINUS2_MINOR_VERSION={yminus2_minor_version} -export FAKE_NEXT_MINOR_VERSION=$(( "${{MINOR_VERSION}}" + 1 )) +# Handle cross-major version boundary (e.g. 4.22 -> 5.0) +declare -A LAST_MINOR_FOR_MAJOR=({last_minor_for_major_bash}) +if [[ -n "${{LAST_MINOR_FOR_MAJOR[${{MAJOR_VERSION}}]:-}}" && \ + "${{MINOR_VERSION}}" -eq "${{LAST_MINOR_FOR_MAJOR[${{MAJOR_VERSION}}]}}" ]]; then + export FAKE_NEXT_MAJOR_VERSION=$(( MAJOR_VERSION + 1 )) + export FAKE_NEXT_MINOR_VERSION=0 +else + export FAKE_NEXT_MAJOR_VERSION="${{MAJOR_VERSION}}" + export FAKE_NEXT_MINOR_VERSION=$(( "${{MINOR_VERSION}}" + 1 )) +fi # For a main branch, the current release repository usually comes from # the OpenShift mirror site, either 'ocp-dev-preview' in the beginning of the diff --git a/test/bin/build_images.sh b/test/bin/build_images.sh index f9d49222fd..51bf37927b 100755 --- a/test/bin/build_images.sh +++ b/test/bin/build_images.sh @@ -723,7 +723,7 @@ rm -f "${CONTAINER_LIST}" if ${EXTRACT_CONTAINER_IMAGES}; then extract_container_images "${SOURCE_VERSION}" "${LOCAL_REPO}" "${CONTAINER_LIST}" # The following images are specific to layers that use fake rpms built from source. - extract_container_images "${MAJOR_VERSION}.${FAKE_NEXT_MINOR_VERSION}.*" "${NEXT_REPO}" "${CONTAINER_LIST}" + extract_container_images "${FAKE_NEXT_MAJOR_VERSION}.${FAKE_NEXT_MINOR_VERSION}.*" "${NEXT_REPO}" "${CONTAINER_LIST}" extract_container_images "${PREVIOUS_RELEASE_VERSION}" "${PREVIOUS_RELEASE_REPO}" "${CONTAINER_LIST}" extract_container_images "${YMINUS2_RELEASE_VERSION}" "${YMINUS2_RELEASE_REPO}" "${CONTAINER_LIST}" # The following images are specific to the brew release versions. diff --git a/test/bin/common_versions.sh b/test/bin/common_versions.sh index 37bc47eb64..b87ae586ca 100644 --- a/test/bin/common_versions.sh +++ b/test/bin/common_versions.sh @@ -70,13 +70,22 @@ get_vrel_from_rpm() { # The current release version (e.g. '4.17') affects # the definition of previous and fake next versions. -export MAJOR_VERSION=4 -export MINOR_VERSION=22 +export MAJOR_VERSION=5 +export MINOR_VERSION=0 export PREVIOUS_MAJOR_VERSION=4 -export PREVIOUS_MINOR_VERSION=21 +export PREVIOUS_MINOR_VERSION=22 export YMINUS2_MAJOR_VERSION=4 -export YMINUS2_MINOR_VERSION=20 -export FAKE_NEXT_MINOR_VERSION=$(( "${MINOR_VERSION}" + 1 )) +export YMINUS2_MINOR_VERSION=21 +# Handle cross-major version boundary (e.g. 4.22 -> 5.0) +declare -A LAST_MINOR_FOR_MAJOR=([4]=22) +if [[ -n "${LAST_MINOR_FOR_MAJOR[${MAJOR_VERSION}]:-}" && \ + "${MINOR_VERSION}" -eq "${LAST_MINOR_FOR_MAJOR[${MAJOR_VERSION}]}" ]]; then + export FAKE_NEXT_MAJOR_VERSION=$(( MAJOR_VERSION + 1 )) + export FAKE_NEXT_MINOR_VERSION=0 +else + export FAKE_NEXT_MAJOR_VERSION="${MAJOR_VERSION}" + export FAKE_NEXT_MINOR_VERSION=$(( "${MINOR_VERSION}" + 1 )) +fi # For a main branch, the current release repository usually comes from # the OpenShift mirror site, either 'ocp-dev-preview' in the beginning of the @@ -84,8 +93,8 @@ export FAKE_NEXT_MINOR_VERSION=$(( "${MINOR_VERSION}" + 1 )) # # For a release branch, the current release repository should come from the # official 'rhocp' stream. -CURRENT_RELEASE_REPO="https://mirror.openshift.com/pub/openshift-v4/${UNAME_M}/microshift/ocp-dev-preview/latest-4.22/el9/os" -CURRENT_RELEASE_VERSION="$(get_vrel_from_beta "${CURRENT_RELEASE_REPO}")" +CURRENT_RELEASE_REPO="" +CURRENT_RELEASE_VERSION="" export CURRENT_RELEASE_REPO export CURRENT_RELEASE_VERSION @@ -100,15 +109,15 @@ export CURRENT_RELEASE_VERSION # For a release branch, the previous release repository should come from the # official 'rhocp' stream.# The previous release repository value should either # point to the OpenShift mirror URL or the 'rhocp' repository name. -PREVIOUS_RELEASE_REPO="rhocp-4.21-for-rhel-9-${UNAME_M}-rpms" -PREVIOUS_RELEASE_VERSION="$(get_vrel_from_rhsm "${PREVIOUS_RELEASE_REPO}")" +PREVIOUS_RELEASE_REPO="https://mirror.openshift.com/pub/openshift-v4/${UNAME_M}/microshift/ocp-dev-preview/latest-4.22/el9/os" +PREVIOUS_RELEASE_VERSION="$(get_vrel_from_beta "${PREVIOUS_RELEASE_REPO}")" export PREVIOUS_RELEASE_REPO export PREVIOUS_RELEASE_VERSION # The y-2 release repository value should either point to the OpenShift # mirror URL or the 'rhocp' repository name. It should always come from # the 'rhocp' stream. -YMINUS2_RELEASE_REPO="rhocp-4.20-for-rhel-9-${UNAME_M}-rpms" +YMINUS2_RELEASE_REPO="rhocp-4.21-for-rhel-9-${UNAME_M}-rpms" YMINUS2_RELEASE_VERSION="$(get_vrel_from_rhsm "${YMINUS2_RELEASE_REPO}")" export YMINUS2_RELEASE_REPO export YMINUS2_RELEASE_VERSION @@ -129,19 +138,19 @@ export RHOCP_MINOR_Y_BETA # The 'rhocp_major_y1' and 'rhocp_minor_y1' variables should be the previous major # and minor version numbers, if the previous release is available through the # 'rhocp' stream, otherwise empty. -RHOCP_MAJOR_Y1=4 -RHOCP_MINOR_Y1=21 +RHOCP_MAJOR_Y1="" +RHOCP_MINOR_Y1="" # The beta repository, containing dependencies, should point to the # OpenShift mirror URL. The mirror for previous release should always # be available. -RHOCP_MINOR_Y1_BETA="https://mirror.openshift.com/pub/openshift-v4/${UNAME_M}/dependencies/rpms/4.21-el9-beta" +RHOCP_MINOR_Y1_BETA="https://mirror.openshift.com/pub/openshift-v4/${UNAME_M}/dependencies/rpms/4.22-el9-beta" export RHOCP_MAJOR_Y1 export RHOCP_MINOR_Y1 export RHOCP_MINOR_Y1_BETA # The 'rhocp_major_y2' and 'rhocp_minor_y2' should always be the y-2 version numbers. export RHOCP_MAJOR_Y2=4 -export RHOCP_MINOR_Y2=20 +export RHOCP_MINOR_Y2=21 export CNCF_SONOBUOY_VERSION=v0.57.3 diff --git a/test/bin/pyutils/build_bootc_images.py b/test/bin/pyutils/build_bootc_images.py index a1b7bb6849..bf346fd588 100644 --- a/test/bin/pyutils/build_bootc_images.py +++ b/test/bin/pyutils/build_bootc_images.py @@ -124,6 +124,7 @@ def get_rhocp_beta_url_if_available(major, minor): def set_rpm_version_info_vars(): # See the test/bin/common_versions.sh script for a full list # of the variables used for templating + global FAKE_NEXT_MAJOR_VERSION global FAKE_NEXT_MINOR_VERSION global PREVIOUS_RELEASE_REPO global PREVIOUS_RELEASE_VERSION @@ -136,6 +137,7 @@ def set_rpm_version_info_vars(): global BREW_EC_RELEASE_VERSION global BREW_NIGHTLY_RELEASE_VERSION + FAKE_NEXT_MAJOR_VERSION = common.get_env_var('FAKE_NEXT_MAJOR_VERSION') FAKE_NEXT_MINOR_VERSION = common.get_env_var('FAKE_NEXT_MINOR_VERSION') PREVIOUS_RELEASE_REPO = common.get_env_var('PREVIOUS_RELEASE_REPO') PREVIOUS_RELEASE_VERSION = common.get_env_var('PREVIOUS_RELEASE_VERSION') @@ -655,7 +657,7 @@ def main(): else: extract_container_images(SOURCE_VERSION, LOCAL_REPO, CONTAINER_LIST, args.dry_run) # The following images are specific to layers that use fake rpms built from source - extract_container_images(f"4.{FAKE_NEXT_MINOR_VERSION}.*", NEXT_REPO, CONTAINER_LIST, args.dry_run) + extract_container_images(f"{FAKE_NEXT_MAJOR_VERSION}.{FAKE_NEXT_MINOR_VERSION}.*", NEXT_REPO, CONTAINER_LIST, args.dry_run) extract_container_images(PREVIOUS_RELEASE_VERSION, PREVIOUS_RELEASE_REPO, CONTAINER_LIST, args.dry_run) extract_container_images(YMINUS2_RELEASE_VERSION, YMINUS2_RELEASE_REPO, CONTAINER_LIST, args.dry_run) # The following images are specific to the brew release versions diff --git a/test/bin/pyutils/generate_common_versions.py b/test/bin/pyutils/generate_common_versions.py index dad57d5ff8..fea77b1532 100755 --- a/test/bin/pyutils/generate_common_versions.py +++ b/test/bin/pyutils/generate_common_versions.py @@ -20,6 +20,7 @@ # Version map defining the last minor version for each major version. # Used for cross-major Y-1/Y-2 calculations (e.g., 5.0's Y-1 is 4.22). +# Authoritative source: lastMinorForMajor in pkg/admin/prerun/version.go VERSION_MAP = { 4: {'last_minor': 22} } @@ -349,12 +350,16 @@ def generate_common_versions(major_version, minor_version): # creating PRs that clear the version due to transient failures. logging.info("Getting GITOPS_VERSION") gitops_version = get_gitops_version(major_version, minor_version) - if gitops_version is None: + if not gitops_version: target_file = pathlib.Path(__file__).resolve().parent / '../common_versions.sh' args = ['grep', '-oP', '(?<=GITOPS_VERSION=).*', str(target_file)] gitops_version = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, check=True).stdout.strip() logging.info(f"API fetch failed, preserving existing GITOPS_VERSION={gitops_version}") + last_minor_for_major_bash = " ".join( + f"[{major}]={info['last_minor']}" for major, info in VERSION_MAP.items() + ) + template_path = pathlib.Path(__file__).resolve().parent / '../../assets/common_versions.sh.template' with open(template_path, 'r') as f: @@ -384,7 +389,8 @@ def generate_common_versions(major_version, minor_version): CNCF_SONOBUOY_VERSION=CNCF_SONOBUOY_VERSION, CNCF_SYSTEMD_LOGS_VERSION=CNCF_SYSTEMD_LOGS_VERSION, GITOPS_VERSION=gitops_version, - ARCH=ARCH + ARCH=ARCH, + last_minor_for_major_bash=last_minor_for_major_bash ) output_noarch = output.replace(ARCH, '${UNAME_M}') diff --git a/test/image-blueprints-bootc/el10/layer2-presubmit/group2/rhel102-bootc-source-fake-next-minor.containerfile b/test/image-blueprints-bootc/el10/layer2-presubmit/group2/rhel102-bootc-source-fake-next-minor.containerfile index a3e5bae002..c452849acd 100644 --- a/test/image-blueprints-bootc/el10/layer2-presubmit/group2/rhel102-bootc-source-fake-next-minor.containerfile +++ b/test/image-blueprints-bootc/el10/layer2-presubmit/group2/rhel102-bootc-source-fake-next-minor.containerfile @@ -14,7 +14,7 @@ COPY ./bootc-images/$USHIFT_RPM_REPO_NAME.repo ./bootc-images/microshift-fast-da # Print repository configuration contents. # Install MicroShift, test agent and cleanup. RUN dnf repoinfo --enabled && \ - dnf install -y "microshift-4.{{ env.Getenv "FAKE_NEXT_MINOR_VERSION" }}.*" && \ + dnf install -y "microshift-{{ env.Getenv "FAKE_NEXT_MAJOR_VERSION" }}.{{ env.Getenv "FAKE_NEXT_MINOR_VERSION" }}.*" && \ rm -vf /etc/yum.repos.d/microshift-*.repo && \ rm -rvf $USHIFT_RPM_REPO_PATH && \ dnf clean all diff --git a/test/image-blueprints-bootc/el9/layer2-presubmit/group2/rhel98-bootc-source-fake-next-minor.containerfile b/test/image-blueprints-bootc/el9/layer2-presubmit/group2/rhel98-bootc-source-fake-next-minor.containerfile index f99b143c26..1c1d7ae08f 100644 --- a/test/image-blueprints-bootc/el9/layer2-presubmit/group2/rhel98-bootc-source-fake-next-minor.containerfile +++ b/test/image-blueprints-bootc/el9/layer2-presubmit/group2/rhel98-bootc-source-fake-next-minor.containerfile @@ -14,7 +14,7 @@ COPY ./bootc-images/$USHIFT_RPM_REPO_NAME.repo ./bootc-images/microshift-fast-da # Print repository configuration contents. # Install MicroShift, test agent and cleanup. RUN dnf repoinfo --enabled && \ - dnf install -y "microshift-4.{{ env.Getenv "FAKE_NEXT_MINOR_VERSION" }}.*" && \ + dnf install -y "microshift-{{ env.Getenv "FAKE_NEXT_MAJOR_VERSION" }}.{{ env.Getenv "FAKE_NEXT_MINOR_VERSION" }}.*" && \ rm -vf /etc/yum.repos.d/microshift-*.repo && \ rm -rvf $USHIFT_RPM_REPO_PATH && \ dnf clean all diff --git a/test/image-blueprints/layer1-base/group2/rhel96-microshift-yminus2.toml b/test/image-blueprints/layer1-base/group2/rhel96-microshift-yminus2.toml index 90c3fb1692..0136174360 100644 --- a/test/image-blueprints/layer1-base/group2/rhel96-microshift-yminus2.toml +++ b/test/image-blueprints/layer1-base/group2/rhel96-microshift-yminus2.toml @@ -1,4 +1,4 @@ -name = "rhel-9.6-microshift-4.{{ .Env.YMINUS2_MINOR_VERSION }}" +name = "rhel-9.6-microshift-{{ .Env.YMINUS2_MAJOR_VERSION }}.{{ .Env.YMINUS2_MINOR_VERSION }}" description = "RHEL 9.6 with MicroShift from two minor versions back installed." version = "0.0.1" modules = [] diff --git a/test/image-blueprints/layer1-base/group3/rhel96-microshift-previous-minor.toml b/test/image-blueprints/layer1-base/group3/rhel96-microshift-previous-minor.toml index f03ee62ee3..c71c83d999 100644 --- a/test/image-blueprints/layer1-base/group3/rhel96-microshift-previous-minor.toml +++ b/test/image-blueprints/layer1-base/group3/rhel96-microshift-previous-minor.toml @@ -1,4 +1,4 @@ -name = "rhel-9.6-microshift-4.{{ .Env.PREVIOUS_MINOR_VERSION }}" +name = "rhel-9.6-microshift-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }}" description = "RHEL 9.6 with MicroShift from the previous minor version (y-stream) installed." version = "0.0.1" modules = [] @@ -7,7 +7,7 @@ distro = "rhel-96" # Parent specification directive recognized by test/bin/build_images.sh to be # used with the '--parent' argument of 'osbuild-composer' -# parent = "rhel-9.6-microshift-4.{{ .Env.YMINUS2_MINOR_VERSION }}" +# parent = "rhel-9.6-microshift-{{ .Env.YMINUS2_MAJOR_VERSION }}.{{ .Env.YMINUS2_MINOR_VERSION }}" {{ range (env.Getenv "MICROSHIFT_MANDATORY_RPMS" | strings.Split " ") }} [[packages]] diff --git a/test/image-blueprints/layer1-base/group4/rhel96-microshift-previous-minor.image-installer b/test/image-blueprints/layer1-base/group4/rhel96-microshift-previous-minor.image-installer index e894920a58..83b579441a 100644 --- a/test/image-blueprints/layer1-base/group4/rhel96-microshift-previous-minor.image-installer +++ b/test/image-blueprints/layer1-base/group4/rhel96-microshift-previous-minor.image-installer @@ -1 +1 @@ -rhel-9.6-microshift-4.{{ .Env.PREVIOUS_MINOR_VERSION }} \ No newline at end of file +rhel-9.6-microshift-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }} \ No newline at end of file diff --git a/test/image-blueprints/layer1-base/group4/rhel98-crel-with-optionals.toml b/test/image-blueprints/layer1-base/group4/rhel98-crel-with-optionals.toml index 497e889c6a..dbcf8f9fce 100644 --- a/test/image-blueprints/layer1-base/group4/rhel98-crel-with-optionals.toml +++ b/test/image-blueprints/layer1-base/group4/rhel98-crel-with-optionals.toml @@ -17,7 +17,7 @@ distro = "rhel-98" # Parent specification directive recognized by test/bin/build_images.sh to be # used with the '--parent' argument of 'osbuild-composer' -# parent = "rhel-9.6-microshift-4.{{ .Env.PREVIOUS_MINOR_VERSION }}" +# parent = "rhel-9.6-microshift-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }}" {{ range (env.Getenv "MICROSHIFT_MANDATORY_RPMS" | strings.Split " ") }} [[packages]] diff --git a/test/image-blueprints/layer1-base/group4/rhel98-crel.toml b/test/image-blueprints/layer1-base/group4/rhel98-crel.toml index a5386adb2f..4bdb80c30d 100644 --- a/test/image-blueprints/layer1-base/group4/rhel98-crel.toml +++ b/test/image-blueprints/layer1-base/group4/rhel98-crel.toml @@ -17,7 +17,7 @@ distro = "rhel-98" # Parent specification directive recognized by test/bin/build_images.sh to be # used with the '--parent' argument of 'osbuild-composer' -# parent = "rhel-9.6-microshift-4.{{ .Env.PREVIOUS_MINOR_VERSION }}" +# parent = "rhel-9.6-microshift-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }}" {{ range (env.Getenv "MICROSHIFT_MANDATORY_RPMS" | strings.Split " ") }} [[packages]] diff --git a/test/image-blueprints/layer2-presubmit/group1/rhel98-source-base.toml b/test/image-blueprints/layer2-presubmit/group1/rhel98-source-base.toml index 344d7ec820..89e93d4b37 100644 --- a/test/image-blueprints/layer2-presubmit/group1/rhel98-source-base.toml +++ b/test/image-blueprints/layer2-presubmit/group1/rhel98-source-base.toml @@ -11,7 +11,7 @@ distro = "rhel-98" {{- if env.Getenv "CURRENT_RELEASE_VERSION" "" -}} # parent = "rhel-9.8-microshift-crel" {{- else -}} -# parent = "rhel-9.6-microshift-4.{{ .Env.PREVIOUS_MINOR_VERSION }}" +# parent = "rhel-9.6-microshift-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }}" {{- end -}} {{- "\n" -}} diff --git a/test/image-blueprints/layer2-presubmit/group1/rhel98-source-fake-next-minor.toml b/test/image-blueprints/layer2-presubmit/group1/rhel98-source-fake-next-minor.toml index 94f40fe15b..d16fb10cf9 100644 --- a/test/image-blueprints/layer2-presubmit/group1/rhel98-source-fake-next-minor.toml +++ b/test/image-blueprints/layer2-presubmit/group1/rhel98-source-fake-next-minor.toml @@ -11,25 +11,25 @@ distro = "rhel-98" {{- if env.Getenv "CURRENT_RELEASE_VERSION" "" -}} # parent = "rhel-9.8-microshift-crel" {{- else -}} -# parent = "rhel-9.6-microshift-4.{{ .Env.PREVIOUS_MINOR_VERSION }}" +# parent = "rhel-9.6-microshift-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }}" {{- end -}} {{- "\n" -}} [[packages]] name = "microshift" -version = "4.{{ .Env.FAKE_NEXT_MINOR_VERSION }}.*" +version = "{{ .Env.FAKE_NEXT_MAJOR_VERSION }}.{{ .Env.FAKE_NEXT_MINOR_VERSION }}.*" [[packages]] name = "microshift-greenboot" -version = "4.{{ .Env.FAKE_NEXT_MINOR_VERSION }}.*" +version = "{{ .Env.FAKE_NEXT_MAJOR_VERSION }}.{{ .Env.FAKE_NEXT_MINOR_VERSION }}.*" [[packages]] name = "microshift-networking" -version = "4.{{ .Env.FAKE_NEXT_MINOR_VERSION }}.*" +version = "{{ .Env.FAKE_NEXT_MAJOR_VERSION }}.{{ .Env.FAKE_NEXT_MINOR_VERSION }}.*" [[packages]] name = "microshift-selinux" -version = "4.{{ .Env.FAKE_NEXT_MINOR_VERSION }}.*" +version = "{{ .Env.FAKE_NEXT_MAJOR_VERSION }}.{{ .Env.FAKE_NEXT_MINOR_VERSION }}.*" [[packages]] name = "microshift-test-agent" diff --git a/test/image-blueprints/layer2-presubmit/group1/rhel98-source-with-optionals.toml b/test/image-blueprints/layer2-presubmit/group1/rhel98-source-with-optionals.toml index 539fcb2499..384606bb8b 100644 --- a/test/image-blueprints/layer2-presubmit/group1/rhel98-source-with-optionals.toml +++ b/test/image-blueprints/layer2-presubmit/group1/rhel98-source-with-optionals.toml @@ -11,7 +11,7 @@ distro = "rhel-98" {{- if env.Getenv "CURRENT_RELEASE_VERSION" "" -}} # parent = "rhel-9.8-microshift-crel-optionals" {{- else -}} -# parent = "rhel-9.6-microshift-4.{{ .Env.PREVIOUS_MINOR_VERSION }}" +# parent = "rhel-9.6-microshift-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }}" {{- end -}} {{- "\n" -}} diff --git a/test/image-blueprints/layer2-presubmit/group1/rhel98-source.toml b/test/image-blueprints/layer2-presubmit/group1/rhel98-source.toml index eb5dfadc48..61d2e88732 100644 --- a/test/image-blueprints/layer2-presubmit/group1/rhel98-source.toml +++ b/test/image-blueprints/layer2-presubmit/group1/rhel98-source.toml @@ -11,7 +11,7 @@ distro = "rhel-98" {{- if env.Getenv "CURRENT_RELEASE_VERSION" "" -}} # parent = "rhel-9.8-microshift-crel" {{- else -}} -# parent = "rhel-9.6-microshift-4.{{ .Env.PREVIOUS_MINOR_VERSION }}" +# parent = "rhel-9.6-microshift-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }}" {{- end -}} {{- "\n" -}} diff --git a/test/image-blueprints/layer4-release/group1/rhel96-brew-y2-with-optionals.toml b/test/image-blueprints/layer4-release/group1/rhel96-brew-y2-with-optionals.toml index 2863642b8d..4f762059c7 100644 --- a/test/image-blueprints/layer4-release/group1/rhel96-brew-y2-with-optionals.toml +++ b/test/image-blueprints/layer4-release/group1/rhel96-brew-y2-with-optionals.toml @@ -8,7 +8,7 @@ */ -}} -name = "rhel-9.6-microshift-brew-optionals-4.{{ .Env.YMINUS2_MINOR_VERSION }}-zstream" +name = "rhel-9.6-microshift-brew-optionals-{{ .Env.YMINUS2_MAJOR_VERSION }}.{{ .Env.YMINUS2_MINOR_VERSION }}-zstream" description = "A RHEL 9.6 image with already built and released RPMs like EC, RC, or Z-stream release: {{ .Env.BREW_Y2_RELEASE_VERSION }}" version = "0.0.1" modules = [] diff --git a/test/image-blueprints/layer4-release/group2/rhel96-brew-y1-with-optionals.toml b/test/image-blueprints/layer4-release/group2/rhel96-brew-y1-with-optionals.toml index 227a40d927..546f1725bc 100644 --- a/test/image-blueprints/layer4-release/group2/rhel96-brew-y1-with-optionals.toml +++ b/test/image-blueprints/layer4-release/group2/rhel96-brew-y1-with-optionals.toml @@ -8,7 +8,7 @@ */ -}} -name = "rhel-9.6-microshift-brew-optionals-4.{{ .Env.PREVIOUS_MINOR_VERSION }}-zstream" +name = "rhel-9.6-microshift-brew-optionals-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }}-zstream" description = "A RHEL 9.6 image with already built and released RPMs like EC, RC, or Z-stream release: {{ .Env.BREW_Y1_RELEASE_VERSION }}" version = "0.0.1" modules = [] diff --git a/test/image-blueprints/layer4-release/group3/rhel98-brew-lrel-optional.toml b/test/image-blueprints/layer4-release/group3/rhel98-brew-lrel-optional.toml index eb1b475bab..c7353490e7 100644 --- a/test/image-blueprints/layer4-release/group3/rhel98-brew-lrel-optional.toml +++ b/test/image-blueprints/layer4-release/group3/rhel98-brew-lrel-optional.toml @@ -17,7 +17,7 @@ distro = "rhel-98" # Parent specification directive recognized by test/bin/build_images.sh to be # used with the '--parent' argument of 'osbuild-composer' -# parent = "rhel-9.6-microshift-brew-optionals-4.{{ .Env.PREVIOUS_MINOR_VERSION }}-zstream" +# parent = "rhel-9.6-microshift-brew-optionals-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }}-zstream" {{ range (env.Getenv "MICROSHIFT_MANDATORY_RPMS" | strings.Split " ") }} [[packages]] diff --git a/test/image-blueprints/layer4-release/group3/rhel98-brew-nightly-with-optionals.toml b/test/image-blueprints/layer4-release/group3/rhel98-brew-nightly-with-optionals.toml index f83ebc8cbf..c32156e593 100644 --- a/test/image-blueprints/layer4-release/group3/rhel98-brew-nightly-with-optionals.toml +++ b/test/image-blueprints/layer4-release/group3/rhel98-brew-nightly-with-optionals.toml @@ -8,7 +8,7 @@ */ -}} -name = "rhel-9.8-microshift-brew-optionals-4.{{ .Env.MINOR_VERSION}}-nightly" +name = "rhel-9.8-microshift-brew-optionals-{{ .Env.MAJOR_VERSION}}.{{ .Env.MINOR_VERSION}}-nightly" description = "A RHEL 9.8 image with already built and released RPMs like EC, RC, or Z-stream release: {{ .Env.BREW_NIGHTLY_RELEASE_VERSION }}" version = "0.0.1" modules = [] @@ -17,7 +17,7 @@ distro = "rhel-98" # Parent specification directive recognized by test/bin/build_images.sh to be # used with the '--parent' argument of 'osbuild-composer' -# parent = "rhel-9.6-microshift-brew-optionals-4.{{ .Env.PREVIOUS_MINOR_VERSION }}-zstream" +# parent = "rhel-9.6-microshift-brew-optionals-{{ .Env.PREVIOUS_MAJOR_VERSION }}.{{ .Env.PREVIOUS_MINOR_VERSION }}-zstream" {{ range (env.Getenv "MICROSHIFT_MANDATORY_RPMS" | strings.Split " ") }} [[packages]] diff --git a/test/package-sources-bootc/microshift-rhocp-y.repo b/test/package-sources-bootc/microshift-rhocp-y.repo index ba497e874e..002ad92e74 100644 --- a/test/package-sources-bootc/microshift-rhocp-y.repo +++ b/test/package-sources-bootc/microshift-rhocp-y.repo @@ -1,7 +1,7 @@ {{- if env.Getenv "RHOCP_MINOR_Y" "" -}} [rhocp-y] -name = Red Hat OpenShift Container Platform 4.{{ .Env.RHOCP_MINOR_Y }} for RHEL 9 -baseurl = https://cdn.redhat.com/content/dist/layered/rhel9/{{ .Env.UNAME_M }}/rhocp/4.{{ .Env.RHOCP_MINOR_Y }}/os +name = Red Hat OpenShift Container Platform {{ .Env.RHOCP_MAJOR_Y }}.{{ .Env.RHOCP_MINOR_Y }} for RHEL 9 +baseurl = https://cdn.redhat.com/content/dist/layered/rhel9/{{ .Env.UNAME_M }}/rhocp/{{ .Env.RHOCP_MAJOR_Y }}.{{ .Env.RHOCP_MINOR_Y }}/os enabled = 1 gpgcheck = 1 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release diff --git a/test/package-sources-bootc/microshift-rhocp-y1.repo b/test/package-sources-bootc/microshift-rhocp-y1.repo index bac774cb88..d27ddb91ca 100644 --- a/test/package-sources-bootc/microshift-rhocp-y1.repo +++ b/test/package-sources-bootc/microshift-rhocp-y1.repo @@ -1,7 +1,7 @@ {{- if env.Getenv "RHOCP_MINOR_Y1" "" -}} [rhocp-y1] -name = Red Hat OpenShift Container Platform 4.{{ .Env.RHOCP_MINOR_Y1 }} for RHEL 9 -baseurl = https://cdn.redhat.com/content/dist/layered/rhel9/{{ .Env.UNAME_M }}/rhocp/4.{{ .Env.RHOCP_MINOR_Y1 }}/os +name = Red Hat OpenShift Container Platform {{ .Env.RHOCP_MAJOR_Y1 }}.{{ .Env.RHOCP_MINOR_Y1 }} for RHEL 9 +baseurl = https://cdn.redhat.com/content/dist/layered/rhel9/{{ .Env.UNAME_M }}/rhocp/{{ .Env.RHOCP_MAJOR_Y1 }}.{{ .Env.RHOCP_MINOR_Y1 }}/os enabled = 1 gpgcheck = 1 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release diff --git a/test/package-sources-bootc/microshift-rhocp-y2.repo b/test/package-sources-bootc/microshift-rhocp-y2.repo index c0e06dbaea..4a3f5f6184 100644 --- a/test/package-sources-bootc/microshift-rhocp-y2.repo +++ b/test/package-sources-bootc/microshift-rhocp-y2.repo @@ -1,7 +1,7 @@ {{- if env.Getenv "RHOCP_MINOR_Y2" "" -}} [rhocp-y2] -name = Red Hat OpenShift Container Platform 4.{{ .Env.RHOCP_MINOR_Y2 }} for RHEL 9 -baseurl = https://cdn.redhat.com/content/dist/layered/rhel9/{{ .Env.UNAME_M }}/rhocp/4.{{ .Env.RHOCP_MINOR_Y2 }}/os +name = Red Hat OpenShift Container Platform {{ .Env.RHOCP_MAJOR_Y2 }}.{{ .Env.RHOCP_MINOR_Y2 }} for RHEL 9 +baseurl = https://cdn.redhat.com/content/dist/layered/rhel9/{{ .Env.UNAME_M }}/rhocp/{{ .Env.RHOCP_MAJOR_Y2 }}.{{ .Env.RHOCP_MINOR_Y2 }}/os enabled = 1 gpgcheck = 1 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release diff --git a/test/scenarios-bootc/el10/periodics/el96-prel@el102-src@upgrade-ostree2bootc-ok.sh b/test/scenarios-bootc/el10/periodics/el96-prel@el102-src@upgrade-ostree2bootc-ok.sh index ef54b926e3..8b8529e14e 100644 --- a/test/scenarios-bootc/el10/periodics/el96-prel@el102-src@upgrade-ostree2bootc-ok.sh +++ b/test/scenarios-bootc/el10/periodics/el96-prel@el102-src@upgrade-ostree2bootc-ok.sh @@ -5,7 +5,7 @@ scenario_create_vms() { # The y-1 ostree image will be fetched from the cache as it is not built # as part of the bootc image build procedure - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-4.${PREVIOUS_MINOR_VERSION}" + prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-${PREVIOUS_MAJOR_VERSION}.${PREVIOUS_MINOR_VERSION}" launch_vm rhel-9.6 } diff --git a/test/scenarios-bootc/el10/periodics/el96-yminus2@el102-src@upgrade-ostree2bootc-ok.sh b/test/scenarios-bootc/el10/periodics/el96-yminus2@el102-src@upgrade-ostree2bootc-ok.sh index 38b312405a..c99dcfd14f 100644 --- a/test/scenarios-bootc/el10/periodics/el96-yminus2@el102-src@upgrade-ostree2bootc-ok.sh +++ b/test/scenarios-bootc/el10/periodics/el96-yminus2@el102-src@upgrade-ostree2bootc-ok.sh @@ -5,7 +5,7 @@ scenario_create_vms() { # The y-2 ostree image will be fetched from the cache as it is not built # as part of the bootc image build procedure - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-4.${YMINUS2_MINOR_VERSION}" + prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-${YMINUS2_MAJOR_VERSION}.${YMINUS2_MINOR_VERSION}" launch_vm rhel-9.6 } diff --git a/test/scenarios-bootc/el9/periodics/el96-prel@el98-src@upgrade-ostree2bootc-ok.sh b/test/scenarios-bootc/el9/periodics/el96-prel@el98-src@upgrade-ostree2bootc-ok.sh index f4aa7e82d1..7b8c47ce76 100644 --- a/test/scenarios-bootc/el9/periodics/el96-prel@el98-src@upgrade-ostree2bootc-ok.sh +++ b/test/scenarios-bootc/el9/periodics/el96-prel@el98-src@upgrade-ostree2bootc-ok.sh @@ -5,7 +5,7 @@ scenario_create_vms() { # The y-1 ostree image will be fetched from the cache as it is not built # as part of the bootc image build procedure - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-4.${PREVIOUS_MINOR_VERSION}" + prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-${PREVIOUS_MAJOR_VERSION}.${PREVIOUS_MINOR_VERSION}" launch_vm rhel-9.6 } diff --git a/test/scenarios-bootc/el9/periodics/el96-yminus2@el98-src@upgrade-ostree2bootc-ok.sh b/test/scenarios-bootc/el9/periodics/el96-yminus2@el98-src@upgrade-ostree2bootc-ok.sh index a2dd421d3f..5e00cf45ea 100644 --- a/test/scenarios-bootc/el9/periodics/el96-yminus2@el98-src@upgrade-ostree2bootc-ok.sh +++ b/test/scenarios-bootc/el9/periodics/el96-yminus2@el98-src@upgrade-ostree2bootc-ok.sh @@ -5,7 +5,7 @@ scenario_create_vms() { # The y-2 ostree image will be fetched from the cache as it is not built # as part of the bootc image build procedure - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-4.${YMINUS2_MINOR_VERSION}" + prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-${YMINUS2_MAJOR_VERSION}.${YMINUS2_MINOR_VERSION}" launch_vm rhel-9.6 } diff --git a/test/scenarios/periodics/el96-prel@el98-src@upgrade-fails-and-rolls-back.sh b/test/scenarios/periodics/el96-prel@el98-src@upgrade-fails-and-rolls-back.sh index 1714e391cf..48c8a11d32 100644 --- a/test/scenarios/periodics/el96-prel@el98-src@upgrade-fails-and-rolls-back.sh +++ b/test/scenarios/periodics/el96-prel@el98-src@upgrade-fails-and-rolls-back.sh @@ -3,7 +3,7 @@ # Sourced from scenario.sh and uses functions defined there. scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-4.${PREVIOUS_MINOR_VERSION}" + prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-${PREVIOUS_MAJOR_VERSION}.${PREVIOUS_MINOR_VERSION}" launch_vm rhel-9.6 }