Skip to content

OCPBUGS-62517: Synchronize from Upstream Repositories#710

Merged
openshift-merge-bot[bot] merged 104 commits intoopenshift:mainfrom
openshift-bot:synchronize-upstream
May 1, 2026
Merged

OCPBUGS-62517: Synchronize from Upstream Repositories#710
openshift-merge-bot[bot] merged 104 commits intoopenshift:mainfrom
openshift-bot:synchronize-upstream

Conversation

@openshift-bot
Copy link
Copy Markdown

@openshift-bot openshift-bot commented Apr 27, 2026

The downstream repository has been updated with the following following upstream commits:

Date Commit Author Message
2026-04-30 16:30:37 operator-framework/operator-controller@e0f05f9 Todd Short fix(e2e): use per-component namespaces in HA and upgrade steps (#2685)
2026-04-29 16:23:23 operator-framework/operator-controller@09ccf9e dependabot[bot] 🌱 Bump packaging from 26.0 to 26.1 (#2683)
2026-04-29 15:53:06 operator-framework/operator-controller@0fae07a dependabot[bot] 🌱 Bump github.com/containerd/containerd from 1.7.30 to 1.7.31 (#2682)
2026-04-29 15:49:44 operator-framework/operator-controller@1312457 dependabot[bot] 🌱 Bump sigs.k8s.io/structured-merge-diff/v6 (#2681)
2026-04-29 15:41:02 operator-framework/operator-controller@b177be3 Todd Short fix(catalogd): follow-up fixes after HA PR merge (#2679)
2026-04-29 05:04:57 operator-framework/operator-controller@74e39f5 Joe Lanford 🐛 fix: allow reconciliation of deadline-exceeded ClusterObjectSets (#2643)
2026-04-28 20:29:36 operator-framework/operator-controller@4ce4bab Rashmi Gottipati adds support for parsing explicit pkg.Release field (#2543)
2026-04-28 13:36:18 operator-framework/operator-controller@ee337de dependabot[bot] 🌱 Bump github.com/cert-manager/cert-manager (#2678)
2026-04-28 13:30:39 operator-framework/operator-controller@aa70192 dependabot[bot] 🌱 Bump marocchino/sticky-pull-request-comment (#2676)
2026-04-27 19:40:54 operator-framework/operator-controller@cadb7a7 dependabot[bot] 🌱 Bump github.com/google/go-containerregistry (#2677)
2026-04-27 19:18:33 operator-framework/operator-controller@e12d90b Todd Short 🐛 Fix catalogd ha readiness (#2674)
2026-04-27 16:04:29 operator-framework/operator-controller@0e70fe3 Todd Short tests: address CodeRabbit review comments from downstream PR (#2672)

The vendor/ directory has been updated and the following commits were carried:

Date Commit Author Message
2026-04-25 00:07:28 openshift/operator-framework-operator-controller@72d170e dtfranz UPSTREAM: <carry>: Add OpenShift specific files
2026-04-25 00:07:29 openshift/operator-framework-operator-controller@aa49577 Camila Macedo UPSTREAM: <carry>: Add new tests for single/own namespaces install modes
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@926246a Camila Macedo UPSTREAM: <carry>: Upgrade OCP image from 4.20 to 4.21
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@2e1874b Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] - Change logic to get ocp images from openshift/catalogd/manifests.yaml
2026-04-25 00:07:31 openshift/operator-framework-operator-controller@2421df4 Todd Short UPSTREAM: <carry>: Update OCP catalogs to v4.21
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@20e7961 Kui Wang UPSTREAM: <carry>: support singleown cases in disconnected
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@1a265fa Kui Wang UPSTREAM: <carry>: fix cases 81696 and 74618 for product code changes
2026-04-25 00:07:33 openshift/operator-framework-operator-controller@d824b9a Camila Macedo UPSTREAM: <carry>: Define Default timeouts and apply their usage accross to avoid flakes
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@136f9c6 Todd Short UPSTREAM: <carry>: Update to new feature-gate options in helm
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@02ced2b Camila Macedo UPSTREAM: <carry>: Fix flake for single/own ns tests by ensuring uniquess and waiting for k8s cleanups
2026-04-25 00:07:35 openshift/operator-framework-operator-controller@3ac827f Camila Macedo UPSTREAM: <carry>: [OTE]: Enhance single/own ns based on review comments ( Follow-Up of: 714977c )
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@5b7249d Kui Wang UPSTREAM: <carry>: Update OwnSingle template to use spec.config.inline.watchNamespace
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@bc0feaa Camila Macedo UPSTREAM: <carry>: [OTE]: Add webhook cleanup validation on extension uninstall
2026-04-25 00:07:37 openshift/operator-framework-operator-controller@0c40bae Kui Wang UPSTREAM: <carry>: Add [OTP] to migrated cases
2026-04-25 00:07:38 openshift/operator-framework-operator-controller@dc794dd Camila Macedo UPSTREAM: <carry>: [OTE]: Upgrade dependencies used
2026-04-25 00:07:40 openshift/operator-framework-operator-controller@c72aad8 Camila Macedo UPSTREAM: <carry>: fix(OTE): fix OpenShift Kubernetes replace version format
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@d0a28d4 Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] Upgrade go 1.24.6 and dependencies
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@be6d702 Kui Wang UPSTREAM: <carry>: add disconnected environment support with custom prow job for migrated qe cases
2026-04-25 00:07:42 openshift/operator-framework-operator-controller@f67c44b Jian Zhang UPSTREAM: <carry>: migrate jiazha test cases to OTE
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@89a5485 Xia Zhao UPSTREAM: <carry>: migrate clustercatalog case to ote
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@aee7acf Kui Wang UPSTREAM: <carry>: migrate olmv1 QE stress cases
2026-04-25 00:07:44 openshift/operator-framework-operator-controller@e269c16 Todd Short UPSTREAM: <carry>: Use busybox/httpd to simulate probes
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@8bb9566 Xia Zhao UPSTREAM: <carry>: migrate olmv1 QE cases
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@a7241ac Kui Wang UPSTREAM: <carry>: add agent for olmv1 qe cases
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@db49514 Todd Short UPSTREAM: <carry>: Disable upstream PodDisruptionBudget
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@e80fb27 Rashmi Gottipati UPSTREAM: <carry>: Add AGENTS.md for AI code contributions
2026-04-25 00:07:47 openshift/operator-framework-operator-controller@80c4756 Rashmi Gottipati UPSTREAM: <carry>: address review comments through addl prompts
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@f5e7fa3 Rashmi Gottipati UPSTREAM: <carry>: addressing some more review comments
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@532ffad Rashmi Gottipati UPSTREAM: <carry>: remove DCO line
2026-04-25 00:07:49 openshift/operator-framework-operator-controller@bb9a114 Bruno Andrade UPSTREAM: <carry>: migrate bandrade test cases to OTE
2026-04-25 00:07:50 openshift/operator-framework-operator-controller@07d0016 Bruno Andrade UPSTREAM: <carry>: update metadata
2026-04-25 00:07:51 openshift/operator-framework-operator-controller@d80d420 Bruno Andrade UPSTREAM: <carry>: remove originalName
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@1fb14d8 Jian Zhang UPSTREAM: <carry>: update 80458's timeout to 180s
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@2395bb6 Jian Zhang UPSTREAM: <carry>: update 83026 to specify the clustercatalog
2026-04-25 00:07:53 openshift/operator-framework-operator-controller@3ad1935 Catherine Chan-Tse UPSTREAM: <carry>: Update to golang 1.25 and ocp 4.22
2026-04-25 00:07:54 openshift/operator-framework-operator-controller@c128759 Predrag Knezevic UPSTREAM: <carry>: Use oc client for running e2e tests
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@a00fa87 Predrag Knezevic UPSTREAM: <carry>: Run upstream e2e tests tagged with @catalogd-update
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@1543805 Kui Wang UPSTREAM: <carry>: enhance case to make it more stable
2026-04-25 00:07:56 openshift/operator-framework-operator-controller@1fefe62 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@743d864 Evan Hearne UPSTREAM: <carry>: move sa creation out of buildCurlJob()
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@a242ec2 Evan Hearne UPSTREAM: <carry>: comment out delete service account
2026-04-25 00:07:58 openshift/operator-framework-operator-controller@73f863e Evan Hearne UPSTREAM: <carry>: move defercleanup for sa for LIFO
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@4109fce Evan Hearne UPSTREAM: <carry>: add polling so job fully deleted before proceed
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@b7037e9 Luke Meyer UPSTREAM: <carry>: Revert "Merge pull request #594 from ehearne-redhat/add-service-account-curl-job"
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@8aebb3a Camila Macedo UPSTREAM: <carry>: Remove openshift-redhat-marketplace catalog tests
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@f9e32bc Kui Wang UPSTREAM: <carry>: config watchnamespace cases
2026-04-25 00:08:01 openshift/operator-framework-operator-controller@20de626 Xia Zhao UPSTREAM: <carry>: enhance ocp-79770
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@cdbc54a Kui Wang UPSTREAM: <carry>: upgrade version support case
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@90cc6ca Per Goncalves da Silva UPSTREAM: <carry>: Remove installed condition check from auth preflight test
2026-04-25 00:08:03 openshift/operator-framework-operator-controller@cd03270 Per Goncalves da Silva UPSTREAM: <carry>: Add openshift/api dependency
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@edce0c9 Per Goncalves da Silva UPSTREAM: <carry>: Add boxcutter specific preflight auth test
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@4f598c0 Kui Wang UPSTREAM: <carry>: adjust watchnamespace case based on change
2026-04-25 00:08:05 openshift/operator-framework-operator-controller@3ab2f72 Camila Macedo UPSTREAM: <carry>: fix(ote): Use as operator-controller dep from root dir
2026-04-25 00:08:06 openshift/operator-framework-operator-controller@3b21713 Bruno Andrade UPSTREAM: <carry>: add 83979 automation
2026-04-25 00:08:07 openshift/operator-framework-operator-controller@94688e8 Bruno Andrade UPSTREAM: <carry>: add 85889 automation
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@cb822e1 Per Goncalves da Silva UPSTREAM: <carry>: Update test-operator startup script to fix pod probe endpoints
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@2442669 Per Goncalves da Silva UPSTREAM: <carry>: Fix up own-namespace invalid configuration test
2026-04-25 00:08:09 openshift/operator-framework-operator-controller@456c4c1 Camila Macedo UPSTREAM: <carry>: Preflight tests use in-cluster catalog and bundles instead of openshift-pipelines-operator-rh
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@606241e Kui Wang UPSTREAM: <carry>: adjust sa and permission test cases per new change from boxcutterruntime
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@52e371a Camila Macedo UPSTREAM: <carry>: Update OCP catalogs to v4.22
2026-04-25 00:08:11 openshift/operator-framework-operator-controller@74e674d Camila Macedo UPSTREAM: <carry>: chore(OTE and Default Catalog Tests) Update go and dependencies
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@12fc92f Jian Zhang UPSTREAM: <carry>: fix 83026 for TP cluster
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@982d2c4 Kui Wang UPSTREAM: <carry>: serviceAccount validation unified across all runtimes
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@ac78b9d Stephen Benjamin UPSTREAM: <carry>: Fix OLMv1 test operator to listen on IPv6
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@8950c35 Camila Macedo UPSTREAM: <carry>: Increase install timeout and add diagnostic logging for CE install tests
2026-04-25 00:08:15 openshift/operator-framework-operator-controller@b4f88e5 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@933442a Jian Zhang UPSTREAM: <carry>: update OCP-75441 to support multi-arch
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@aaf8d72 Kui Wang UPSTREAM: <carry>: deployment config cases
2026-04-25 00:08:17 openshift/operator-framework-operator-controller@df9b501 Todd Short UPSTREAM: <carry>: Add OTE tests for OLMv1 DeploymentConfig support
2026-04-25 00:08:18 openshift/operator-framework-operator-controller@aaf855d Todd Short UPSTREAM: <carry>: Update openshift/api and client-go
2026-04-25 00:08:19 openshift/operator-framework-operator-controller@42be46f Camila Macedo UPSTREAM: <carry>: Add boxcutter tests
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@12e4f6a Xia Zhao UPSTREAM: <carry>: enhance QE cases
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@a0d118d Daniel Franz UPSTREAM: <carry>: Update quay-operator version to one containing arm64 support
2026-04-25 00:08:21 openshift/operator-framework-operator-controller@72d24ac Kui Wang UPSTREAM: <carry>: verify volume/volumeMount override
2026-04-25 00:08:22 openshift/operator-framework-operator-controller@ee59c40 Jian Zhang UPSTREAM: <carry>: Add long-duration test script and documents
2026-04-25 00:08:23 openshift/operator-framework-operator-controller@05a9404 Todd Short UPSTREAM: <carry>: Update grpc in default-catalog-consistency tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@f629f59 Camila Macedo UPSTREAM: <carry>: Rename ClusterExtensionRevision to ClusterObjectSet in OTE tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@45fccb0 Camila Macedo UPSTREAM: <carry>: Skip incompatible operator test when Boxcutter uses ClusterObjectSet
2026-04-25 00:08:25 openshift/operator-framework-operator-controller@ff06084 Bruno Andrade UPSTREAM: <carry>: add ocp-87557
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@aa41fd0 Francesco Giudici UPSTREAM: <carry>: Add fgiudici as reviewer
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@f4b6295 Camila Macedo UPSTREAM: <carry>: Remove skip for incompatible operator check after rename of CER
2026-04-25 00:08:27 openshift/operator-framework-operator-controller@bb65ed4 Kui Wang UPSTREAM: <carry>: Test empty affinity erasure and cleanup
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@5e305a7 Camila Macedo UPSTREAM: <carry>: Fix boxcutter finalizer ResourceNames in preflight test
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@70e4fc9 Camila Macedo UPSTREAM: <carry>: Expand OTE docs with more comprehensive details
2026-04-25 00:08:29 openshift/operator-framework-operator-controller@fe95e8f Todd Short UPSTREAM: <carry>: Disable upstream TLSProfile tests
2026-04-25 00:08:30 openshift/operator-framework-operator-controller@7db582a Camila Macedo UPSTREAM: <carry>: OTE: Simplify by remove option to configure tests to run outside of OCP
2026-04-23 13:09:16 openshift/operator-framework-operator-controller@510ce9a Camila Macedo UPSTREAM: <carry>: OTE - Make OTE local output easier to read
2026-04-30 08:30:23 openshift/operator-framework-operator-controller@2648821 Joe Lanford UPSTREAM: <carry>: remove dead e2e registry push job and related variables

This pull request is expected to merge without any human intervention. If tests are failing here, changes must land upstream to fix any issues so that future downstreaming efforts succeed.

/assign @openshift/openshift-team-operator-runtime

- Rename local variable `tag` to `bundleTag` in catalog.Build to avoid
  shadowing the method's `tag` parameter
- Fail the step with an error on invalid LargeCRD field counts in the
  bundle option parser; use strconv.ParseInt with bitSize 0 to also
  reject non-positive values
- Look up channels by name in TestCatalog_FBCGeneration instead of
  assuming insertion order
- Use errgroup.Group with SetLimit(8) in ScenarioCleanup deletion loop
  to bound concurrent goroutines and kubectl calls
- Clarify README that ClusterObjectSet deletion is conditional on the
  BoxcutterRuntime feature gate
- Add missing `text` language specifier to fenced code block in
  e2e-isolation design doc
- Remove extra blank line in setup.sh

Signed-off-by: Todd Short <tshort@redhat.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Apr 27, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@openshift-bot: This pull request explicitly references no jira issue.

Details

In response to this:

The downstream repository has been updated with the following following upstream commits:

Date Commit Author Message
2026-04-27 16:04:29 operator-framework/operator-controller@0e70fe3 Todd Short tests: address CodeRabbit review comments from downstream PR (#2672)

The vendor/ directory has been updated and the following commits were carried:

Date Commit Author Message
2026-04-25 00:07:28 openshift/operator-framework-operator-controller@72d170e dtfranz UPSTREAM: <carry>: Add OpenShift specific files
2026-04-25 00:07:29 openshift/operator-framework-operator-controller@aa49577 Camila Macedo UPSTREAM: <carry>: Add new tests for single/own namespaces install modes
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@926246a Camila Macedo UPSTREAM: <carry>: Upgrade OCP image from 4.20 to 4.21
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@2e1874b Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] - Change logic to get ocp images from openshift/catalogd/manifests.yaml
2026-04-25 00:07:31 openshift/operator-framework-operator-controller@2421df4 Todd Short UPSTREAM: <carry>: Update OCP catalogs to v4.21
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@20e7961 Kui Wang UPSTREAM: <carry>: support singleown cases in disconnected
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@1a265fa Kui Wang UPSTREAM: <carry>: fix cases 81696 and 74618 for product code changes
2026-04-25 00:07:33 openshift/operator-framework-operator-controller@d824b9a Camila Macedo UPSTREAM: <carry>: Define Default timeouts and apply their usage accross to avoid flakes
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@136f9c6 Todd Short UPSTREAM: <carry>: Update to new feature-gate options in helm
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@02ced2b Camila Macedo UPSTREAM: <carry>: Fix flake for single/own ns tests by ensuring uniquess and waiting for k8s cleanups
2026-04-25 00:07:35 openshift/operator-framework-operator-controller@3ac827f Camila Macedo UPSTREAM: <carry>: [OTE]: Enhance single/own ns based on review comments ( Follow-Up of: 714977c )
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@5b7249d Kui Wang UPSTREAM: <carry>: Update OwnSingle template to use spec.config.inline.watchNamespace
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@bc0feaa Camila Macedo UPSTREAM: <carry>: [OTE]: Add webhook cleanup validation on extension uninstall
2026-04-25 00:07:37 openshift/operator-framework-operator-controller@0c40bae Kui Wang UPSTREAM: <carry>: Add [OTP] to migrated cases
2026-04-25 00:07:38 openshift/operator-framework-operator-controller@dc794dd Camila Macedo UPSTREAM: <carry>: [OTE]: Upgrade dependencies used
2026-04-25 00:07:40 openshift/operator-framework-operator-controller@c72aad8 Camila Macedo UPSTREAM: <carry>: fix(OTE): fix OpenShift Kubernetes replace version format
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@d0a28d4 Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] Upgrade go 1.24.6 and dependencies
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@be6d702 Kui Wang UPSTREAM: <carry>: add disconnected environment support with custom prow job for migrated qe cases
2026-04-25 00:07:42 openshift/operator-framework-operator-controller@f67c44b Jian Zhang UPSTREAM: <carry>: migrate jiazha test cases to OTE
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@89a5485 Xia Zhao UPSTREAM: <carry>: migrate clustercatalog case to ote
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@aee7acf Kui Wang UPSTREAM: <carry>: migrate olmv1 QE stress cases
2026-04-25 00:07:44 openshift/operator-framework-operator-controller@e269c16 Todd Short UPSTREAM: <carry>: Use busybox/httpd to simulate probes
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@8bb9566 Xia Zhao UPSTREAM: <carry>: migrate olmv1 QE cases
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@a7241ac Kui Wang UPSTREAM: <carry>: add agent for olmv1 qe cases
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@db49514 Todd Short UPSTREAM: <carry>: Disable upstream PodDisruptionBudget
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@e80fb27 Rashmi Gottipati UPSTREAM: <carry>: Add AGENTS.md for AI code contributions
2026-04-25 00:07:47 openshift/operator-framework-operator-controller@80c4756 Rashmi Gottipati UPSTREAM: <carry>: address review comments through addl prompts
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@f5e7fa3 Rashmi Gottipati UPSTREAM: <carry>: addressing some more review comments
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@532ffad Rashmi Gottipati UPSTREAM: <carry>: remove DCO line
2026-04-25 00:07:49 openshift/operator-framework-operator-controller@bb9a114 Bruno Andrade UPSTREAM: <carry>: migrate bandrade test cases to OTE
2026-04-25 00:07:50 openshift/operator-framework-operator-controller@07d0016 Bruno Andrade UPSTREAM: <carry>: update metadata
2026-04-25 00:07:51 openshift/operator-framework-operator-controller@d80d420 Bruno Andrade UPSTREAM: <carry>: remove originalName
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@1fb14d8 Jian Zhang UPSTREAM: <carry>: update 80458's timeout to 180s
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@2395bb6 Jian Zhang UPSTREAM: <carry>: update 83026 to specify the clustercatalog
2026-04-25 00:07:53 openshift/operator-framework-operator-controller@3ad1935 Catherine Chan-Tse UPSTREAM: <carry>: Update to golang 1.25 and ocp 4.22
2026-04-25 00:07:54 openshift/operator-framework-operator-controller@c128759 Predrag Knezevic UPSTREAM: <carry>: Use oc client for running e2e tests
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@a00fa87 Predrag Knezevic UPSTREAM: <carry>: Run upstream e2e tests tagged with @catalogd-update
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@1543805 Kui Wang UPSTREAM: <carry>: enhance case to make it more stable
2026-04-25 00:07:56 openshift/operator-framework-operator-controller@1fefe62 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@743d864 Evan Hearne UPSTREAM: <carry>: move sa creation out of buildCurlJob()
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@a242ec2 Evan Hearne UPSTREAM: <carry>: comment out delete service account
2026-04-25 00:07:58 openshift/operator-framework-operator-controller@73f863e Evan Hearne UPSTREAM: <carry>: move defercleanup for sa for LIFO
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@4109fce Evan Hearne UPSTREAM: <carry>: add polling so job fully deleted before proceed
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@b7037e9 Luke Meyer UPSTREAM: <carry>: Revert "Merge pull request #594 from ehearne-redhat/add-service-account-curl-job"
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@8aebb3a Camila Macedo UPSTREAM: <carry>: Remove openshift-redhat-marketplace catalog tests
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@f9e32bc Kui Wang UPSTREAM: <carry>: config watchnamespace cases
2026-04-25 00:08:01 openshift/operator-framework-operator-controller@20de626 Xia Zhao UPSTREAM: <carry>: enhance ocp-79770
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@cdbc54a Kui Wang UPSTREAM: <carry>: upgrade version support case
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@90cc6ca Per Goncalves da Silva UPSTREAM: <carry>: Remove installed condition check from auth preflight test
2026-04-25 00:08:03 openshift/operator-framework-operator-controller@cd03270 Per Goncalves da Silva UPSTREAM: <carry>: Add openshift/api dependency
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@edce0c9 Per Goncalves da Silva UPSTREAM: <carry>: Add boxcutter specific preflight auth test
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@4f598c0 Kui Wang UPSTREAM: <carry>: adjust watchnamespace case based on change
2026-04-25 00:08:05 openshift/operator-framework-operator-controller@3ab2f72 Camila Macedo UPSTREAM: <carry>: fix(ote): Use as operator-controller dep from root dir
2026-04-25 00:08:06 openshift/operator-framework-operator-controller@3b21713 Bruno Andrade UPSTREAM: <carry>: add 83979 automation
2026-04-25 00:08:07 openshift/operator-framework-operator-controller@94688e8 Bruno Andrade UPSTREAM: <carry>: add 85889 automation
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@cb822e1 Per Goncalves da Silva UPSTREAM: <carry>: Update test-operator startup script to fix pod probe endpoints
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@2442669 Per Goncalves da Silva UPSTREAM: <carry>: Fix up own-namespace invalid configuration test
2026-04-25 00:08:09 openshift/operator-framework-operator-controller@456c4c1 Camila Macedo UPSTREAM: <carry>: Preflight tests use in-cluster catalog and bundles instead of openshift-pipelines-operator-rh
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@606241e Kui Wang UPSTREAM: <carry>: adjust sa and permission test cases per new change from boxcutterruntime
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@52e371a Camila Macedo UPSTREAM: <carry>: Update OCP catalogs to v4.22
2026-04-25 00:08:11 openshift/operator-framework-operator-controller@74e674d Camila Macedo UPSTREAM: <carry>: chore(OTE and Default Catalog Tests) Update go and dependencies
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@12fc92f Jian Zhang UPSTREAM: <carry>: fix 83026 for TP cluster
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@982d2c4 Kui Wang UPSTREAM: <carry>: serviceAccount validation unified across all runtimes
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@ac78b9d Stephen Benjamin UPSTREAM: <carry>: Fix OLMv1 test operator to listen on IPv6
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@8950c35 Camila Macedo UPSTREAM: <carry>: Increase install timeout and add diagnostic logging for CE install tests
2026-04-25 00:08:15 openshift/operator-framework-operator-controller@b4f88e5 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@933442a Jian Zhang UPSTREAM: <carry>: update OCP-75441 to support multi-arch
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@aaf8d72 Kui Wang UPSTREAM: <carry>: deployment config cases
2026-04-25 00:08:17 openshift/operator-framework-operator-controller@df9b501 Todd Short UPSTREAM: <carry>: Add OTE tests for OLMv1 DeploymentConfig support
2026-04-25 00:08:18 openshift/operator-framework-operator-controller@aaf855d Todd Short UPSTREAM: <carry>: Update openshift/api and client-go
2026-04-25 00:08:19 openshift/operator-framework-operator-controller@42be46f Camila Macedo UPSTREAM: <carry>: Add boxcutter tests
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@12e4f6a Xia Zhao UPSTREAM: <carry>: enhance QE cases
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@a0d118d Daniel Franz UPSTREAM: <carry>: Update quay-operator version to one containing arm64 support
2026-04-25 00:08:21 openshift/operator-framework-operator-controller@72d24ac Kui Wang UPSTREAM: <carry>: verify volume/volumeMount override
2026-04-25 00:08:22 openshift/operator-framework-operator-controller@ee59c40 Jian Zhang UPSTREAM: <carry>: Add long-duration test script and documents
2026-04-25 00:08:23 openshift/operator-framework-operator-controller@05a9404 Todd Short UPSTREAM: <carry>: Update grpc in default-catalog-consistency tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@f629f59 Camila Macedo UPSTREAM: <carry>: Rename ClusterExtensionRevision to ClusterObjectSet in OTE tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@45fccb0 Camila Macedo UPSTREAM: <carry>: Skip incompatible operator test when Boxcutter uses ClusterObjectSet
2026-04-25 00:08:25 openshift/operator-framework-operator-controller@ff06084 Bruno Andrade UPSTREAM: <carry>: add ocp-87557
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@aa41fd0 Francesco Giudici UPSTREAM: <carry>: Add fgiudici as reviewer
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@f4b6295 Camila Macedo UPSTREAM: <carry>: Remove skip for incompatible operator check after rename of CER
2026-04-25 00:08:27 openshift/operator-framework-operator-controller@bb65ed4 Kui Wang UPSTREAM: <carry>: Test empty affinity erasure and cleanup
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@5e305a7 Camila Macedo UPSTREAM: <carry>: Fix boxcutter finalizer ResourceNames in preflight test
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@70e4fc9 Camila Macedo UPSTREAM: <carry>: Expand OTE docs with more comprehensive details
2026-04-25 00:08:29 openshift/operator-framework-operator-controller@fe95e8f Todd Short UPSTREAM: <carry>: Disable upstream TLSProfile tests
2026-04-25 00:08:30 openshift/operator-framework-operator-controller@7db582a Camila Macedo UPSTREAM: <carry>: OTE: Simplify by remove option to configure tests to run outside of OCP

This pull request is expected to merge without any human intervention. If tests are failing here, changes must land upstream to fix any issues so that future downstreaming efforts succeed.

/assign @openshift/openshift-team-operator-runtime

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-bot openshift-bot added tide/merge-method-merge Denotes a PR that should use a standard merge by tide when it merges. kind/sync approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. labels Apr 27, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 27, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds catalogd HA tests and leader-failover steps, replaces leader-gated catalog server with a runnable that serves on every pod and exposes readiness, implements feature-gated BundleRelease support across API/CRD/parsing/labels/controllers/tests, moves progress-deadline logic into reconcile with a deadline-aware rate limiter, and updates manifests, tests, tooling, and deps.

Changes

Cohort / File(s) Summary
E2E features & steps
test/e2e/features/ha.feature, test/e2e/features/revision.feature, test/e2e/features/install.feature, test/e2e/steps/ha_steps.go, test/e2e/steps/upgrade_steps.go
Add HA failover and ProgressDeadline scenarios; new leader-failover steps; adjust namespace handling and some assertions/messages.
E2E hooks, step wiring & docs
test/e2e/steps/hooks.go, test/e2e/steps/steps.go, test/e2e/README.md
Detect OLM deployments (now may return catalogd), set catalogdHAFeature using node/replica checks, add lifecycle/catalogd leader steps, change cleanup to bounded errgroup (limit 8), update README to conditionally delete ClusterObjectSets.
Catalog server runnable & readiness
internal/catalogd/serverutil/serverutil.go
Replace leader-gated manager.Server with a custom runnable that disables leader election so each pod serves immediately; add readiness check tied to Serve start and graceful shutdown (30s); rename tlsFileWatchercw.
BundleRelease API/CRD/docs/applyconfig
api/v1/clusterextension_types.go, manifests/experimental.yaml, manifests/experimental-e2e.yaml, helm/experimental.yaml, helm/olmv1/base/operator-controller/crd/experimental/olm.operatorframework.io_clusterextensions.yaml, openshift/operator-controller/manifests-experimental.yaml, docs/api-reference/olmv1-api-reference.md, applyconfigurations/api/v1/bundlemetadata.go
Add optional release to bundle metadata/CRD with maxLength and regex validation; document semantics; add WithRelease applyconfig setter; scale relevant deployments to 2 and enable BundleReleaseSupport in experimental manifests/helm.
Feature gate & label constant
internal/operator-controller/features/features.go, internal/operator-controller/labels/labels.go
Introduce BundleReleaseSupport feature gate (alpha, disabled by default) and BundleReleaseKey label key.
Bundle parsing, metadata plumbing & tests
internal/operator-controller/bundleutil/bundle.go, internal/operator-controller/bundleutil/bundle_test.go, internal/operator-controller/bundle/versionrelease.go
Add feature-gated explicit pkg.Release parsing and VersionRelease plumbing; change MetadataFor signature to accept bundle.VersionRelease; add Release.String() and extend tests for gated behaviors and error cases.
Controller plumbing for release metadata
internal/operator-controller/applier/boxcutter.go, internal/operator-controller/controllers/boxcutter_reconcile_steps.go, internal/operator-controller/controllers/clusterextension_reconcile_steps.go, internal/operator-controller/controllers/clusterextension_controller.go, internal/operator-controller/controllers/clusterextension_controller_test.go
Propagate bundle release into revision annotations/labels only when present; preserve distinction between missing key and present-empty value; update Resolve/Apply/History logic and tests accordingly.
Catalog metadata & cache behavior
internal/operator-controller/catalogmetadata/filter/successors.go, internal/operator-controller/catalogmetadata/filter/successors_test.go, internal/operator-controller/catalogmetadata/client/client.go, internal/operator-controller/catalogmetadata/client/client_test.go
Parse installed VersionRelease respecting explicit BundleMetadata.Release (including empty-but-set), avoid caching non-200 responses in PopulateCache, and expand tests for explicit/empty releases and error paths.
ClusterObjectSet progress/deadline
internal/operator-controller/controllers/clusterobjectset_controller.go, internal/operator-controller/controllers/progress_deadline.go, internal/operator-controller/controllers/progress_deadline_test.go, internal/operator-controller/controllers/clusterobjectset_controller_test.go
Move progress-deadline computation into reconcile, add deadline-aware condition setting and a deadlineAwareRateLimiter that caps backoff and provides a one-shot immediate requeue after expiry; add tests for duration/limiter behavior and state transitions.
Catalog build & tests
test/internal/catalog/catalog.go, test/internal/catalog/catalog_test.go
Rename local tag variable to bundleTag for push/error messages; tests now locate channels by name instead of positional indices.
Misc tooling, deps, formatting
Makefile, go.mod, openshift/tests-extension/go.mod, requirements.txt, test/extension-developer-e2e/setup.sh, docs/designs/testing/2026-04-13-e2e-isolation/design.md
Increase e2e timeout defaults (15m→20m, experimental 20m→25m), bump various module versions and packaging pin, minor whitespace/markdown fence tweaks.
E2E step helpers & cleanup concurrency
test/e2e/steps/hooks.go, test/e2e/steps/steps.go
Add ClusterObjectSet lifecycle update step, catalogd leader-management steps; parseContents now returns errors; tighten LargeCRD count parsing. (Grouped here to highlight step/helper changes.)

Sequence Diagram(s)

sequenceDiagram
  participant Test as Test Runner
  participant K8s as Kubernetes API
  participant Old as catalogd Pod (old leader)
  participant New as catalogd Pod (follower/new leader)
  participant Manager as ctrl-runtime Manager
  participant Server as Catalog HTTP Server

  Test->>K8s: create catalog resource
  K8s-->>Old: schedule/start leader Pod
  Old->>Manager: runnable starts (no leader election)
  Manager->>Server: start Serve -> signal ready
  Server-->>Test: catalog reconciled / Serving True
  Test->>K8s: force-delete Old pod (--force, grace=0)
  K8s-->>Old: terminate
  New->>Manager: runnable started immediately
  Manager->>Server: start Serve -> signal ready
  Server-->>Test: new leader observed, Serving True
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

🚥 Pre-merge checks | ✅ 9 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 45.28% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Microshift Test Compatibility ⚠️ Warning New e2e test scenario in ha.feature tests HA failover requiring multi-node clusters and multiple replicas, which are unavailable on single-node MicroShift, but lacks any protection mechanism like [Skipped:MicroShift] label. Add [Skipped:MicroShift] label to the ha.feature scenario or implement runtime skip using exutil.IsMicroShiftCluster() since test requires multi-node HA capabilities unavailable on MicroShift.
Title check ❓ Inconclusive The PR title 'OCPBUGS-62517: Synchronize from Upstream Repositories' is a vague, generic description that does not convey specific information about the actual changes. Consider using a more descriptive title that highlights a key change, such as 'Add BundleReleaseSupport feature and catalogd HA failover tests' or 'Sync upstream with bundle release support and HA improvements'.
✅ Passed checks (9 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed All test scenarios maintain stable and deterministic names without dynamic information, with dynamic values properly kept in test bodies and context setup.
Test Structure And Quality ✅ Passed The PR includes comprehensive tests following Go and Gherkin best practices with proper table-driven patterns, clear error messages, and consistent timeout handling via fake clocks.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The new e2e tests include proper SNO protection mechanisms via feature-gate-based scenario skipping and runtime detection of node count and catalogd replicas.
Topology-Aware Scheduling Compatibility ✅ Passed PR does not introduce topology-unfriendly constraints; only increases replica counts to 2 in experimental mode, which is topology-compatible with no required pod anti-affinity and PodDisruptionBudget minAvailable: 1.
Ote Binary Stdout Contract ✅ Passed PR modifies only go.mod dependency in openshift/tests-extension and test code; no unredirected stdout writes introduced in OTE or test binaries.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed New e2e tests in PR use only cluster-local Kubernetes APIs with dynamic namespace resolution. Pre-existing localhost reference in SendMetricsRequest is not part of new test additions. No IPv4 assumptions or external connectivity requirements in new test scenarios.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
test/e2e/steps/steps.go (1)

1661-1708: ⚠️ Potential issue | 🟠 Major

Reject unknown/malformed contents tokens instead of silently ignoring them.

parseContents now returns an error, but unknown tokens still fall through and are ignored. That can hide typos and let scenarios pass with unintended bundle contents.

🔧 Suggested hardening
 func parseContents(contents string) ([]catalog.BundleOption, error) {
 	contents = strings.TrimSpace(contents)
 	if contents == "" {
 		return nil, nil
 	}
 	if strings.EqualFold(contents, "BadImage") {
 		return []catalog.BundleOption{catalog.BadImage()}, nil
 	}
 	var opts []catalog.BundleOption
 	for _, part := range strings.Split(contents, ",") {
 		part = strings.TrimSpace(part)
+		if part == "" {
+			continue
+		}
 		switch {
 		case part == "CRD":
 			opts = append(opts, catalog.WithCRD())
 		case part == "Deployment":
 			opts = append(opts, catalog.WithDeployment())
 		case part == "ConfigMap":
 			opts = append(opts, catalog.WithConfigMap())
 		case strings.HasPrefix(part, "Property(") && strings.HasSuffix(part, ")"):
 			inner := part[len("Property(") : len(part)-1]
-			if k, v, ok := strings.Cut(inner, "="); ok {
-				opts = append(opts, catalog.WithBundleProperty(k, v))
-			}
+			k, v, ok := strings.Cut(inner, "=")
+			if !ok || strings.TrimSpace(k) == "" || strings.TrimSpace(v) == "" {
+				return nil, fmt.Errorf("invalid Property token %q: expected Property(type=value)", part)
+			}
+			opts = append(opts, catalog.WithBundleProperty(k, v))
 		case strings.HasPrefix(part, "InstallMode(") && strings.HasSuffix(part, ")"):
 			mode := part[len("InstallMode(") : len(part)-1]
 			opts = append(opts, catalog.WithInstallMode(v1alpha1.InstallModeType(mode)))
 		case strings.HasPrefix(part, "LargeCRD(") && strings.HasSuffix(part, ")"):
 			countStr := part[len("LargeCRD(") : len(part)-1]
 			count, err := strconv.ParseInt(countStr, 10, 0)
 			if err != nil || count <= 0 {
 				return nil, fmt.Errorf("invalid LargeCRD field count %q: must be a positive integer", countStr)
 			}
 			opts = append(opts, catalog.WithLargeCRD(int(count)))
 		case strings.HasPrefix(part, "ClusterRegistry(") && strings.HasSuffix(part, ")"):
 			host := part[len("ClusterRegistry(") : len(part)-1]
 			opts = append(opts, catalog.WithClusterRegistry(host))
 		case strings.HasPrefix(part, "StaticBundleDir(") && strings.HasSuffix(part, ")"):
 			dir := part[len("StaticBundleDir(") : len(part)-1]
 			absDir := filepath.Join(projectRootDir(), dir)
 			opts = append(opts, catalog.StaticBundleDir(absDir))
+		default:
+			return nil, fmt.Errorf("unknown bundle content token %q", part)
 		}
 	}
 	return opts, nil
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/e2e/steps/steps.go` around lines 1661 - 1708, parseContents silently
ignores unknown or malformed tokens which hides typos; update parseContents to
return an error when a part does not match any recognized pattern (CRD,
Deployment, ConfigMap, Property(...), InstallMode(...), LargeCRD(...),
ClusterRegistry(...), StaticBundleDir(...), BadImage or empty) or when a
recognized pattern is malformed (e.g., Property without "="). In the loop over
parts in parseContents, after trimming each part, detect empty parts (from extra
commas) and treat them as errors or skip consistently, and if none of the switch
cases handled the part, return fmt.Errorf with the offending token; also return
errors for malformed Property(...) and other pattern-parsing failures so callers
get immediate feedback.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@test/e2e/steps/steps.go`:
- Around line 1661-1708: parseContents silently ignores unknown or malformed
tokens which hides typos; update parseContents to return an error when a part
does not match any recognized pattern (CRD, Deployment, ConfigMap,
Property(...), InstallMode(...), LargeCRD(...), ClusterRegistry(...),
StaticBundleDir(...), BadImage or empty) or when a recognized pattern is
malformed (e.g., Property without "="). In the loop over parts in parseContents,
after trimming each part, detect empty parts (from extra commas) and treat them
as errors or skip consistently, and if none of the switch cases handled the
part, return fmt.Errorf with the offending token; also return errors for
malformed Property(...) and other pattern-parsing failures so callers get
immediate feedback.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: bf6bbb55-1573-4b42-9326-cc2ab1b49755

📥 Commits

Reviewing files that changed from the base of the PR and between eb20885 and 7e81373.

📒 Files selected for processing (7)
  • docs/designs/testing/2026-04-13-e2e-isolation/design.md
  • test/e2e/README.md
  • test/e2e/steps/hooks.go
  • test/e2e/steps/steps.go
  • test/extension-developer-e2e/setup.sh
  • test/internal/catalog/catalog.go
  • test/internal/catalog/catalog_test.go
💤 Files with no reviewable changes (1)
  • test/extension-developer-e2e/setup.sh

tmshort and others added 2 commits April 27, 2026 19:18
* fix(catalogd): bind catalog HTTP port lazily; add readiness check

The catalog HTTP server has OnlyServeWhenLeader: true, so only the leader
pod should serve catalog content. Previously, net.Listen was called eagerly
at startup for all pods: the listen socket was bound on non-leaders even
though http.Serve was never called, causing TCP connections to queue without
being served. With replicas > 1 this made ~50% of catalog content requests
fail silently.

Replace manager.Server with a custom Runnable (catalogServerRunnable) in
serverutil that:
- Binds the catalog port lazily inside Start(), which is only called on the
  leader by controller-runtime's leader election machinery.
- Closes a ready channel once the listener is established, and registers a
  channel-select readiness check via AddReadyzCheck so non-leader pods fail
  the /readyz probe and are excluded from Service endpoints.

This keeps cmd/catalogd/main.go health/readiness setup identical to
cmd/operator-controller/main.go (healthz.Ping for both liveness and
readiness); the catalog-server readiness check is an implementation detail
of serverutil.AddCatalogServerToManager.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(experimental): run catalogd and operator-controller with 2 replicas

The experimental e2e suite uses a 2-node kind cluster, making it a natural
fit to validate HA behaviour.  Set replicas=2 for both components in
helm/experimental.yaml so the experimental and experimental-e2e manifests
exercise the multi-replica path end-to-end.

This is safe for operator-controller (no leader-only HTTP servers) and for
catalogd now that the catalog server starts on all pods via
NeedLeaderElection=false, preventing the rolling-update deadlock that would
arise if the server were leader-only.

Also adds a @CatalogdHA experimental e2e scenario that force-deletes the
catalogd leader pod and verifies that a new leader is elected and the catalog
resumes serving.  The scenario is gated on a 2-node cluster (detected in
BeforeSuite and reflected in the featureGates map), so it is automatically
skipped in the standard 1-node e2e suite.  The experimental e2e timeout is
bumped from 20m to 25m to accommodate leader re-election time (~163s worst
case).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Todd Short <tshort@redhat.com>

---------

Signed-off-by: Todd Short <tshort@redhat.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Bumps [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry) from 0.21.4 to 0.21.5.
- [Release notes](https://github.com/google/go-containerregistry/releases)
- [Commits](google/go-containerregistry@v0.21.4...v0.21.5)

---
updated-dependencies:
- dependency-name: github.com/google/go-containerregistry
  dependency-version: 0.21.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Apr 28, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
internal/operator-controller/catalogmetadata/client/client.go (1)

109-112: Align cache contract/docs with new non-200 behavior.

This change is reasonable for HA retries, but it now conflicts with the Cache contract comments (Lines 30-35) that say population errors are cached. Please update those docs (and any related tests) to reflect that HTTP non-200 errors are returned directly and not cached.

Suggested doc update
 type Cache interface {
   // Get returns cache for a specified catalog name and version (resolvedRef).
   //
   // Method behaviour is as follows:
   //   - If cache exists, it returns a non-nil fs.FS and nil error
   //   - If cache doesn't exist, it returns nil fs.FS and nil error
-  //   - If there was an error during cache population,
-  //     it returns nil fs.FS and the error from the cache population.
-  //     In other words - cache population errors are also cached.
+  //   - If there was a cached error during cache population,
+  //     it returns nil fs.FS and that cached error.
+  //     Note: not all population failures are cached (for example,
+  //     HTTP non-200 responses may be returned directly by PopulateCache).
   Get(catalogName, resolvedRef string) (fs.FS, error)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/operator-controller/catalogmetadata/client/client.go` around lines
109 - 112, Update the Cache contract comment to reflect the new behavior where
HTTP non-200 responses are not cached: modify the comment on the Cache interface
(the block that previously said "population errors are cached") to state that
transient HTTP non-200 responses (e.g., non-leader 404s) are returned directly
and not stored, and add a note that only successful 200 responses are populated
into the cache; adjust any related unit/integration tests that assert caching of
non-200 responses to expect immediate error returns from the function that
currently does `return nil, fmt.Errorf("error: received unexpected response
status code %d", resp.StatusCode)`.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@internal/catalogd/serverutil/serverutil.go`:
- Around line 96-99: The TLS setup assumes r.cw is non-nil when r.cfg.CertFile
and r.cfg.KeyFile are set; add a nil guard before using r.cw to avoid a panic:
check that r.cw != nil before constructing tls.Config with GetCertificate, and
if it is nil return a descriptive error (or load the certificate directly) so
tls.Config.GetCertificate is never dereferenced; update the block that creates
tls.Config (references: r.cfg.CertFile, r.cfg.KeyFile, r.cw, tls.Config,
GetCertificate) to validate r.cw and handle the misconfiguration path safely.

In `@test/e2e/steps/ha_steps.go`:
- Around line 45-47: The code reads sc.leaderPods["catalogd"] into oldLeader
without validating existence; change the step to first check presence and
non-empty value (e.g. look up with the comma-ok form on sc.leaderPods for key
"catalogd" or test oldLeader != "") and fail fast if missing (use the test
context's failure helper such as t.Fatalf or the step's error return) so the
step doesn't proceed when the prior leader-discovery did not record a leader.

---

Nitpick comments:
In `@internal/operator-controller/catalogmetadata/client/client.go`:
- Around line 109-112: Update the Cache contract comment to reflect the new
behavior where HTTP non-200 responses are not cached: modify the comment on the
Cache interface (the block that previously said "population errors are cached")
to state that transient HTTP non-200 responses (e.g., non-leader 404s) are
returned directly and not stored, and add a note that only successful 200
responses are populated into the cache; adjust any related unit/integration
tests that assert caching of non-200 responses to expect immediate error returns
from the function that currently does `return nil, fmt.Errorf("error: received
unexpected response status code %d", resp.StatusCode)`.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: c7e7f28d-de77-429b-8cf2-46b69cedc5ba

📥 Commits

Reviewing files that changed from the base of the PR and between 7e81373 and 7e83d75.

⛔ Files ignored due to path filters (6)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/docker/cli/AUTHORS is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/docker/cli/cli/config/configfile/file.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/docker/cli/cli/config/credentials/file_store.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/docker/cli/cli/config/memorystore/store.go is excluded by !**/vendor/**, !vendor/**
  • vendor/modules.txt is excluded by !**/vendor/**, !vendor/**
📒 Files selected for processing (17)
  • Makefile
  • docs/designs/testing/2026-04-13-e2e-isolation/design.md
  • go.mod
  • helm/experimental.yaml
  • internal/catalogd/serverutil/serverutil.go
  • internal/operator-controller/catalogmetadata/client/client.go
  • internal/operator-controller/catalogmetadata/client/client_test.go
  • manifests/experimental-e2e.yaml
  • manifests/experimental.yaml
  • test/e2e/README.md
  • test/e2e/features/ha.feature
  • test/e2e/steps/ha_steps.go
  • test/e2e/steps/hooks.go
  • test/e2e/steps/steps.go
  • test/extension-developer-e2e/setup.sh
  • test/internal/catalog/catalog.go
  • test/internal/catalog/catalog_test.go
💤 Files with no reviewable changes (2)
  • test/extension-developer-e2e/setup.sh
  • internal/operator-controller/catalogmetadata/client/client_test.go
✅ Files skipped from review due to trivial changes (5)
  • docs/designs/testing/2026-04-13-e2e-isolation/design.md
  • helm/experimental.yaml
  • test/internal/catalog/catalog.go
  • go.mod
  • test/e2e/README.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • test/internal/catalog/catalog_test.go
  • test/e2e/steps/hooks.go
  • test/e2e/steps/steps.go

Comment on lines +96 to 99
if r.cfg.CertFile != "" && r.cfg.KeyFile != "" {
config := &tls.Config{
GetCertificate: tlsFileWatcher.GetCertificate,
GetCertificate: r.cw.GetCertificate,
MinVersion: tls.VersionTLS12,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add a nil guard for certificate watcher when TLS is enabled.

When cert/key are configured, r.cw is assumed non-nil. A misconfiguration here can panic during TLS handshake.

🔧 Proposed defensive fix
 if r.cfg.CertFile != "" && r.cfg.KeyFile != "" {
+	if r.cw == nil {
+		return fmt.Errorf("catalog server TLS is enabled but certificate watcher is nil")
+	}
 	config := &tls.Config{
 		GetCertificate: r.cw.GetCertificate,
 		MinVersion:     tls.VersionTLS12,
 	}
 	listener = tls.NewListener(listener, config)
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if r.cfg.CertFile != "" && r.cfg.KeyFile != "" {
config := &tls.Config{
GetCertificate: tlsFileWatcher.GetCertificate,
GetCertificate: r.cw.GetCertificate,
MinVersion: tls.VersionTLS12,
if r.cfg.CertFile != "" && r.cfg.KeyFile != "" {
if r.cw == nil {
return fmt.Errorf("catalog server TLS is enabled but certificate watcher is nil")
}
config := &tls.Config{
GetCertificate: r.cw.GetCertificate,
MinVersion: tls.VersionTLS12,
}
listener = tls.NewListener(listener, config)
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/catalogd/serverutil/serverutil.go` around lines 96 - 99, The TLS
setup assumes r.cw is non-nil when r.cfg.CertFile and r.cfg.KeyFile are set; add
a nil guard before using r.cw to avoid a panic: check that r.cw != nil before
constructing tls.Config with GetCertificate, and if it is nil return a
descriptive error (or load the certificate directly) so
tls.Config.GetCertificate is never dereferenced; update the block that creates
tls.Config (references: r.cfg.CertFile, r.cfg.KeyFile, r.cw, tls.Config,
GetCertificate) to validate r.cw and handle the misconfiguration path safely.

Comment thread test/e2e/steps/ha_steps.go
dependabot Bot and others added 3 commits April 28, 2026 13:30
Bumps [marocchino/sticky-pull-request-comment](https://github.com/marocchino/sticky-pull-request-comment) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/marocchino/sticky-pull-request-comment/releases)
- [Commits](marocchino/sticky-pull-request-comment@v3.0.3...v3.0.4)

---
updated-dependencies:
- dependency-name: marocchino/sticky-pull-request-comment
  dependency-version: 3.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/cert-manager/cert-manager](https://github.com/cert-manager/cert-manager) from 1.20.1 to 1.20.2.
- [Release notes](https://github.com/cert-manager/cert-manager/releases)
- [Changelog](https://github.com/cert-manager/cert-manager/blob/master/RELEASE.md)
- [Commits](cert-manager/cert-manager@v1.20.1...v1.20.2)

---
updated-dependencies:
- dependency-name: github.com/cert-manager/cert-manager
  dependency-version: 1.20.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Rashmi Gottipati <rgottipa@redhat.com>
@openshift-bot openshift-bot added the lgtm Indicates that a PR is ready to be merged. label Apr 29, 2026
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Apr 29, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
openshift/operator-controller/manifests-experimental.yaml (1)

1236-1241: ⚠️ Potential issue | 🟠 Major

Enable BundleReleaseSupport here or remove the new release semantics from this manifest.

This OpenShift experimental deployment still starts operator-controller without --feature-gates=BundleReleaseSupport=true, so bundles with explicit pkg.Release will continue to use legacy build-metadata parsing here even though this same manifest now advertises status.install.bundle.release. That already diverges from manifests/experimental.yaml Line 2735, which enables the gate.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@openshift/operator-controller/manifests-experimental.yaml` around lines 1236
- 1241, The manifest for the operator-controller starts without the
BundleReleaseSupport feature gate while elsewhere the manifest set advertises
status.install.bundle.release, causing inconsistent release semantics; update
the operator-controller container args (the entries starting with
--feature-gates in the operator-controller spec) to include
--feature-gates=BundleReleaseSupport=true (or remove the new
release/status.install.bundle.release behavior across manifests if you intend to
keep the legacy semantics) so the operator-controller and experimental
deployment use the same release parsing behavior.
♻️ Duplicate comments (1)
test/e2e/steps/ha_steps.go (1)

45-47: ⚠️ Potential issue | 🟠 Major

Fail fast when previous leader is missing.

On Line 46, oldLeader is read but not validated. If it is empty, this step can pass without proving leader failover correctness.

Suggested fix
 func NewCatalogdLeaderIsElected(ctx context.Context) error {
 	sc := scenarioCtx(ctx)
 	oldLeader := sc.leaderPods["catalogd"]
+	if oldLeader == "" {
+		return fmt.Errorf("catalogd leader pod not found in scenario context; run 'catalogd is ready to reconcile resources' first")
+	}
 
 	waitFor(ctx, func() bool {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/e2e/steps/ha_steps.go` around lines 45 - 47, After reading oldLeader :=
sc.leaderPods["catalogd"] add a fast-fail check to ensure the previous leader is
present: if oldLeader is empty or nil, immediately fail the test/step (e.g.
t.Fatalf or require.FailNow) with a clear message like "previous leader missing"
so the step cannot silently pass; place this check directly after the oldLeader
assignment in the same function that calls scenarioCtx(ctx) so the rest of the
leader-failover assertions only run when oldLeader is valid.
🧹 Nitpick comments (1)
internal/operator-controller/bundleutil/bundle_test.go (1)

101-108: Feature gate manipulation may cause test interference if run in parallel.

The pattern of modifying the global OperatorControllerFeatureGate and restoring it via t.Cleanup is correct for sequential test execution. However, if these tests or other tests in the package use t.Parallel(), the shared mutable state could cause flaky test results.

Consider whether parallel test execution is used in this package. If so, you may need to refactor to use test-local feature gate instances or ensure these tests don't run in parallel with others that depend on this gate.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/operator-controller/bundleutil/bundle_test.go` around lines 101 -
108, Test modifies the global OperatorControllerFeatureGate (used with
features.BundleReleaseSupport) which can race with other parallel tests; to fix,
either (A) avoid running this test in parallel by ensuring
TestGetVersionAndRelease_WithBundleReleaseSupport and its subtests do not call
t.Parallel(), or (B) eliminate global mutation by creating and using a
test-local feature gate instance (instead of
features.OperatorControllerFeatureGate) when setting BundleReleaseSupport, or
(C) serialize access by protecting Set/restore with a package-level sync.Mutex
around the calls to OperatorControllerFeatureGate.Set in the test and cleanup;
update the test to use one of these approaches and keep the existing Set/cleanup
logic (references: TestGetVersionAndRelease_WithBundleReleaseSupport,
OperatorControllerFeatureGate, BundleReleaseSupport).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@api/v1/clusterextension_types.go`:
- Around line 489-491: The MaxLength=20 validation on the Release field (Release
*string `json:"release,omitempty"`) creates a mismatch with downstream
parsing/propagation; remove or change the `//
+kubebuilder:validation:MaxLength=20` annotation on the Release field in
clusterextension_types.go so the CRD allows the longer valid release strings the
parser accepts (or increase the limit to the parser’s maximum), or alternatively
implement the same 20-char check at all ingestion points before assigning to
status.install.bundle.release and return a clear validation error there; update
the annotation and any upstream validators consistent with the chosen approach.

In `@internal/operator-controller/catalogmetadata/filter/successors_test.go`:
- Around line 190-210: Tests currently only assert empty results because
installedBundle names are absent from bundleSet; add catalog fixtures with
bundles whose Name/Version differ only by Release/build metadata so SuccessorsOf
actually matches and parseInstalledBundleVersionRelease is exercised. Update the
two test cases (the ones with installedBundle Release non-empty and empty) to
include corresponding entries in the bundleSet (or declcfg.Bundle fixtures) that
are identical except for release/build metadata, then assert that SuccessorsOf
(or the function invoking parseInstalledBundleVersionRelease) returns the
expected matching declcfg.Bundle(s) verifying preservation/stripping of build
metadata and handling of explicit empty Release.

In `@manifests/experimental.yaml`:
- Around line 1264-1287: The CRD's release field currently limits release length
with maxLength: 20 which is stricter than the controller and will cause
status.install.bundle.release updates to be rejected; update the CRD to either
remove or raise the maxLength (e.g., to a much larger limit like 256) so it
matches the controller's accepted syntax, or alternatively add the same
truncation/validation logic into the release parser used by
BundleReleaseSupport/pkg.Release to enforce the 20-char cap consistently; adjust
the "release" field (maxLength) and keep the existing x-kubernetes-validations
regex intact so the schema and controller behavior align.

---

Outside diff comments:
In `@openshift/operator-controller/manifests-experimental.yaml`:
- Around line 1236-1241: The manifest for the operator-controller starts without
the BundleReleaseSupport feature gate while elsewhere the manifest set
advertises status.install.bundle.release, causing inconsistent release
semantics; update the operator-controller container args (the entries starting
with --feature-gates in the operator-controller spec) to include
--feature-gates=BundleReleaseSupport=true (or remove the new
release/status.install.bundle.release behavior across manifests if you intend to
keep the legacy semantics) so the operator-controller and experimental
deployment use the same release parsing behavior.

---

Duplicate comments:
In `@test/e2e/steps/ha_steps.go`:
- Around line 45-47: After reading oldLeader := sc.leaderPods["catalogd"] add a
fast-fail check to ensure the previous leader is present: if oldLeader is empty
or nil, immediately fail the test/step (e.g. t.Fatalf or require.FailNow) with a
clear message like "previous leader missing" so the step cannot silently pass;
place this check directly after the oldLeader assignment in the same function
that calls scenarioCtx(ctx) so the rest of the leader-failover assertions only
run when oldLeader is valid.

---

Nitpick comments:
In `@internal/operator-controller/bundleutil/bundle_test.go`:
- Around line 101-108: Test modifies the global OperatorControllerFeatureGate
(used with features.BundleReleaseSupport) which can race with other parallel
tests; to fix, either (A) avoid running this test in parallel by ensuring
TestGetVersionAndRelease_WithBundleReleaseSupport and its subtests do not call
t.Parallel(), or (B) eliminate global mutation by creating and using a
test-local feature gate instance (instead of
features.OperatorControllerFeatureGate) when setting BundleReleaseSupport, or
(C) serialize access by protecting Set/restore with a package-level sync.Mutex
around the calls to OperatorControllerFeatureGate.Set in the test and cleanup;
update the test to use one of these approaches and keep the existing Set/cleanup
logic (references: TestGetVersionAndRelease_WithBundleReleaseSupport,
OperatorControllerFeatureGate, BundleReleaseSupport).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: ad5bf2f2-1803-444a-bd59-4b5b5de90947

📥 Commits

Reviewing files that changed from the base of the PR and between 7e83d75 and b09c936.

⛔ Files ignored due to path filters (9)
  • api/v1/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • go.sum is excluded by !**/*.sum
  • openshift/tests-extension/vendor/github.com/operator-framework/operator-controller/api/v1/clusterextension_types.go is excluded by !**/vendor/**
  • openshift/tests-extension/vendor/github.com/operator-framework/operator-controller/api/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !**/zz_generated*
  • vendor/github.com/docker/cli/AUTHORS is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/docker/cli/cli/config/configfile/file.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/docker/cli/cli/config/credentials/file_store.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/docker/cli/cli/config/memorystore/store.go is excluded by !**/vendor/**, !vendor/**
  • vendor/modules.txt is excluded by !**/vendor/**, !vendor/**
📒 Files selected for processing (34)
  • Makefile
  • api/v1/clusterextension_types.go
  • applyconfigurations/api/v1/bundlemetadata.go
  • docs/api-reference/olmv1-api-reference.md
  • docs/designs/testing/2026-04-13-e2e-isolation/design.md
  • go.mod
  • helm/experimental.yaml
  • helm/olmv1/base/operator-controller/crd/experimental/olm.operatorframework.io_clusterextensions.yaml
  • internal/catalogd/serverutil/serverutil.go
  • internal/operator-controller/applier/boxcutter.go
  • internal/operator-controller/bundle/versionrelease.go
  • internal/operator-controller/bundleutil/bundle.go
  • internal/operator-controller/bundleutil/bundle_test.go
  • internal/operator-controller/catalogmetadata/client/client.go
  • internal/operator-controller/catalogmetadata/client/client_test.go
  • internal/operator-controller/catalogmetadata/filter/successors.go
  • internal/operator-controller/catalogmetadata/filter/successors_test.go
  • internal/operator-controller/controllers/boxcutter_reconcile_steps.go
  • internal/operator-controller/controllers/clusterextension_controller.go
  • internal/operator-controller/controllers/clusterextension_controller_test.go
  • internal/operator-controller/controllers/clusterextension_reconcile_steps.go
  • internal/operator-controller/features/features.go
  • internal/operator-controller/labels/labels.go
  • manifests/experimental-e2e.yaml
  • manifests/experimental.yaml
  • openshift/operator-controller/manifests-experimental.yaml
  • test/e2e/README.md
  • test/e2e/features/ha.feature
  • test/e2e/steps/ha_steps.go
  • test/e2e/steps/hooks.go
  • test/e2e/steps/steps.go
  • test/extension-developer-e2e/setup.sh
  • test/internal/catalog/catalog.go
  • test/internal/catalog/catalog_test.go
💤 Files with no reviewable changes (2)
  • test/extension-developer-e2e/setup.sh
  • internal/operator-controller/catalogmetadata/client/client_test.go
✅ Files skipped from review due to trivial changes (4)
  • internal/operator-controller/labels/labels.go
  • docs/designs/testing/2026-04-13-e2e-isolation/design.md
  • test/e2e/README.md
  • go.mod
🚧 Files skipped from review as they are similar to previous changes (4)
  • internal/operator-controller/catalogmetadata/client/client.go
  • helm/experimental.yaml
  • test/e2e/features/ha.feature
  • internal/catalogd/serverutil/serverutil.go

Comment on lines +489 to +491
// +kubebuilder:validation:MaxLength=20
// +kubebuilder:validation:XValidation:rule="self.matches(\"^$|^(0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*)(\\\\.(0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*))*$\")",message="release must be empty or consist of dot-separated identifiers (numeric without leading zeros, or alphanumeric)"
Release *string `json:"release,omitempty"`
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot Apr 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

MaxLength=20 introduces a schema/runtime mismatch that can block reconciliation.

Line 489 caps status.install.bundle.release to 20 chars, but release parsing/propagation paths accept valid longer values. A valid release string over 20 chars would fail status validation at write time instead of being handled deterministically earlier.

💡 Proposed fix (align API with current parser behavior)
-	// +kubebuilder:validation:MaxLength=20
 	// +kubebuilder:validation:XValidation:rule="self.matches(\"^$|^(0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*)(\\\\.(0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*))*$\")",message="release must be empty or consist of dot-separated identifiers (numeric without leading zeros, or alphanumeric)"
 	Release *string `json:"release,omitempty"`

If the 20-char cap is required, enforce that same limit at all ingestion points before status assignment, and return a clear validation error there.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@api/v1/clusterextension_types.go` around lines 489 - 491, The MaxLength=20
validation on the Release field (Release *string `json:"release,omitempty"`)
creates a mismatch with downstream parsing/propagation; remove or change the `//
+kubebuilder:validation:MaxLength=20` annotation on the Release field in
clusterextension_types.go so the CRD allows the longer valid release strings the
parser accepts (or increase the limit to the parser’s maximum), or alternatively
implement the same 20-char check at all ingestion points before assigning to
status.install.bundle.release and return a clear validation error there; update
the annotation and any upstream validators consistent with the chosen approach.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@grokspawn @rashmigottipati do we care about this?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is already consistently handled in each location where a release value can be generated EXCEPT for the legacy build-metadata approach in the legacy handling, but SEPARATELY we have already verified that all available catalog metadata which uses this approach is acceptable to these limits (operator-framework/operator-registry#1852).
We no longer 'grandfather' build metadata approaches to infer release versions, nor do we allow new submissions using that approach to SQLite/legacy catalog formats, so I'm reasonably confident we've bolted the doors and locked the windows here.

Comment on lines +1264 to +1287
release:
description: |-
release is an optional field that identifies a specific release of this bundle's version.
A release represents a re-publication of the same version, typically used to deliver
packaging or metadata changes without changing the version number. When multiple
releases exist for the same version, higher releases are preferred. An unset release
is less preferred than all other release values.

The value consists of dot-separated identifiers, where each identifier is either a
numeric value (without leading zeros) or an alphanumeric string (e.g., "2", "1.el9",
"3.alpha.1"). Releases are compared identifier by identifier: numeric identifiers are
compared as integers, alphanumeric identifiers are compared lexically, and numeric
identifiers always sort before alphanumeric identifiers.

For bundles with explicit pkg.Release metadata, this field contains that release value.
For registry+v1 bundles lacking an explicit release value, this field contains the release
extracted from version's build metadata (e.g., '2' from '1.0.0+2').
This field is omitted when the bundle's release value is unset.
maxLength: 20
type: string
x-kubernetes-validations:
- message: release must be empty or consist of dot-separated
identifiers (numeric without leading zeros, or alphanumeric)
rule: self.matches("^$|^(0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*)(\\.(0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*))*$")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

maxLength: 20 is stricter than the controller now accepts.

The release parser accepts any syntactically valid dot-separated release string, and this manifest enables BundleReleaseSupport on Line 2735, so status.install.bundle.release can now be populated from explicit pkg.Release or derived build metadata. With the 20-character cap here, any longer valid release will reconcile until the status update is rejected by CRD validation. Please either enforce the same limit during parsing or relax the schema cap.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@manifests/experimental.yaml` around lines 1264 - 1287, The CRD's release
field currently limits release length with maxLength: 20 which is stricter than
the controller and will cause status.install.bundle.release updates to be
rejected; update the CRD to either remove or raise the maxLength (e.g., to a
much larger limit like 256) so it matches the controller's accepted syntax, or
alternatively add the same truncation/validation logic into the release parser
used by BundleReleaseSupport/pkg.Release to enforce the 20-char cap
consistently; adjust the "release" field (maxLength) and keep the existing
x-kubernetes-validations regex intact so the schema and controller behavior
align.

…2643)

* 🐛 fix: allow reconciliation of deadline-exceeded ClusterObjectSets

Previously, a watch predicate dropped update events for ClusterObjectSets
with ProgressDeadlineExceeded, preventing them from being archived or
cleaned up.

Remove the predicate and replace the inline deadline logic in Reconcile
with an enforceProgressDeadline() helper and a progressDeadline()
function that computes the absolute deadline from spec and metadata.

Add a deadline-aware rate limiter that caps exponential backoff at the
deadline and allows one immediate requeue when it passes, without
inspecting status conditions.

Add an e2e scenario that forces ProgressDeadlineExceeded, archives the
COS, and verifies resource cleanup.

* test: add unit test for recovery from ProgressDeadlineExceeded to Succeeded

* test: add table-driven unit tests for durationUntilDeadline

* docs: add comment clarifying Blocked takes precedence over ProgressDeadlineExceeded

* refactor: hoist nonTerminalReasons map to package-level var

* refactor: pass logger into markAsProgressing instead of using global log.Log

* test: add e2e test for recovery from ProgressDeadlineExceeded to Succeeded
@perdasilva
Copy link
Copy Markdown
Contributor

/retest

@tmshort
Copy link
Copy Markdown
Contributor

tmshort commented Apr 29, 2026

I have some upstream fixes: operator-framework/operator-controller#2679

@perdasilva
Copy link
Copy Markdown
Contributor

/lgtm

@perdasilva
Copy link
Copy Markdown
Contributor

/retest-required

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 29, 2026
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Apr 30, 2026
@openshift-bot openshift-bot changed the title OCPBUGS-62517: Synchronize from Upstream Repositories NO-ISSUE: Synchronize From Upstream Repositories Apr 30, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 30, 2026

New changes are detected. LGTM label has been removed.

@openshift-ci-robot openshift-ci-robot removed the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label Apr 30, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@openshift-bot: This pull request explicitly references no jira issue.

Details

In response to this:

The downstream repository has been updated with the following following upstream commits:

Date Commit Author Message
2026-04-30 16:30:37 operator-framework/operator-controller@e0f05f9 Todd Short fix(e2e): use per-component namespaces in HA and upgrade steps (#2685)
2026-04-29 16:23:23 operator-framework/operator-controller@09ccf9e dependabot[bot] 🌱 Bump packaging from 26.0 to 26.1 (#2683)
2026-04-29 15:53:06 operator-framework/operator-controller@0fae07a dependabot[bot] 🌱 Bump github.com/containerd/containerd from 1.7.30 to 1.7.31 (#2682)
2026-04-29 15:49:44 operator-framework/operator-controller@1312457 dependabot[bot] 🌱 Bump sigs.k8s.io/structured-merge-diff/v6 (#2681)
2026-04-29 15:41:02 operator-framework/operator-controller@b177be3 Todd Short fix(catalogd): follow-up fixes after HA PR merge (#2679)
2026-04-29 05:04:57 operator-framework/operator-controller@74e39f5 Joe Lanford 🐛 fix: allow reconciliation of deadline-exceeded ClusterObjectSets (#2643)
2026-04-28 20:29:36 operator-framework/operator-controller@4ce4bab Rashmi Gottipati adds support for parsing explicit pkg.Release field (#2543)
2026-04-28 13:36:18 operator-framework/operator-controller@ee337de dependabot[bot] 🌱 Bump github.com/cert-manager/cert-manager (#2678)
2026-04-28 13:30:39 operator-framework/operator-controller@aa70192 dependabot[bot] 🌱 Bump marocchino/sticky-pull-request-comment (#2676)
2026-04-27 19:40:54 operator-framework/operator-controller@cadb7a7 dependabot[bot] 🌱 Bump github.com/google/go-containerregistry (#2677)
2026-04-27 19:18:33 operator-framework/operator-controller@e12d90b Todd Short 🐛 Fix catalogd ha readiness (#2674)
2026-04-27 16:04:29 operator-framework/operator-controller@0e70fe3 Todd Short tests: address CodeRabbit review comments from downstream PR (#2672)

The vendor/ directory has been updated and the following commits were carried:

Date Commit Author Message
2026-04-25 00:07:28 openshift/operator-framework-operator-controller@72d170e dtfranz UPSTREAM: <carry>: Add OpenShift specific files
2026-04-25 00:07:29 openshift/operator-framework-operator-controller@aa49577 Camila Macedo UPSTREAM: <carry>: Add new tests for single/own namespaces install modes
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@926246a Camila Macedo UPSTREAM: <carry>: Upgrade OCP image from 4.20 to 4.21
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@2e1874b Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] - Change logic to get ocp images from openshift/catalogd/manifests.yaml
2026-04-25 00:07:31 openshift/operator-framework-operator-controller@2421df4 Todd Short UPSTREAM: <carry>: Update OCP catalogs to v4.21
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@20e7961 Kui Wang UPSTREAM: <carry>: support singleown cases in disconnected
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@1a265fa Kui Wang UPSTREAM: <carry>: fix cases 81696 and 74618 for product code changes
2026-04-25 00:07:33 openshift/operator-framework-operator-controller@d824b9a Camila Macedo UPSTREAM: <carry>: Define Default timeouts and apply their usage accross to avoid flakes
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@136f9c6 Todd Short UPSTREAM: <carry>: Update to new feature-gate options in helm
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@02ced2b Camila Macedo UPSTREAM: <carry>: Fix flake for single/own ns tests by ensuring uniquess and waiting for k8s cleanups
2026-04-25 00:07:35 openshift/operator-framework-operator-controller@3ac827f Camila Macedo UPSTREAM: <carry>: [OTE]: Enhance single/own ns based on review comments ( Follow-Up of: 714977c )
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@5b7249d Kui Wang UPSTREAM: <carry>: Update OwnSingle template to use spec.config.inline.watchNamespace
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@bc0feaa Camila Macedo UPSTREAM: <carry>: [OTE]: Add webhook cleanup validation on extension uninstall
2026-04-25 00:07:37 openshift/operator-framework-operator-controller@0c40bae Kui Wang UPSTREAM: <carry>: Add [OTP] to migrated cases
2026-04-25 00:07:38 openshift/operator-framework-operator-controller@dc794dd Camila Macedo UPSTREAM: <carry>: [OTE]: Upgrade dependencies used
2026-04-25 00:07:40 openshift/operator-framework-operator-controller@c72aad8 Camila Macedo UPSTREAM: <carry>: fix(OTE): fix OpenShift Kubernetes replace version format
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@d0a28d4 Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] Upgrade go 1.24.6 and dependencies
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@be6d702 Kui Wang UPSTREAM: <carry>: add disconnected environment support with custom prow job for migrated qe cases
2026-04-25 00:07:42 openshift/operator-framework-operator-controller@f67c44b Jian Zhang UPSTREAM: <carry>: migrate jiazha test cases to OTE
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@89a5485 Xia Zhao UPSTREAM: <carry>: migrate clustercatalog case to ote
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@aee7acf Kui Wang UPSTREAM: <carry>: migrate olmv1 QE stress cases
2026-04-25 00:07:44 openshift/operator-framework-operator-controller@e269c16 Todd Short UPSTREAM: <carry>: Use busybox/httpd to simulate probes
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@8bb9566 Xia Zhao UPSTREAM: <carry>: migrate olmv1 QE cases
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@a7241ac Kui Wang UPSTREAM: <carry>: add agent for olmv1 qe cases
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@db49514 Todd Short UPSTREAM: <carry>: Disable upstream PodDisruptionBudget
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@e80fb27 Rashmi Gottipati UPSTREAM: <carry>: Add AGENTS.md for AI code contributions
2026-04-25 00:07:47 openshift/operator-framework-operator-controller@80c4756 Rashmi Gottipati UPSTREAM: <carry>: address review comments through addl prompts
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@f5e7fa3 Rashmi Gottipati UPSTREAM: <carry>: addressing some more review comments
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@532ffad Rashmi Gottipati UPSTREAM: <carry>: remove DCO line
2026-04-25 00:07:49 openshift/operator-framework-operator-controller@bb9a114 Bruno Andrade UPSTREAM: <carry>: migrate bandrade test cases to OTE
2026-04-25 00:07:50 openshift/operator-framework-operator-controller@07d0016 Bruno Andrade UPSTREAM: <carry>: update metadata
2026-04-25 00:07:51 openshift/operator-framework-operator-controller@d80d420 Bruno Andrade UPSTREAM: <carry>: remove originalName
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@1fb14d8 Jian Zhang UPSTREAM: <carry>: update 80458's timeout to 180s
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@2395bb6 Jian Zhang UPSTREAM: <carry>: update 83026 to specify the clustercatalog
2026-04-25 00:07:53 openshift/operator-framework-operator-controller@3ad1935 Catherine Chan-Tse UPSTREAM: <carry>: Update to golang 1.25 and ocp 4.22
2026-04-25 00:07:54 openshift/operator-framework-operator-controller@c128759 Predrag Knezevic UPSTREAM: <carry>: Use oc client for running e2e tests
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@a00fa87 Predrag Knezevic UPSTREAM: <carry>: Run upstream e2e tests tagged with @catalogd-update
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@1543805 Kui Wang UPSTREAM: <carry>: enhance case to make it more stable
2026-04-25 00:07:56 openshift/operator-framework-operator-controller@1fefe62 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@743d864 Evan Hearne UPSTREAM: <carry>: move sa creation out of buildCurlJob()
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@a242ec2 Evan Hearne UPSTREAM: <carry>: comment out delete service account
2026-04-25 00:07:58 openshift/operator-framework-operator-controller@73f863e Evan Hearne UPSTREAM: <carry>: move defercleanup for sa for LIFO
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@4109fce Evan Hearne UPSTREAM: <carry>: add polling so job fully deleted before proceed
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@b7037e9 Luke Meyer UPSTREAM: <carry>: Revert "Merge pull request #594 from ehearne-redhat/add-service-account-curl-job"
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@8aebb3a Camila Macedo UPSTREAM: <carry>: Remove openshift-redhat-marketplace catalog tests
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@f9e32bc Kui Wang UPSTREAM: <carry>: config watchnamespace cases
2026-04-25 00:08:01 openshift/operator-framework-operator-controller@20de626 Xia Zhao UPSTREAM: <carry>: enhance ocp-79770
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@cdbc54a Kui Wang UPSTREAM: <carry>: upgrade version support case
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@90cc6ca Per Goncalves da Silva UPSTREAM: <carry>: Remove installed condition check from auth preflight test
2026-04-25 00:08:03 openshift/operator-framework-operator-controller@cd03270 Per Goncalves da Silva UPSTREAM: <carry>: Add openshift/api dependency
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@edce0c9 Per Goncalves da Silva UPSTREAM: <carry>: Add boxcutter specific preflight auth test
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@4f598c0 Kui Wang UPSTREAM: <carry>: adjust watchnamespace case based on change
2026-04-25 00:08:05 openshift/operator-framework-operator-controller@3ab2f72 Camila Macedo UPSTREAM: <carry>: fix(ote): Use as operator-controller dep from root dir
2026-04-25 00:08:06 openshift/operator-framework-operator-controller@3b21713 Bruno Andrade UPSTREAM: <carry>: add 83979 automation
2026-04-25 00:08:07 openshift/operator-framework-operator-controller@94688e8 Bruno Andrade UPSTREAM: <carry>: add 85889 automation
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@cb822e1 Per Goncalves da Silva UPSTREAM: <carry>: Update test-operator startup script to fix pod probe endpoints
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@2442669 Per Goncalves da Silva UPSTREAM: <carry>: Fix up own-namespace invalid configuration test
2026-04-25 00:08:09 openshift/operator-framework-operator-controller@456c4c1 Camila Macedo UPSTREAM: <carry>: Preflight tests use in-cluster catalog and bundles instead of openshift-pipelines-operator-rh
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@606241e Kui Wang UPSTREAM: <carry>: adjust sa and permission test cases per new change from boxcutterruntime
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@52e371a Camila Macedo UPSTREAM: <carry>: Update OCP catalogs to v4.22
2026-04-25 00:08:11 openshift/operator-framework-operator-controller@74e674d Camila Macedo UPSTREAM: <carry>: chore(OTE and Default Catalog Tests) Update go and dependencies
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@12fc92f Jian Zhang UPSTREAM: <carry>: fix 83026 for TP cluster
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@982d2c4 Kui Wang UPSTREAM: <carry>: serviceAccount validation unified across all runtimes
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@ac78b9d Stephen Benjamin UPSTREAM: <carry>: Fix OLMv1 test operator to listen on IPv6
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@8950c35 Camila Macedo UPSTREAM: <carry>: Increase install timeout and add diagnostic logging for CE install tests
2026-04-25 00:08:15 openshift/operator-framework-operator-controller@b4f88e5 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@933442a Jian Zhang UPSTREAM: <carry>: update OCP-75441 to support multi-arch
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@aaf8d72 Kui Wang UPSTREAM: <carry>: deployment config cases
2026-04-25 00:08:17 openshift/operator-framework-operator-controller@df9b501 Todd Short UPSTREAM: <carry>: Add OTE tests for OLMv1 DeploymentConfig support
2026-04-25 00:08:18 openshift/operator-framework-operator-controller@aaf855d Todd Short UPSTREAM: <carry>: Update openshift/api and client-go
2026-04-25 00:08:19 openshift/operator-framework-operator-controller@42be46f Camila Macedo UPSTREAM: <carry>: Add boxcutter tests
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@12e4f6a Xia Zhao UPSTREAM: <carry>: enhance QE cases
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@a0d118d Daniel Franz UPSTREAM: <carry>: Update quay-operator version to one containing arm64 support
2026-04-25 00:08:21 openshift/operator-framework-operator-controller@72d24ac Kui Wang UPSTREAM: <carry>: verify volume/volumeMount override
2026-04-25 00:08:22 openshift/operator-framework-operator-controller@ee59c40 Jian Zhang UPSTREAM: <carry>: Add long-duration test script and documents
2026-04-25 00:08:23 openshift/operator-framework-operator-controller@05a9404 Todd Short UPSTREAM: <carry>: Update grpc in default-catalog-consistency tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@f629f59 Camila Macedo UPSTREAM: <carry>: Rename ClusterExtensionRevision to ClusterObjectSet in OTE tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@45fccb0 Camila Macedo UPSTREAM: <carry>: Skip incompatible operator test when Boxcutter uses ClusterObjectSet
2026-04-25 00:08:25 openshift/operator-framework-operator-controller@ff06084 Bruno Andrade UPSTREAM: <carry>: add ocp-87557
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@aa41fd0 Francesco Giudici UPSTREAM: <carry>: Add fgiudici as reviewer
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@f4b6295 Camila Macedo UPSTREAM: <carry>: Remove skip for incompatible operator check after rename of CER
2026-04-25 00:08:27 openshift/operator-framework-operator-controller@bb65ed4 Kui Wang UPSTREAM: <carry>: Test empty affinity erasure and cleanup
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@5e305a7 Camila Macedo UPSTREAM: <carry>: Fix boxcutter finalizer ResourceNames in preflight test
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@70e4fc9 Camila Macedo UPSTREAM: <carry>: Expand OTE docs with more comprehensive details
2026-04-25 00:08:29 openshift/operator-framework-operator-controller@fe95e8f Todd Short UPSTREAM: <carry>: Disable upstream TLSProfile tests
2026-04-25 00:08:30 openshift/operator-framework-operator-controller@7db582a Camila Macedo UPSTREAM: <carry>: OTE: Simplify by remove option to configure tests to run outside of OCP
2026-04-23 13:09:16 openshift/operator-framework-operator-controller@510ce9a Camila Macedo UPSTREAM: <carry>: OTE - Make OTE local output easier to read
2026-04-30 08:30:23 openshift/operator-framework-operator-controller@2648821 Joe Lanford UPSTREAM: <carry>: remove dead e2e registry push job and related variables

This pull request is expected to merge without any human intervention. If tests are failing here, changes must land upstream to fix any issues so that future downstreaming efforts succeed.

/assign @openshift/openshift-team-operator-runtime

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-bot openshift-bot added the lgtm Indicates that a PR is ready to be merged. label Apr 30, 2026
@tmshort
Copy link
Copy Markdown
Contributor

tmshort commented Apr 30, 2026

/retitle OCPBUGS-62517: Synchronize from Upstream Repositories

@openshift-ci openshift-ci Bot changed the title NO-ISSUE: Synchronize From Upstream Repositories OCPBUGS-62517: Synchronize from Upstream Repositories Apr 30, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label Apr 30, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@openshift-bot: This pull request references Jira Issue OCPBUGS-62517, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)

No GitHub users were found matching the public email listed for the QA contact in Jira (jiazha@redhat.com), skipping review request.

Details

In response to this:

The downstream repository has been updated with the following following upstream commits:

Date Commit Author Message
2026-04-30 16:30:37 operator-framework/operator-controller@e0f05f9 Todd Short fix(e2e): use per-component namespaces in HA and upgrade steps (#2685)
2026-04-29 16:23:23 operator-framework/operator-controller@09ccf9e dependabot[bot] 🌱 Bump packaging from 26.0 to 26.1 (#2683)
2026-04-29 15:53:06 operator-framework/operator-controller@0fae07a dependabot[bot] 🌱 Bump github.com/containerd/containerd from 1.7.30 to 1.7.31 (#2682)
2026-04-29 15:49:44 operator-framework/operator-controller@1312457 dependabot[bot] 🌱 Bump sigs.k8s.io/structured-merge-diff/v6 (#2681)
2026-04-29 15:41:02 operator-framework/operator-controller@b177be3 Todd Short fix(catalogd): follow-up fixes after HA PR merge (#2679)
2026-04-29 05:04:57 operator-framework/operator-controller@74e39f5 Joe Lanford 🐛 fix: allow reconciliation of deadline-exceeded ClusterObjectSets (#2643)
2026-04-28 20:29:36 operator-framework/operator-controller@4ce4bab Rashmi Gottipati adds support for parsing explicit pkg.Release field (#2543)
2026-04-28 13:36:18 operator-framework/operator-controller@ee337de dependabot[bot] 🌱 Bump github.com/cert-manager/cert-manager (#2678)
2026-04-28 13:30:39 operator-framework/operator-controller@aa70192 dependabot[bot] 🌱 Bump marocchino/sticky-pull-request-comment (#2676)
2026-04-27 19:40:54 operator-framework/operator-controller@cadb7a7 dependabot[bot] 🌱 Bump github.com/google/go-containerregistry (#2677)
2026-04-27 19:18:33 operator-framework/operator-controller@e12d90b Todd Short 🐛 Fix catalogd ha readiness (#2674)
2026-04-27 16:04:29 operator-framework/operator-controller@0e70fe3 Todd Short tests: address CodeRabbit review comments from downstream PR (#2672)

The vendor/ directory has been updated and the following commits were carried:

Date Commit Author Message
2026-04-25 00:07:28 openshift/operator-framework-operator-controller@72d170e dtfranz UPSTREAM: <carry>: Add OpenShift specific files
2026-04-25 00:07:29 openshift/operator-framework-operator-controller@aa49577 Camila Macedo UPSTREAM: <carry>: Add new tests for single/own namespaces install modes
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@926246a Camila Macedo UPSTREAM: <carry>: Upgrade OCP image from 4.20 to 4.21
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@2e1874b Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] - Change logic to get ocp images from openshift/catalogd/manifests.yaml
2026-04-25 00:07:31 openshift/operator-framework-operator-controller@2421df4 Todd Short UPSTREAM: <carry>: Update OCP catalogs to v4.21
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@20e7961 Kui Wang UPSTREAM: <carry>: support singleown cases in disconnected
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@1a265fa Kui Wang UPSTREAM: <carry>: fix cases 81696 and 74618 for product code changes
2026-04-25 00:07:33 openshift/operator-framework-operator-controller@d824b9a Camila Macedo UPSTREAM: <carry>: Define Default timeouts and apply their usage accross to avoid flakes
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@136f9c6 Todd Short UPSTREAM: <carry>: Update to new feature-gate options in helm
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@02ced2b Camila Macedo UPSTREAM: <carry>: Fix flake for single/own ns tests by ensuring uniquess and waiting for k8s cleanups
2026-04-25 00:07:35 openshift/operator-framework-operator-controller@3ac827f Camila Macedo UPSTREAM: <carry>: [OTE]: Enhance single/own ns based on review comments ( Follow-Up of: 714977c )
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@5b7249d Kui Wang UPSTREAM: <carry>: Update OwnSingle template to use spec.config.inline.watchNamespace
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@bc0feaa Camila Macedo UPSTREAM: <carry>: [OTE]: Add webhook cleanup validation on extension uninstall
2026-04-25 00:07:37 openshift/operator-framework-operator-controller@0c40bae Kui Wang UPSTREAM: <carry>: Add [OTP] to migrated cases
2026-04-25 00:07:38 openshift/operator-framework-operator-controller@dc794dd Camila Macedo UPSTREAM: <carry>: [OTE]: Upgrade dependencies used
2026-04-25 00:07:40 openshift/operator-framework-operator-controller@c72aad8 Camila Macedo UPSTREAM: <carry>: fix(OTE): fix OpenShift Kubernetes replace version format
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@d0a28d4 Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] Upgrade go 1.24.6 and dependencies
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@be6d702 Kui Wang UPSTREAM: <carry>: add disconnected environment support with custom prow job for migrated qe cases
2026-04-25 00:07:42 openshift/operator-framework-operator-controller@f67c44b Jian Zhang UPSTREAM: <carry>: migrate jiazha test cases to OTE
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@89a5485 Xia Zhao UPSTREAM: <carry>: migrate clustercatalog case to ote
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@aee7acf Kui Wang UPSTREAM: <carry>: migrate olmv1 QE stress cases
2026-04-25 00:07:44 openshift/operator-framework-operator-controller@e269c16 Todd Short UPSTREAM: <carry>: Use busybox/httpd to simulate probes
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@8bb9566 Xia Zhao UPSTREAM: <carry>: migrate olmv1 QE cases
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@a7241ac Kui Wang UPSTREAM: <carry>: add agent for olmv1 qe cases
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@db49514 Todd Short UPSTREAM: <carry>: Disable upstream PodDisruptionBudget
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@e80fb27 Rashmi Gottipati UPSTREAM: <carry>: Add AGENTS.md for AI code contributions
2026-04-25 00:07:47 openshift/operator-framework-operator-controller@80c4756 Rashmi Gottipati UPSTREAM: <carry>: address review comments through addl prompts
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@f5e7fa3 Rashmi Gottipati UPSTREAM: <carry>: addressing some more review comments
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@532ffad Rashmi Gottipati UPSTREAM: <carry>: remove DCO line
2026-04-25 00:07:49 openshift/operator-framework-operator-controller@bb9a114 Bruno Andrade UPSTREAM: <carry>: migrate bandrade test cases to OTE
2026-04-25 00:07:50 openshift/operator-framework-operator-controller@07d0016 Bruno Andrade UPSTREAM: <carry>: update metadata
2026-04-25 00:07:51 openshift/operator-framework-operator-controller@d80d420 Bruno Andrade UPSTREAM: <carry>: remove originalName
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@1fb14d8 Jian Zhang UPSTREAM: <carry>: update 80458's timeout to 180s
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@2395bb6 Jian Zhang UPSTREAM: <carry>: update 83026 to specify the clustercatalog
2026-04-25 00:07:53 openshift/operator-framework-operator-controller@3ad1935 Catherine Chan-Tse UPSTREAM: <carry>: Update to golang 1.25 and ocp 4.22
2026-04-25 00:07:54 openshift/operator-framework-operator-controller@c128759 Predrag Knezevic UPSTREAM: <carry>: Use oc client for running e2e tests
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@a00fa87 Predrag Knezevic UPSTREAM: <carry>: Run upstream e2e tests tagged with @catalogd-update
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@1543805 Kui Wang UPSTREAM: <carry>: enhance case to make it more stable
2026-04-25 00:07:56 openshift/operator-framework-operator-controller@1fefe62 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@743d864 Evan Hearne UPSTREAM: <carry>: move sa creation out of buildCurlJob()
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@a242ec2 Evan Hearne UPSTREAM: <carry>: comment out delete service account
2026-04-25 00:07:58 openshift/operator-framework-operator-controller@73f863e Evan Hearne UPSTREAM: <carry>: move defercleanup for sa for LIFO
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@4109fce Evan Hearne UPSTREAM: <carry>: add polling so job fully deleted before proceed
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@b7037e9 Luke Meyer UPSTREAM: <carry>: Revert "Merge pull request #594 from ehearne-redhat/add-service-account-curl-job"
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@8aebb3a Camila Macedo UPSTREAM: <carry>: Remove openshift-redhat-marketplace catalog tests
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@f9e32bc Kui Wang UPSTREAM: <carry>: config watchnamespace cases
2026-04-25 00:08:01 openshift/operator-framework-operator-controller@20de626 Xia Zhao UPSTREAM: <carry>: enhance ocp-79770
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@cdbc54a Kui Wang UPSTREAM: <carry>: upgrade version support case
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@90cc6ca Per Goncalves da Silva UPSTREAM: <carry>: Remove installed condition check from auth preflight test
2026-04-25 00:08:03 openshift/operator-framework-operator-controller@cd03270 Per Goncalves da Silva UPSTREAM: <carry>: Add openshift/api dependency
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@edce0c9 Per Goncalves da Silva UPSTREAM: <carry>: Add boxcutter specific preflight auth test
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@4f598c0 Kui Wang UPSTREAM: <carry>: adjust watchnamespace case based on change
2026-04-25 00:08:05 openshift/operator-framework-operator-controller@3ab2f72 Camila Macedo UPSTREAM: <carry>: fix(ote): Use as operator-controller dep from root dir
2026-04-25 00:08:06 openshift/operator-framework-operator-controller@3b21713 Bruno Andrade UPSTREAM: <carry>: add 83979 automation
2026-04-25 00:08:07 openshift/operator-framework-operator-controller@94688e8 Bruno Andrade UPSTREAM: <carry>: add 85889 automation
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@cb822e1 Per Goncalves da Silva UPSTREAM: <carry>: Update test-operator startup script to fix pod probe endpoints
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@2442669 Per Goncalves da Silva UPSTREAM: <carry>: Fix up own-namespace invalid configuration test
2026-04-25 00:08:09 openshift/operator-framework-operator-controller@456c4c1 Camila Macedo UPSTREAM: <carry>: Preflight tests use in-cluster catalog and bundles instead of openshift-pipelines-operator-rh
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@606241e Kui Wang UPSTREAM: <carry>: adjust sa and permission test cases per new change from boxcutterruntime
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@52e371a Camila Macedo UPSTREAM: <carry>: Update OCP catalogs to v4.22
2026-04-25 00:08:11 openshift/operator-framework-operator-controller@74e674d Camila Macedo UPSTREAM: <carry>: chore(OTE and Default Catalog Tests) Update go and dependencies
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@12fc92f Jian Zhang UPSTREAM: <carry>: fix 83026 for TP cluster
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@982d2c4 Kui Wang UPSTREAM: <carry>: serviceAccount validation unified across all runtimes
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@ac78b9d Stephen Benjamin UPSTREAM: <carry>: Fix OLMv1 test operator to listen on IPv6
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@8950c35 Camila Macedo UPSTREAM: <carry>: Increase install timeout and add diagnostic logging for CE install tests
2026-04-25 00:08:15 openshift/operator-framework-operator-controller@b4f88e5 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@933442a Jian Zhang UPSTREAM: <carry>: update OCP-75441 to support multi-arch
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@aaf8d72 Kui Wang UPSTREAM: <carry>: deployment config cases
2026-04-25 00:08:17 openshift/operator-framework-operator-controller@df9b501 Todd Short UPSTREAM: <carry>: Add OTE tests for OLMv1 DeploymentConfig support
2026-04-25 00:08:18 openshift/operator-framework-operator-controller@aaf855d Todd Short UPSTREAM: <carry>: Update openshift/api and client-go
2026-04-25 00:08:19 openshift/operator-framework-operator-controller@42be46f Camila Macedo UPSTREAM: <carry>: Add boxcutter tests
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@12e4f6a Xia Zhao UPSTREAM: <carry>: enhance QE cases
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@a0d118d Daniel Franz UPSTREAM: <carry>: Update quay-operator version to one containing arm64 support
2026-04-25 00:08:21 openshift/operator-framework-operator-controller@72d24ac Kui Wang UPSTREAM: <carry>: verify volume/volumeMount override
2026-04-25 00:08:22 openshift/operator-framework-operator-controller@ee59c40 Jian Zhang UPSTREAM: <carry>: Add long-duration test script and documents
2026-04-25 00:08:23 openshift/operator-framework-operator-controller@05a9404 Todd Short UPSTREAM: <carry>: Update grpc in default-catalog-consistency tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@f629f59 Camila Macedo UPSTREAM: <carry>: Rename ClusterExtensionRevision to ClusterObjectSet in OTE tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@45fccb0 Camila Macedo UPSTREAM: <carry>: Skip incompatible operator test when Boxcutter uses ClusterObjectSet
2026-04-25 00:08:25 openshift/operator-framework-operator-controller@ff06084 Bruno Andrade UPSTREAM: <carry>: add ocp-87557
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@aa41fd0 Francesco Giudici UPSTREAM: <carry>: Add fgiudici as reviewer
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@f4b6295 Camila Macedo UPSTREAM: <carry>: Remove skip for incompatible operator check after rename of CER
2026-04-25 00:08:27 openshift/operator-framework-operator-controller@bb65ed4 Kui Wang UPSTREAM: <carry>: Test empty affinity erasure and cleanup
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@5e305a7 Camila Macedo UPSTREAM: <carry>: Fix boxcutter finalizer ResourceNames in preflight test
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@70e4fc9 Camila Macedo UPSTREAM: <carry>: Expand OTE docs with more comprehensive details
2026-04-25 00:08:29 openshift/operator-framework-operator-controller@fe95e8f Todd Short UPSTREAM: <carry>: Disable upstream TLSProfile tests
2026-04-25 00:08:30 openshift/operator-framework-operator-controller@7db582a Camila Macedo UPSTREAM: <carry>: OTE: Simplify by remove option to configure tests to run outside of OCP
2026-04-23 13:09:16 openshift/operator-framework-operator-controller@510ce9a Camila Macedo UPSTREAM: <carry>: OTE - Make OTE local output easier to read
2026-04-30 08:30:23 openshift/operator-framework-operator-controller@2648821 Joe Lanford UPSTREAM: <carry>: remove dead e2e registry push job and related variables

This pull request is expected to merge without any human intervention. If tests are failing here, changes must land upstream to fix any issues so that future downstreaming efforts succeed.

/assign @openshift/openshift-team-operator-runtime

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
test/e2e/steps/upgrade_steps.go (1)

32-37: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Populate componentNamespaces after install to keep per-component checks correct.

On Line 32 and Line 36, the code updates only olmNamespace and drops catalogd deployment info. In upgrade paths where BeforeSuite couldn’t pre-detect deployments, this leaves componentNamespaces unset and namespaceForComponent("catalogd") can resolve to the wrong namespace.

Suggested fix
-		olm, _, err := detectOLMDeployments()
+		olm, catalogdDep, err := detectOLMDeployments()
 		if err != nil {
 			return err
 		}
 		olmNamespace = olm.Namespace
+		componentNamespaces["operator-controller"] = olm.Namespace
+		catalogdNS := olm.Namespace
+		if catalogdDep != nil {
+			catalogdNS = catalogdDep.Namespace
+		}
+		componentNamespaces["catalogd"] = catalogdNS
 		return nil
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/e2e/steps/upgrade_steps.go` around lines 32 - 37, The code calls
detectOLMDeployments() and only assigns olmNamespace, leaving
componentNamespaces unset; update the block that handles the returned values
from detectOLMDeployments() (the call that returns olm, _, err) to capture the
deployments result and populate componentNamespaces so
namespaceForComponent("catalogd") resolves correctly — e.g., change the ignored
variable to a meaningful name (deployments) and set
componentNamespaces["catalogd"] = deployments["catalogd"].Namespace (and any
other component entries returned) after assigning olmNamespace; ensure this uses
the existing detectOLMDeployments, olmNamespace, componentNamespaces,
namespaceForComponent, and catalogd identifiers.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@internal/operator-controller/catalogmetadata/client/client.go`:
- Around line 109-112: Update the cache contract comments for the Cache.Get and
Cache.Put methods in client.go to reflect that non-200 HTTP responses are
intentionally not written to the cache; specifically, change the wording in the
Cache.Get/Put doc comments (referencing the Cache interface and its Get/Put
methods) to state that only successful (200) responses are cached and that
callers should not expect non-200 responses (e.g., 404 from non-leader pods) to
be populated in the cache, and mention that callers should handle retries
without relying on cached population for error or non-200 cases.

In `@internal/operator-controller/controllers/clusterobjectset_controller.go`:
- Around line 339-345: SetupWithManager currently unconditionally sets c.Clock =
clock.RealClock{}, preventing injected fake clocks; change it to only default
c.Clock to clock.RealClock{} when c.Clock is nil so reconcile (which
dereferences c.Clock each run) and newDeadlineAwareRateLimiter still receive the
injected clock. Locate SetupWithManager and replace the unconditional assignment
with a nil-check (e.g., if c.Clock == nil { c.Clock = clock.RealClock{} }) so
callers can inject fake clocks for testing while leaving
controller.Options/RateLimiter setup unchanged.

In `@test/e2e/steps/steps.go`:
- Around line 219-226: The helper namespaceForComponent is implemented but not
used; update all namespace-sensitive lookups to call it instead of hardcoding
olmNamespace: replace occurrences in listReferredSecrets, SendMetricsRequest,
and helmReleaseSecretForExtension so they derive the namespace via
namespaceForComponent(componentName) (or accept/pass the appropriate component
string into those functions if needed) and use that returned namespace for API
queries; ensure any call sites that currently assume olmNamespace are updated to
provide the right component identifier so the lookups respect split vs
single-namespace layouts.

---

Outside diff comments:
In `@test/e2e/steps/upgrade_steps.go`:
- Around line 32-37: The code calls detectOLMDeployments() and only assigns
olmNamespace, leaving componentNamespaces unset; update the block that handles
the returned values from detectOLMDeployments() (the call that returns olm, _,
err) to capture the deployments result and populate componentNamespaces so
namespaceForComponent("catalogd") resolves correctly — e.g., change the ignored
variable to a meaningful name (deployments) and set
componentNamespaces["catalogd"] = deployments["catalogd"].Namespace (and any
other component entries returned) after assigning olmNamespace; ensure this uses
the existing detectOLMDeployments, olmNamespace, componentNamespaces,
namespaceForComponent, and catalogd identifiers.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: add1d36f-391b-4aac-8252-f46bee9f74de

📥 Commits

Reviewing files that changed from the base of the PR and between e4b8c55 and e048679.

⛔ Files ignored due to path filters (23)
  • api/v1/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • go.sum is excluded by !**/*.sum
  • openshift/tests-extension/go.sum is excluded by !**/*.sum
  • openshift/tests-extension/vendor/github.com/operator-framework/operator-controller/api/v1/clusterextension_types.go is excluded by !**/vendor/**
  • openshift/tests-extension/vendor/github.com/operator-framework/operator-controller/api/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !**/zz_generated*
  • openshift/tests-extension/vendor/modules.txt is excluded by !**/vendor/**
  • openshift/tests-extension/vendor/sigs.k8s.io/structured-merge-diff/v6/fieldpath/element.go is excluded by !**/vendor/**
  • openshift/tests-extension/vendor/sigs.k8s.io/structured-merge-diff/v6/fieldpath/pathelementmap.go is excluded by !**/vendor/**
  • openshift/tests-extension/vendor/sigs.k8s.io/structured-merge-diff/v6/fieldpath/set.go is excluded by !**/vendor/**
  • openshift/tests-extension/vendor/sigs.k8s.io/structured-merge-diff/v6/value/allocator.go is excluded by !**/vendor/**
  • openshift/tests-extension/vendor/sigs.k8s.io/structured-merge-diff/v6/value/jsontagutil.go is excluded by !**/vendor/**
  • vendor/github.com/containerd/containerd/archive/tar_unix.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/containerd/containerd/version/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/docker/cli/AUTHORS is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/docker/cli/cli/config/configfile/file.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/docker/cli/cli/config/credentials/file_store.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/docker/cli/cli/config/memorystore/store.go is excluded by !**/vendor/**, !vendor/**
  • vendor/modules.txt is excluded by !**/vendor/**, !vendor/**
  • vendor/sigs.k8s.io/structured-merge-diff/v6/fieldpath/element.go is excluded by !**/vendor/**, !vendor/**
  • vendor/sigs.k8s.io/structured-merge-diff/v6/fieldpath/pathelementmap.go is excluded by !**/vendor/**, !vendor/**
  • vendor/sigs.k8s.io/structured-merge-diff/v6/fieldpath/set.go is excluded by !**/vendor/**, !vendor/**
  • vendor/sigs.k8s.io/structured-merge-diff/v6/value/allocator.go is excluded by !**/vendor/**, !vendor/**
  • vendor/sigs.k8s.io/structured-merge-diff/v6/value/jsontagutil.go is excluded by !**/vendor/**, !vendor/**
📒 Files selected for processing (43)
  • Makefile
  • api/v1/clusterextension_types.go
  • applyconfigurations/api/v1/bundlemetadata.go
  • docs/api-reference/olmv1-api-reference.md
  • docs/designs/testing/2026-04-13-e2e-isolation/design.md
  • go.mod
  • helm/experimental.yaml
  • helm/olmv1/base/operator-controller/crd/experimental/olm.operatorframework.io_clusterextensions.yaml
  • internal/catalogd/serverutil/serverutil.go
  • internal/operator-controller/applier/boxcutter.go
  • internal/operator-controller/bundle/versionrelease.go
  • internal/operator-controller/bundleutil/bundle.go
  • internal/operator-controller/bundleutil/bundle_test.go
  • internal/operator-controller/catalogmetadata/client/client.go
  • internal/operator-controller/catalogmetadata/client/client_test.go
  • internal/operator-controller/catalogmetadata/filter/successors.go
  • internal/operator-controller/catalogmetadata/filter/successors_test.go
  • internal/operator-controller/controllers/boxcutter_reconcile_steps.go
  • internal/operator-controller/controllers/clusterextension_controller.go
  • internal/operator-controller/controllers/clusterextension_controller_test.go
  • internal/operator-controller/controllers/clusterextension_reconcile_steps.go
  • internal/operator-controller/controllers/clusterobjectset_controller.go
  • internal/operator-controller/controllers/clusterobjectset_controller_test.go
  • internal/operator-controller/controllers/progress_deadline.go
  • internal/operator-controller/controllers/progress_deadline_test.go
  • internal/operator-controller/features/features.go
  • internal/operator-controller/labels/labels.go
  • manifests/experimental-e2e.yaml
  • manifests/experimental.yaml
  • openshift/operator-controller/manifests-experimental.yaml
  • openshift/tests-extension/go.mod
  • requirements.txt
  • test/e2e/README.md
  • test/e2e/features/ha.feature
  • test/e2e/features/install.feature
  • test/e2e/features/revision.feature
  • test/e2e/steps/ha_steps.go
  • test/e2e/steps/hooks.go
  • test/e2e/steps/steps.go
  • test/e2e/steps/upgrade_steps.go
  • test/extension-developer-e2e/setup.sh
  • test/internal/catalog/catalog.go
  • test/internal/catalog/catalog_test.go
💤 Files with no reviewable changes (2)
  • test/extension-developer-e2e/setup.sh
  • internal/operator-controller/catalogmetadata/client/client_test.go
✅ Files skipped from review due to trivial changes (10)
  • requirements.txt
  • docs/designs/testing/2026-04-13-e2e-isolation/design.md
  • test/e2e/README.md
  • helm/experimental.yaml
  • test/internal/catalog/catalog.go
  • internal/operator-controller/labels/labels.go
  • test/e2e/features/ha.feature
  • internal/operator-controller/bundle/versionrelease.go
  • go.mod
  • openshift/tests-extension/go.mod
🚧 Files skipped from review as they are similar to previous changes (7)
  • internal/operator-controller/controllers/boxcutter_reconcile_steps.go
  • docs/api-reference/olmv1-api-reference.md
  • internal/operator-controller/controllers/progress_deadline.go
  • test/e2e/steps/hooks.go
  • test/e2e/features/install.feature
  • internal/catalogd/serverutil/serverutil.go
  • internal/operator-controller/bundleutil/bundle_test.go

Comment on lines +109 to +112
// Do not cache non-200 responses (e.g. 404 from a non-leader catalogd pod).
// Returning the error directly lets the next reconcile retry a fresh HTTP
// request and eventually hit the leader.
return nil, fmt.Errorf("error: received unexpected response status code %d", resp.StatusCode)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Update cache contract docs to match the new non-200 behavior.

This path now intentionally bypasses cache writes for non-200 responses, but the Cache.Get/Put contract comments still read as if population errors are always cached. Please align the comments to avoid incorrect assumptions by callers.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/operator-controller/catalogmetadata/client/client.go` around lines
109 - 112, Update the cache contract comments for the Cache.Get and Cache.Put
methods in client.go to reflect that non-200 HTTP responses are intentionally
not written to the cache; specifically, change the wording in the Cache.Get/Put
doc comments (referencing the Cache interface and its Get/Put methods) to state
that only successful (200) responses are cached and that callers should not
expect non-200 responses (e.g., 404 from non-leader pods) to be populated in the
cache, and mention that callers should handle retries without relying on cached
population for error or non-200 cases.

Comment on lines +339 to +345
WithOptions(controller.Options{
RateLimiter: newDeadlineAwareRateLimiter(
workqueue.DefaultTypedControllerRateLimiter[ctrl.Request](),
mgr.GetClient(),
c.Clock,
),
}).
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Only default Clock when it is nil.

reconcile now dereferences c.Clock on every run, but SetupWithManager always overwrites whatever the caller injected with clock.RealClock{}. That makes fake-clock coverage impossible through the normal setup path and removes an easy way to exercise the deadline logic deterministically.

Suggested change
 func (c *ClusterObjectSetReconciler) SetupWithManager(mgr ctrl.Manager) error {
-	c.Clock = clock.RealClock{}
+	if c.Clock == nil {
+		c.Clock = clock.RealClock{}
+	}
 	return ctrl.NewControllerManagedBy(mgr).
 		WithOptions(controller.Options{
 			RateLimiter: newDeadlineAwareRateLimiter(
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/operator-controller/controllers/clusterobjectset_controller.go`
around lines 339 - 345, SetupWithManager currently unconditionally sets c.Clock
= clock.RealClock{}, preventing injected fake clocks; change it to only default
c.Clock to clock.RealClock{} when c.Clock is nil so reconcile (which
dereferences c.Clock each run) and newDeadlineAwareRateLimiter still receive the
injected clock. Locate SetupWithManager and replace the unconditional assignment
with a nil-check (e.g., if c.Clock == nil { c.Clock = clock.RealClock{} }) so
callers can inject fake clocks for testing while leaving
controller.Options/RateLimiter setup unchanged.

Comment thread test/e2e/steps/steps.go
Comment on lines +219 to +226
// namespaceForComponent returns the namespace for the named OLM component.
// Falls back to olmNamespace when the component has no dedicated entry (e.g. upstream single-namespace deployments).
func namespaceForComponent(component string) string {
if ns, ok := componentNamespaces[component]; ok {
return ns
}
return olmNamespace
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Wire namespaceForComponent into the namespace-sensitive lookups.

This helper does not change behavior yet: listReferredSecrets (Lines 1097-1100), SendMetricsRequest (Line 1407), and helmReleaseSecretForExtension (Lines 1919-1921) still hardcode olmNamespace. In split/single-namespace layouts, these steps will keep querying olmv1-system and can false-fail the new scenarios.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/e2e/steps/steps.go` around lines 219 - 226, The helper
namespaceForComponent is implemented but not used; update all
namespace-sensitive lookups to call it instead of hardcoding olmNamespace:
replace occurrences in listReferredSecrets, SendMetricsRequest, and
helmReleaseSecretForExtension so they derive the namespace via
namespaceForComponent(componentName) (or accept/pass the appropriate component
string into those functions if needed) and use that returned namespace for API
queries; ensure any call sites that currently assume olmNamespace are updated to
provide the right component identifier so the lookups respect split vs
single-namespace layouts.

@openshift-bot openshift-bot changed the title OCPBUGS-62517: Synchronize from Upstream Repositories NO-ISSUE: Synchronize From Upstream Repositories May 1, 2026
@openshift-ci-robot openshift-ci-robot removed the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label May 1, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@openshift-bot: This pull request explicitly references no jira issue.

Details

In response to this:

The downstream repository has been updated with the following following upstream commits:

Date Commit Author Message
2026-04-30 16:30:37 operator-framework/operator-controller@e0f05f9 Todd Short fix(e2e): use per-component namespaces in HA and upgrade steps (#2685)
2026-04-29 16:23:23 operator-framework/operator-controller@09ccf9e dependabot[bot] 🌱 Bump packaging from 26.0 to 26.1 (#2683)
2026-04-29 15:53:06 operator-framework/operator-controller@0fae07a dependabot[bot] 🌱 Bump github.com/containerd/containerd from 1.7.30 to 1.7.31 (#2682)
2026-04-29 15:49:44 operator-framework/operator-controller@1312457 dependabot[bot] 🌱 Bump sigs.k8s.io/structured-merge-diff/v6 (#2681)
2026-04-29 15:41:02 operator-framework/operator-controller@b177be3 Todd Short fix(catalogd): follow-up fixes after HA PR merge (#2679)
2026-04-29 05:04:57 operator-framework/operator-controller@74e39f5 Joe Lanford 🐛 fix: allow reconciliation of deadline-exceeded ClusterObjectSets (#2643)
2026-04-28 20:29:36 operator-framework/operator-controller@4ce4bab Rashmi Gottipati adds support for parsing explicit pkg.Release field (#2543)
2026-04-28 13:36:18 operator-framework/operator-controller@ee337de dependabot[bot] 🌱 Bump github.com/cert-manager/cert-manager (#2678)
2026-04-28 13:30:39 operator-framework/operator-controller@aa70192 dependabot[bot] 🌱 Bump marocchino/sticky-pull-request-comment (#2676)
2026-04-27 19:40:54 operator-framework/operator-controller@cadb7a7 dependabot[bot] 🌱 Bump github.com/google/go-containerregistry (#2677)
2026-04-27 19:18:33 operator-framework/operator-controller@e12d90b Todd Short 🐛 Fix catalogd ha readiness (#2674)
2026-04-27 16:04:29 operator-framework/operator-controller@0e70fe3 Todd Short tests: address CodeRabbit review comments from downstream PR (#2672)

The vendor/ directory has been updated and the following commits were carried:

Date Commit Author Message
2026-04-25 00:07:28 openshift/operator-framework-operator-controller@72d170e dtfranz UPSTREAM: <carry>: Add OpenShift specific files
2026-04-25 00:07:29 openshift/operator-framework-operator-controller@aa49577 Camila Macedo UPSTREAM: <carry>: Add new tests for single/own namespaces install modes
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@926246a Camila Macedo UPSTREAM: <carry>: Upgrade OCP image from 4.20 to 4.21
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@2e1874b Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] - Change logic to get ocp images from openshift/catalogd/manifests.yaml
2026-04-25 00:07:31 openshift/operator-framework-operator-controller@2421df4 Todd Short UPSTREAM: <carry>: Update OCP catalogs to v4.21
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@20e7961 Kui Wang UPSTREAM: <carry>: support singleown cases in disconnected
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@1a265fa Kui Wang UPSTREAM: <carry>: fix cases 81696 and 74618 for product code changes
2026-04-25 00:07:33 openshift/operator-framework-operator-controller@d824b9a Camila Macedo UPSTREAM: <carry>: Define Default timeouts and apply their usage accross to avoid flakes
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@136f9c6 Todd Short UPSTREAM: <carry>: Update to new feature-gate options in helm
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@02ced2b Camila Macedo UPSTREAM: <carry>: Fix flake for single/own ns tests by ensuring uniquess and waiting for k8s cleanups
2026-04-25 00:07:35 openshift/operator-framework-operator-controller@3ac827f Camila Macedo UPSTREAM: <carry>: [OTE]: Enhance single/own ns based on review comments ( Follow-Up of: 714977c )
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@5b7249d Kui Wang UPSTREAM: <carry>: Update OwnSingle template to use spec.config.inline.watchNamespace
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@bc0feaa Camila Macedo UPSTREAM: <carry>: [OTE]: Add webhook cleanup validation on extension uninstall
2026-04-25 00:07:37 openshift/operator-framework-operator-controller@0c40bae Kui Wang UPSTREAM: <carry>: Add [OTP] to migrated cases
2026-04-25 00:07:38 openshift/operator-framework-operator-controller@dc794dd Camila Macedo UPSTREAM: <carry>: [OTE]: Upgrade dependencies used
2026-04-25 00:07:40 openshift/operator-framework-operator-controller@c72aad8 Camila Macedo UPSTREAM: <carry>: fix(OTE): fix OpenShift Kubernetes replace version format
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@d0a28d4 Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] Upgrade go 1.24.6 and dependencies
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@be6d702 Kui Wang UPSTREAM: <carry>: add disconnected environment support with custom prow job for migrated qe cases
2026-04-25 00:07:42 openshift/operator-framework-operator-controller@f67c44b Jian Zhang UPSTREAM: <carry>: migrate jiazha test cases to OTE
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@89a5485 Xia Zhao UPSTREAM: <carry>: migrate clustercatalog case to ote
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@aee7acf Kui Wang UPSTREAM: <carry>: migrate olmv1 QE stress cases
2026-04-25 00:07:44 openshift/operator-framework-operator-controller@e269c16 Todd Short UPSTREAM: <carry>: Use busybox/httpd to simulate probes
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@8bb9566 Xia Zhao UPSTREAM: <carry>: migrate olmv1 QE cases
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@a7241ac Kui Wang UPSTREAM: <carry>: add agent for olmv1 qe cases
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@db49514 Todd Short UPSTREAM: <carry>: Disable upstream PodDisruptionBudget
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@e80fb27 Rashmi Gottipati UPSTREAM: <carry>: Add AGENTS.md for AI code contributions
2026-04-25 00:07:47 openshift/operator-framework-operator-controller@80c4756 Rashmi Gottipati UPSTREAM: <carry>: address review comments through addl prompts
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@f5e7fa3 Rashmi Gottipati UPSTREAM: <carry>: addressing some more review comments
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@532ffad Rashmi Gottipati UPSTREAM: <carry>: remove DCO line
2026-04-25 00:07:49 openshift/operator-framework-operator-controller@bb9a114 Bruno Andrade UPSTREAM: <carry>: migrate bandrade test cases to OTE
2026-04-25 00:07:50 openshift/operator-framework-operator-controller@07d0016 Bruno Andrade UPSTREAM: <carry>: update metadata
2026-04-25 00:07:51 openshift/operator-framework-operator-controller@d80d420 Bruno Andrade UPSTREAM: <carry>: remove originalName
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@1fb14d8 Jian Zhang UPSTREAM: <carry>: update 80458's timeout to 180s
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@2395bb6 Jian Zhang UPSTREAM: <carry>: update 83026 to specify the clustercatalog
2026-04-25 00:07:53 openshift/operator-framework-operator-controller@3ad1935 Catherine Chan-Tse UPSTREAM: <carry>: Update to golang 1.25 and ocp 4.22
2026-04-25 00:07:54 openshift/operator-framework-operator-controller@c128759 Predrag Knezevic UPSTREAM: <carry>: Use oc client for running e2e tests
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@a00fa87 Predrag Knezevic UPSTREAM: <carry>: Run upstream e2e tests tagged with @catalogd-update
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@1543805 Kui Wang UPSTREAM: <carry>: enhance case to make it more stable
2026-04-25 00:07:56 openshift/operator-framework-operator-controller@1fefe62 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@743d864 Evan Hearne UPSTREAM: <carry>: move sa creation out of buildCurlJob()
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@a242ec2 Evan Hearne UPSTREAM: <carry>: comment out delete service account
2026-04-25 00:07:58 openshift/operator-framework-operator-controller@73f863e Evan Hearne UPSTREAM: <carry>: move defercleanup for sa for LIFO
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@4109fce Evan Hearne UPSTREAM: <carry>: add polling so job fully deleted before proceed
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@b7037e9 Luke Meyer UPSTREAM: <carry>: Revert "Merge pull request #594 from ehearne-redhat/add-service-account-curl-job"
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@8aebb3a Camila Macedo UPSTREAM: <carry>: Remove openshift-redhat-marketplace catalog tests
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@f9e32bc Kui Wang UPSTREAM: <carry>: config watchnamespace cases
2026-04-25 00:08:01 openshift/operator-framework-operator-controller@20de626 Xia Zhao UPSTREAM: <carry>: enhance ocp-79770
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@cdbc54a Kui Wang UPSTREAM: <carry>: upgrade version support case
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@90cc6ca Per Goncalves da Silva UPSTREAM: <carry>: Remove installed condition check from auth preflight test
2026-04-25 00:08:03 openshift/operator-framework-operator-controller@cd03270 Per Goncalves da Silva UPSTREAM: <carry>: Add openshift/api dependency
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@edce0c9 Per Goncalves da Silva UPSTREAM: <carry>: Add boxcutter specific preflight auth test
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@4f598c0 Kui Wang UPSTREAM: <carry>: adjust watchnamespace case based on change
2026-04-25 00:08:05 openshift/operator-framework-operator-controller@3ab2f72 Camila Macedo UPSTREAM: <carry>: fix(ote): Use as operator-controller dep from root dir
2026-04-25 00:08:06 openshift/operator-framework-operator-controller@3b21713 Bruno Andrade UPSTREAM: <carry>: add 83979 automation
2026-04-25 00:08:07 openshift/operator-framework-operator-controller@94688e8 Bruno Andrade UPSTREAM: <carry>: add 85889 automation
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@cb822e1 Per Goncalves da Silva UPSTREAM: <carry>: Update test-operator startup script to fix pod probe endpoints
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@2442669 Per Goncalves da Silva UPSTREAM: <carry>: Fix up own-namespace invalid configuration test
2026-04-25 00:08:09 openshift/operator-framework-operator-controller@456c4c1 Camila Macedo UPSTREAM: <carry>: Preflight tests use in-cluster catalog and bundles instead of openshift-pipelines-operator-rh
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@606241e Kui Wang UPSTREAM: <carry>: adjust sa and permission test cases per new change from boxcutterruntime
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@52e371a Camila Macedo UPSTREAM: <carry>: Update OCP catalogs to v4.22
2026-04-25 00:08:11 openshift/operator-framework-operator-controller@74e674d Camila Macedo UPSTREAM: <carry>: chore(OTE and Default Catalog Tests) Update go and dependencies
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@12fc92f Jian Zhang UPSTREAM: <carry>: fix 83026 for TP cluster
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@982d2c4 Kui Wang UPSTREAM: <carry>: serviceAccount validation unified across all runtimes
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@ac78b9d Stephen Benjamin UPSTREAM: <carry>: Fix OLMv1 test operator to listen on IPv6
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@8950c35 Camila Macedo UPSTREAM: <carry>: Increase install timeout and add diagnostic logging for CE install tests
2026-04-25 00:08:15 openshift/operator-framework-operator-controller@b4f88e5 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@933442a Jian Zhang UPSTREAM: <carry>: update OCP-75441 to support multi-arch
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@aaf8d72 Kui Wang UPSTREAM: <carry>: deployment config cases
2026-04-25 00:08:17 openshift/operator-framework-operator-controller@df9b501 Todd Short UPSTREAM: <carry>: Add OTE tests for OLMv1 DeploymentConfig support
2026-04-25 00:08:18 openshift/operator-framework-operator-controller@aaf855d Todd Short UPSTREAM: <carry>: Update openshift/api and client-go
2026-04-25 00:08:19 openshift/operator-framework-operator-controller@42be46f Camila Macedo UPSTREAM: <carry>: Add boxcutter tests
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@12e4f6a Xia Zhao UPSTREAM: <carry>: enhance QE cases
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@a0d118d Daniel Franz UPSTREAM: <carry>: Update quay-operator version to one containing arm64 support
2026-04-25 00:08:21 openshift/operator-framework-operator-controller@72d24ac Kui Wang UPSTREAM: <carry>: verify volume/volumeMount override
2026-04-25 00:08:22 openshift/operator-framework-operator-controller@ee59c40 Jian Zhang UPSTREAM: <carry>: Add long-duration test script and documents
2026-04-25 00:08:23 openshift/operator-framework-operator-controller@05a9404 Todd Short UPSTREAM: <carry>: Update grpc in default-catalog-consistency tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@f629f59 Camila Macedo UPSTREAM: <carry>: Rename ClusterExtensionRevision to ClusterObjectSet in OTE tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@45fccb0 Camila Macedo UPSTREAM: <carry>: Skip incompatible operator test when Boxcutter uses ClusterObjectSet
2026-04-25 00:08:25 openshift/operator-framework-operator-controller@ff06084 Bruno Andrade UPSTREAM: <carry>: add ocp-87557
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@aa41fd0 Francesco Giudici UPSTREAM: <carry>: Add fgiudici as reviewer
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@f4b6295 Camila Macedo UPSTREAM: <carry>: Remove skip for incompatible operator check after rename of CER
2026-04-25 00:08:27 openshift/operator-framework-operator-controller@bb65ed4 Kui Wang UPSTREAM: <carry>: Test empty affinity erasure and cleanup
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@5e305a7 Camila Macedo UPSTREAM: <carry>: Fix boxcutter finalizer ResourceNames in preflight test
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@70e4fc9 Camila Macedo UPSTREAM: <carry>: Expand OTE docs with more comprehensive details
2026-04-25 00:08:29 openshift/operator-framework-operator-controller@fe95e8f Todd Short UPSTREAM: <carry>: Disable upstream TLSProfile tests
2026-04-25 00:08:30 openshift/operator-framework-operator-controller@7db582a Camila Macedo UPSTREAM: <carry>: OTE: Simplify by remove option to configure tests to run outside of OCP
2026-04-23 13:09:16 openshift/operator-framework-operator-controller@510ce9a Camila Macedo UPSTREAM: <carry>: OTE - Make OTE local output easier to read
2026-04-30 08:30:23 openshift/operator-framework-operator-controller@2648821 Joe Lanford UPSTREAM: <carry>: remove dead e2e registry push job and related variables

This pull request is expected to merge without any human intervention. If tests are failing here, changes must land upstream to fix any issues so that future downstreaming efforts succeed.

/assign @openshift/openshift-team-operator-runtime

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@tmshort
Copy link
Copy Markdown
Contributor

tmshort commented May 1, 2026

/retitle OCPBUGS-62517: Synchronize from Upstream Repositories

@openshift-ci openshift-ci Bot changed the title NO-ISSUE: Synchronize From Upstream Repositories OCPBUGS-62517: Synchronize from Upstream Repositories May 1, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label May 1, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@openshift-bot: This pull request references Jira Issue OCPBUGS-62517, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)

No GitHub users were found matching the public email listed for the QA contact in Jira (jiazha@redhat.com), skipping review request.

Details

In response to this:

The downstream repository has been updated with the following following upstream commits:

Date Commit Author Message
2026-04-30 16:30:37 operator-framework/operator-controller@e0f05f9 Todd Short fix(e2e): use per-component namespaces in HA and upgrade steps (#2685)
2026-04-29 16:23:23 operator-framework/operator-controller@09ccf9e dependabot[bot] 🌱 Bump packaging from 26.0 to 26.1 (#2683)
2026-04-29 15:53:06 operator-framework/operator-controller@0fae07a dependabot[bot] 🌱 Bump github.com/containerd/containerd from 1.7.30 to 1.7.31 (#2682)
2026-04-29 15:49:44 operator-framework/operator-controller@1312457 dependabot[bot] 🌱 Bump sigs.k8s.io/structured-merge-diff/v6 (#2681)
2026-04-29 15:41:02 operator-framework/operator-controller@b177be3 Todd Short fix(catalogd): follow-up fixes after HA PR merge (#2679)
2026-04-29 05:04:57 operator-framework/operator-controller@74e39f5 Joe Lanford 🐛 fix: allow reconciliation of deadline-exceeded ClusterObjectSets (#2643)
2026-04-28 20:29:36 operator-framework/operator-controller@4ce4bab Rashmi Gottipati adds support for parsing explicit pkg.Release field (#2543)
2026-04-28 13:36:18 operator-framework/operator-controller@ee337de dependabot[bot] 🌱 Bump github.com/cert-manager/cert-manager (#2678)
2026-04-28 13:30:39 operator-framework/operator-controller@aa70192 dependabot[bot] 🌱 Bump marocchino/sticky-pull-request-comment (#2676)
2026-04-27 19:40:54 operator-framework/operator-controller@cadb7a7 dependabot[bot] 🌱 Bump github.com/google/go-containerregistry (#2677)
2026-04-27 19:18:33 operator-framework/operator-controller@e12d90b Todd Short 🐛 Fix catalogd ha readiness (#2674)
2026-04-27 16:04:29 operator-framework/operator-controller@0e70fe3 Todd Short tests: address CodeRabbit review comments from downstream PR (#2672)

The vendor/ directory has been updated and the following commits were carried:

Date Commit Author Message
2026-04-25 00:07:28 openshift/operator-framework-operator-controller@72d170e dtfranz UPSTREAM: <carry>: Add OpenShift specific files
2026-04-25 00:07:29 openshift/operator-framework-operator-controller@aa49577 Camila Macedo UPSTREAM: <carry>: Add new tests for single/own namespaces install modes
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@926246a Camila Macedo UPSTREAM: <carry>: Upgrade OCP image from 4.20 to 4.21
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@2e1874b Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] - Change logic to get ocp images from openshift/catalogd/manifests.yaml
2026-04-25 00:07:31 openshift/operator-framework-operator-controller@2421df4 Todd Short UPSTREAM: <carry>: Update OCP catalogs to v4.21
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@20e7961 Kui Wang UPSTREAM: <carry>: support singleown cases in disconnected
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@1a265fa Kui Wang UPSTREAM: <carry>: fix cases 81696 and 74618 for product code changes
2026-04-25 00:07:33 openshift/operator-framework-operator-controller@d824b9a Camila Macedo UPSTREAM: <carry>: Define Default timeouts and apply their usage accross to avoid flakes
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@136f9c6 Todd Short UPSTREAM: <carry>: Update to new feature-gate options in helm
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@02ced2b Camila Macedo UPSTREAM: <carry>: Fix flake for single/own ns tests by ensuring uniquess and waiting for k8s cleanups
2026-04-25 00:07:35 openshift/operator-framework-operator-controller@3ac827f Camila Macedo UPSTREAM: <carry>: [OTE]: Enhance single/own ns based on review comments ( Follow-Up of: 714977c )
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@5b7249d Kui Wang UPSTREAM: <carry>: Update OwnSingle template to use spec.config.inline.watchNamespace
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@bc0feaa Camila Macedo UPSTREAM: <carry>: [OTE]: Add webhook cleanup validation on extension uninstall
2026-04-25 00:07:37 openshift/operator-framework-operator-controller@0c40bae Kui Wang UPSTREAM: <carry>: Add [OTP] to migrated cases
2026-04-25 00:07:38 openshift/operator-framework-operator-controller@dc794dd Camila Macedo UPSTREAM: <carry>: [OTE]: Upgrade dependencies used
2026-04-25 00:07:40 openshift/operator-framework-operator-controller@c72aad8 Camila Macedo UPSTREAM: <carry>: fix(OTE): fix OpenShift Kubernetes replace version format
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@d0a28d4 Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] Upgrade go 1.24.6 and dependencies
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@be6d702 Kui Wang UPSTREAM: <carry>: add disconnected environment support with custom prow job for migrated qe cases
2026-04-25 00:07:42 openshift/operator-framework-operator-controller@f67c44b Jian Zhang UPSTREAM: <carry>: migrate jiazha test cases to OTE
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@89a5485 Xia Zhao UPSTREAM: <carry>: migrate clustercatalog case to ote
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@aee7acf Kui Wang UPSTREAM: <carry>: migrate olmv1 QE stress cases
2026-04-25 00:07:44 openshift/operator-framework-operator-controller@e269c16 Todd Short UPSTREAM: <carry>: Use busybox/httpd to simulate probes
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@8bb9566 Xia Zhao UPSTREAM: <carry>: migrate olmv1 QE cases
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@a7241ac Kui Wang UPSTREAM: <carry>: add agent for olmv1 qe cases
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@db49514 Todd Short UPSTREAM: <carry>: Disable upstream PodDisruptionBudget
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@e80fb27 Rashmi Gottipati UPSTREAM: <carry>: Add AGENTS.md for AI code contributions
2026-04-25 00:07:47 openshift/operator-framework-operator-controller@80c4756 Rashmi Gottipati UPSTREAM: <carry>: address review comments through addl prompts
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@f5e7fa3 Rashmi Gottipati UPSTREAM: <carry>: addressing some more review comments
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@532ffad Rashmi Gottipati UPSTREAM: <carry>: remove DCO line
2026-04-25 00:07:49 openshift/operator-framework-operator-controller@bb9a114 Bruno Andrade UPSTREAM: <carry>: migrate bandrade test cases to OTE
2026-04-25 00:07:50 openshift/operator-framework-operator-controller@07d0016 Bruno Andrade UPSTREAM: <carry>: update metadata
2026-04-25 00:07:51 openshift/operator-framework-operator-controller@d80d420 Bruno Andrade UPSTREAM: <carry>: remove originalName
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@1fb14d8 Jian Zhang UPSTREAM: <carry>: update 80458's timeout to 180s
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@2395bb6 Jian Zhang UPSTREAM: <carry>: update 83026 to specify the clustercatalog
2026-04-25 00:07:53 openshift/operator-framework-operator-controller@3ad1935 Catherine Chan-Tse UPSTREAM: <carry>: Update to golang 1.25 and ocp 4.22
2026-04-25 00:07:54 openshift/operator-framework-operator-controller@c128759 Predrag Knezevic UPSTREAM: <carry>: Use oc client for running e2e tests
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@a00fa87 Predrag Knezevic UPSTREAM: <carry>: Run upstream e2e tests tagged with @catalogd-update
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@1543805 Kui Wang UPSTREAM: <carry>: enhance case to make it more stable
2026-04-25 00:07:56 openshift/operator-framework-operator-controller@1fefe62 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@743d864 Evan Hearne UPSTREAM: <carry>: move sa creation out of buildCurlJob()
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@a242ec2 Evan Hearne UPSTREAM: <carry>: comment out delete service account
2026-04-25 00:07:58 openshift/operator-framework-operator-controller@73f863e Evan Hearne UPSTREAM: <carry>: move defercleanup for sa for LIFO
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@4109fce Evan Hearne UPSTREAM: <carry>: add polling so job fully deleted before proceed
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@b7037e9 Luke Meyer UPSTREAM: <carry>: Revert "Merge pull request #594 from ehearne-redhat/add-service-account-curl-job"
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@8aebb3a Camila Macedo UPSTREAM: <carry>: Remove openshift-redhat-marketplace catalog tests
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@f9e32bc Kui Wang UPSTREAM: <carry>: config watchnamespace cases
2026-04-25 00:08:01 openshift/operator-framework-operator-controller@20de626 Xia Zhao UPSTREAM: <carry>: enhance ocp-79770
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@cdbc54a Kui Wang UPSTREAM: <carry>: upgrade version support case
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@90cc6ca Per Goncalves da Silva UPSTREAM: <carry>: Remove installed condition check from auth preflight test
2026-04-25 00:08:03 openshift/operator-framework-operator-controller@cd03270 Per Goncalves da Silva UPSTREAM: <carry>: Add openshift/api dependency
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@edce0c9 Per Goncalves da Silva UPSTREAM: <carry>: Add boxcutter specific preflight auth test
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@4f598c0 Kui Wang UPSTREAM: <carry>: adjust watchnamespace case based on change
2026-04-25 00:08:05 openshift/operator-framework-operator-controller@3ab2f72 Camila Macedo UPSTREAM: <carry>: fix(ote): Use as operator-controller dep from root dir
2026-04-25 00:08:06 openshift/operator-framework-operator-controller@3b21713 Bruno Andrade UPSTREAM: <carry>: add 83979 automation
2026-04-25 00:08:07 openshift/operator-framework-operator-controller@94688e8 Bruno Andrade UPSTREAM: <carry>: add 85889 automation
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@cb822e1 Per Goncalves da Silva UPSTREAM: <carry>: Update test-operator startup script to fix pod probe endpoints
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@2442669 Per Goncalves da Silva UPSTREAM: <carry>: Fix up own-namespace invalid configuration test
2026-04-25 00:08:09 openshift/operator-framework-operator-controller@456c4c1 Camila Macedo UPSTREAM: <carry>: Preflight tests use in-cluster catalog and bundles instead of openshift-pipelines-operator-rh
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@606241e Kui Wang UPSTREAM: <carry>: adjust sa and permission test cases per new change from boxcutterruntime
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@52e371a Camila Macedo UPSTREAM: <carry>: Update OCP catalogs to v4.22
2026-04-25 00:08:11 openshift/operator-framework-operator-controller@74e674d Camila Macedo UPSTREAM: <carry>: chore(OTE and Default Catalog Tests) Update go and dependencies
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@12fc92f Jian Zhang UPSTREAM: <carry>: fix 83026 for TP cluster
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@982d2c4 Kui Wang UPSTREAM: <carry>: serviceAccount validation unified across all runtimes
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@ac78b9d Stephen Benjamin UPSTREAM: <carry>: Fix OLMv1 test operator to listen on IPv6
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@8950c35 Camila Macedo UPSTREAM: <carry>: Increase install timeout and add diagnostic logging for CE install tests
2026-04-25 00:08:15 openshift/operator-framework-operator-controller@b4f88e5 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@933442a Jian Zhang UPSTREAM: <carry>: update OCP-75441 to support multi-arch
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@aaf8d72 Kui Wang UPSTREAM: <carry>: deployment config cases
2026-04-25 00:08:17 openshift/operator-framework-operator-controller@df9b501 Todd Short UPSTREAM: <carry>: Add OTE tests for OLMv1 DeploymentConfig support
2026-04-25 00:08:18 openshift/operator-framework-operator-controller@aaf855d Todd Short UPSTREAM: <carry>: Update openshift/api and client-go
2026-04-25 00:08:19 openshift/operator-framework-operator-controller@42be46f Camila Macedo UPSTREAM: <carry>: Add boxcutter tests
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@12e4f6a Xia Zhao UPSTREAM: <carry>: enhance QE cases
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@a0d118d Daniel Franz UPSTREAM: <carry>: Update quay-operator version to one containing arm64 support
2026-04-25 00:08:21 openshift/operator-framework-operator-controller@72d24ac Kui Wang UPSTREAM: <carry>: verify volume/volumeMount override
2026-04-25 00:08:22 openshift/operator-framework-operator-controller@ee59c40 Jian Zhang UPSTREAM: <carry>: Add long-duration test script and documents
2026-04-25 00:08:23 openshift/operator-framework-operator-controller@05a9404 Todd Short UPSTREAM: <carry>: Update grpc in default-catalog-consistency tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@f629f59 Camila Macedo UPSTREAM: <carry>: Rename ClusterExtensionRevision to ClusterObjectSet in OTE tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@45fccb0 Camila Macedo UPSTREAM: <carry>: Skip incompatible operator test when Boxcutter uses ClusterObjectSet
2026-04-25 00:08:25 openshift/operator-framework-operator-controller@ff06084 Bruno Andrade UPSTREAM: <carry>: add ocp-87557
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@aa41fd0 Francesco Giudici UPSTREAM: <carry>: Add fgiudici as reviewer
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@f4b6295 Camila Macedo UPSTREAM: <carry>: Remove skip for incompatible operator check after rename of CER
2026-04-25 00:08:27 openshift/operator-framework-operator-controller@bb65ed4 Kui Wang UPSTREAM: <carry>: Test empty affinity erasure and cleanup
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@5e305a7 Camila Macedo UPSTREAM: <carry>: Fix boxcutter finalizer ResourceNames in preflight test
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@70e4fc9 Camila Macedo UPSTREAM: <carry>: Expand OTE docs with more comprehensive details
2026-04-25 00:08:29 openshift/operator-framework-operator-controller@fe95e8f Todd Short UPSTREAM: <carry>: Disable upstream TLSProfile tests
2026-04-25 00:08:30 openshift/operator-framework-operator-controller@7db582a Camila Macedo UPSTREAM: <carry>: OTE: Simplify by remove option to configure tests to run outside of OCP
2026-04-23 13:09:16 openshift/operator-framework-operator-controller@510ce9a Camila Macedo UPSTREAM: <carry>: OTE - Make OTE local output easier to read
2026-04-30 08:30:23 openshift/operator-framework-operator-controller@2648821 Joe Lanford UPSTREAM: <carry>: remove dead e2e registry push job and related variables

This pull request is expected to merge without any human intervention. If tests are failing here, changes must land upstream to fix any issues so that future downstreaming efforts succeed.

/assign @openshift/openshift-team-operator-runtime

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@tmshort
Copy link
Copy Markdown
Contributor

tmshort commented May 1, 2026

/test e2e-gcp-ovn-upgrade

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 1, 2026

@openshift-bot: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Copy link
Copy Markdown
Member

@rashmigottipati rashmigottipati left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 1, 2026

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by: openshift-bot, rashmigottipati

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@grokspawn
Copy link
Copy Markdown
Contributor

/verified by grokspawn

Rationale: All 12 upstream commits are low-risk or have complete test coverage — no manual testing needed.

Low-risk commits (8):

  • 09ccf9e (dependabot[bot]): Pure Python dep bump — packaging 26.0→26.1
  • 0fae07a (dependabot[bot]): Pure Go dep bump — containerd 1.7.30→1.7.31
  • 1312457 (dependabot[bot]): Pure Go dep bump — structured-merge-diff/v6
  • ee337de (dependabot[bot]): Pure Go dep bump — cert-manager
  • cadb7a7 (dependabot[bot]): Pure Go dep bump — go-containerregistry
  • aa70192 (dependabot[bot]): CI/build — GitHub Action version bump
  • e0f05f9 (tmshort): Test-only — E2E namespace isolation
  • 0e70fe3 (tmshort): Test-only — CodeRabbit review fixes

Production changes with tests (4):

  • b177be3 (tmshort): Bug fix — catalogd HA follow-up + e2e test
  • 74e39f5 (joelanford): Bug fix — ClusterObjectSet deadline reconciliation + 138 lines of e2e tests
  • 4ce4bab (rashmigottipati): Feature — pkg.Release field parsing + 248 lines of tests
  • e12d90b (tmshort): Bug fix — catalogd HA readiness + new HA e2e feature file

All functional CI jobs passed.

🤖 Generated by Claude Code

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label May 1, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@grokspawn: This PR has been marked as verified by grokspawn.

Details

In response to this:

/verified by grokspawn

Rationale: All 12 upstream commits are low-risk or have complete test coverage — no manual testing needed.

Low-risk commits (8):

  • 09ccf9e (dependabot[bot]): Pure Python dep bump — packaging 26.0→26.1
  • 0fae07a (dependabot[bot]): Pure Go dep bump — containerd 1.7.30→1.7.31
  • 1312457 (dependabot[bot]): Pure Go dep bump — structured-merge-diff/v6
  • ee337de (dependabot[bot]): Pure Go dep bump — cert-manager
  • cadb7a7 (dependabot[bot]): Pure Go dep bump — go-containerregistry
  • aa70192 (dependabot[bot]): CI/build — GitHub Action version bump
  • e0f05f9 (tmshort): Test-only — E2E namespace isolation
  • 0e70fe3 (tmshort): Test-only — CodeRabbit review fixes

Production changes with tests (4):

  • b177be3 (tmshort): Bug fix — catalogd HA follow-up + e2e test
  • 74e39f5 (joelanford): Bug fix — ClusterObjectSet deadline reconciliation + 138 lines of e2e tests
  • 4ce4bab (rashmigottipati): Feature — pkg.Release field parsing + 248 lines of tests
  • e12d90b (tmshort): Bug fix — catalogd HA readiness + new HA e2e feature file

All functional CI jobs passed.

🤖 Generated by Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-merge-bot openshift-merge-bot Bot merged commit 50cdb2a into openshift:main May 1, 2026
15 checks passed
@openshift-ci-robot
Copy link
Copy Markdown

@openshift-bot: Jira Issue OCPBUGS-62517: Some pull requests linked via external trackers have merged:

The following pull request, linked via external tracker, has not merged:

All associated pull requests must be merged or unlinked from the Jira bug in order for it to move to the next state. Once unlinked, request a bug refresh with /jira refresh.

Jira Issue OCPBUGS-62517 has not been moved to the MODIFIED state.

This PR is marked as verified. If the remaining PRs listed above are marked as verified before merging, the issue will automatically be moved to VERIFIED after all of the changes from the PRs are available in an accepted nightly payload.

Details

In response to this:

The downstream repository has been updated with the following following upstream commits:

Date Commit Author Message
2026-04-30 16:30:37 operator-framework/operator-controller@e0f05f9 Todd Short fix(e2e): use per-component namespaces in HA and upgrade steps (#2685)
2026-04-29 16:23:23 operator-framework/operator-controller@09ccf9e dependabot[bot] 🌱 Bump packaging from 26.0 to 26.1 (#2683)
2026-04-29 15:53:06 operator-framework/operator-controller@0fae07a dependabot[bot] 🌱 Bump github.com/containerd/containerd from 1.7.30 to 1.7.31 (#2682)
2026-04-29 15:49:44 operator-framework/operator-controller@1312457 dependabot[bot] 🌱 Bump sigs.k8s.io/structured-merge-diff/v6 (#2681)
2026-04-29 15:41:02 operator-framework/operator-controller@b177be3 Todd Short fix(catalogd): follow-up fixes after HA PR merge (#2679)
2026-04-29 05:04:57 operator-framework/operator-controller@74e39f5 Joe Lanford 🐛 fix: allow reconciliation of deadline-exceeded ClusterObjectSets (#2643)
2026-04-28 20:29:36 operator-framework/operator-controller@4ce4bab Rashmi Gottipati adds support for parsing explicit pkg.Release field (#2543)
2026-04-28 13:36:18 operator-framework/operator-controller@ee337de dependabot[bot] 🌱 Bump github.com/cert-manager/cert-manager (#2678)
2026-04-28 13:30:39 operator-framework/operator-controller@aa70192 dependabot[bot] 🌱 Bump marocchino/sticky-pull-request-comment (#2676)
2026-04-27 19:40:54 operator-framework/operator-controller@cadb7a7 dependabot[bot] 🌱 Bump github.com/google/go-containerregistry (#2677)
2026-04-27 19:18:33 operator-framework/operator-controller@e12d90b Todd Short 🐛 Fix catalogd ha readiness (#2674)
2026-04-27 16:04:29 operator-framework/operator-controller@0e70fe3 Todd Short tests: address CodeRabbit review comments from downstream PR (#2672)

The vendor/ directory has been updated and the following commits were carried:

Date Commit Author Message
2026-04-25 00:07:28 openshift/operator-framework-operator-controller@72d170e dtfranz UPSTREAM: <carry>: Add OpenShift specific files
2026-04-25 00:07:29 openshift/operator-framework-operator-controller@aa49577 Camila Macedo UPSTREAM: <carry>: Add new tests for single/own namespaces install modes
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@926246a Camila Macedo UPSTREAM: <carry>: Upgrade OCP image from 4.20 to 4.21
2026-04-25 00:07:30 openshift/operator-framework-operator-controller@2e1874b Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] - Change logic to get ocp images from openshift/catalogd/manifests.yaml
2026-04-25 00:07:31 openshift/operator-framework-operator-controller@2421df4 Todd Short UPSTREAM: <carry>: Update OCP catalogs to v4.21
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@20e7961 Kui Wang UPSTREAM: <carry>: support singleown cases in disconnected
2026-04-25 00:07:32 openshift/operator-framework-operator-controller@1a265fa Kui Wang UPSTREAM: <carry>: fix cases 81696 and 74618 for product code changes
2026-04-25 00:07:33 openshift/operator-framework-operator-controller@d824b9a Camila Macedo UPSTREAM: <carry>: Define Default timeouts and apply their usage accross to avoid flakes
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@136f9c6 Todd Short UPSTREAM: <carry>: Update to new feature-gate options in helm
2026-04-25 00:07:34 openshift/operator-framework-operator-controller@02ced2b Camila Macedo UPSTREAM: <carry>: Fix flake for single/own ns tests by ensuring uniquess and waiting for k8s cleanups
2026-04-25 00:07:35 openshift/operator-framework-operator-controller@3ac827f Camila Macedo UPSTREAM: <carry>: [OTE]: Enhance single/own ns based on review comments ( Follow-Up of: 714977c )
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@5b7249d Kui Wang UPSTREAM: <carry>: Update OwnSingle template to use spec.config.inline.watchNamespace
2026-04-25 00:07:36 openshift/operator-framework-operator-controller@bc0feaa Camila Macedo UPSTREAM: <carry>: [OTE]: Add webhook cleanup validation on extension uninstall
2026-04-25 00:07:37 openshift/operator-framework-operator-controller@0c40bae Kui Wang UPSTREAM: <carry>: Add [OTP] to migrated cases
2026-04-25 00:07:38 openshift/operator-framework-operator-controller@dc794dd Camila Macedo UPSTREAM: <carry>: [OTE]: Upgrade dependencies used
2026-04-25 00:07:40 openshift/operator-framework-operator-controller@c72aad8 Camila Macedo UPSTREAM: <carry>: fix(OTE): fix OpenShift Kubernetes replace version format
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@d0a28d4 Camila Macedo UPSTREAM: <carry>: [Default Catalog Tests] Upgrade go 1.24.6 and dependencies
2026-04-25 00:07:41 openshift/operator-framework-operator-controller@be6d702 Kui Wang UPSTREAM: <carry>: add disconnected environment support with custom prow job for migrated qe cases
2026-04-25 00:07:42 openshift/operator-framework-operator-controller@f67c44b Jian Zhang UPSTREAM: <carry>: migrate jiazha test cases to OTE
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@89a5485 Xia Zhao UPSTREAM: <carry>: migrate clustercatalog case to ote
2026-04-25 00:07:43 openshift/operator-framework-operator-controller@aee7acf Kui Wang UPSTREAM: <carry>: migrate olmv1 QE stress cases
2026-04-25 00:07:44 openshift/operator-framework-operator-controller@e269c16 Todd Short UPSTREAM: <carry>: Use busybox/httpd to simulate probes
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@8bb9566 Xia Zhao UPSTREAM: <carry>: migrate olmv1 QE cases
2026-04-25 00:07:45 openshift/operator-framework-operator-controller@a7241ac Kui Wang UPSTREAM: <carry>: add agent for olmv1 qe cases
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@db49514 Todd Short UPSTREAM: <carry>: Disable upstream PodDisruptionBudget
2026-04-25 00:07:46 openshift/operator-framework-operator-controller@e80fb27 Rashmi Gottipati UPSTREAM: <carry>: Add AGENTS.md for AI code contributions
2026-04-25 00:07:47 openshift/operator-framework-operator-controller@80c4756 Rashmi Gottipati UPSTREAM: <carry>: address review comments through addl prompts
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@f5e7fa3 Rashmi Gottipati UPSTREAM: <carry>: addressing some more review comments
2026-04-25 00:07:48 openshift/operator-framework-operator-controller@532ffad Rashmi Gottipati UPSTREAM: <carry>: remove DCO line
2026-04-25 00:07:49 openshift/operator-framework-operator-controller@bb9a114 Bruno Andrade UPSTREAM: <carry>: migrate bandrade test cases to OTE
2026-04-25 00:07:50 openshift/operator-framework-operator-controller@07d0016 Bruno Andrade UPSTREAM: <carry>: update metadata
2026-04-25 00:07:51 openshift/operator-framework-operator-controller@d80d420 Bruno Andrade UPSTREAM: <carry>: remove originalName
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@1fb14d8 Jian Zhang UPSTREAM: <carry>: update 80458's timeout to 180s
2026-04-25 00:07:52 openshift/operator-framework-operator-controller@2395bb6 Jian Zhang UPSTREAM: <carry>: update 83026 to specify the clustercatalog
2026-04-25 00:07:53 openshift/operator-framework-operator-controller@3ad1935 Catherine Chan-Tse UPSTREAM: <carry>: Update to golang 1.25 and ocp 4.22
2026-04-25 00:07:54 openshift/operator-framework-operator-controller@c128759 Predrag Knezevic UPSTREAM: <carry>: Use oc client for running e2e tests
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@a00fa87 Predrag Knezevic UPSTREAM: <carry>: Run upstream e2e tests tagged with @catalogd-update
2026-04-25 00:07:55 openshift/operator-framework-operator-controller@1543805 Kui Wang UPSTREAM: <carry>: enhance case to make it more stable
2026-04-25 00:07:56 openshift/operator-framework-operator-controller@1fefe62 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@743d864 Evan Hearne UPSTREAM: <carry>: move sa creation out of buildCurlJob()
2026-04-25 00:07:57 openshift/operator-framework-operator-controller@a242ec2 Evan Hearne UPSTREAM: <carry>: comment out delete service account
2026-04-25 00:07:58 openshift/operator-framework-operator-controller@73f863e Evan Hearne UPSTREAM: <carry>: move defercleanup for sa for LIFO
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@4109fce Evan Hearne UPSTREAM: <carry>: add polling so job fully deleted before proceed
2026-04-25 00:07:59 openshift/operator-framework-operator-controller@b7037e9 Luke Meyer UPSTREAM: <carry>: Revert "Merge pull request #594 from ehearne-redhat/add-service-account-curl-job"
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@8aebb3a Camila Macedo UPSTREAM: <carry>: Remove openshift-redhat-marketplace catalog tests
2026-04-25 00:08:00 openshift/operator-framework-operator-controller@f9e32bc Kui Wang UPSTREAM: <carry>: config watchnamespace cases
2026-04-25 00:08:01 openshift/operator-framework-operator-controller@20de626 Xia Zhao UPSTREAM: <carry>: enhance ocp-79770
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@cdbc54a Kui Wang UPSTREAM: <carry>: upgrade version support case
2026-04-25 00:08:02 openshift/operator-framework-operator-controller@90cc6ca Per Goncalves da Silva UPSTREAM: <carry>: Remove installed condition check from auth preflight test
2026-04-25 00:08:03 openshift/operator-framework-operator-controller@cd03270 Per Goncalves da Silva UPSTREAM: <carry>: Add openshift/api dependency
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@edce0c9 Per Goncalves da Silva UPSTREAM: <carry>: Add boxcutter specific preflight auth test
2026-04-25 00:08:04 openshift/operator-framework-operator-controller@4f598c0 Kui Wang UPSTREAM: <carry>: adjust watchnamespace case based on change
2026-04-25 00:08:05 openshift/operator-framework-operator-controller@3ab2f72 Camila Macedo UPSTREAM: <carry>: fix(ote): Use as operator-controller dep from root dir
2026-04-25 00:08:06 openshift/operator-framework-operator-controller@3b21713 Bruno Andrade UPSTREAM: <carry>: add 83979 automation
2026-04-25 00:08:07 openshift/operator-framework-operator-controller@94688e8 Bruno Andrade UPSTREAM: <carry>: add 85889 automation
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@cb822e1 Per Goncalves da Silva UPSTREAM: <carry>: Update test-operator startup script to fix pod probe endpoints
2026-04-25 00:08:08 openshift/operator-framework-operator-controller@2442669 Per Goncalves da Silva UPSTREAM: <carry>: Fix up own-namespace invalid configuration test
2026-04-25 00:08:09 openshift/operator-framework-operator-controller@456c4c1 Camila Macedo UPSTREAM: <carry>: Preflight tests use in-cluster catalog and bundles instead of openshift-pipelines-operator-rh
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@606241e Kui Wang UPSTREAM: <carry>: adjust sa and permission test cases per new change from boxcutterruntime
2026-04-25 00:08:10 openshift/operator-framework-operator-controller@52e371a Camila Macedo UPSTREAM: <carry>: Update OCP catalogs to v4.22
2026-04-25 00:08:11 openshift/operator-framework-operator-controller@74e674d Camila Macedo UPSTREAM: <carry>: chore(OTE and Default Catalog Tests) Update go and dependencies
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@12fc92f Jian Zhang UPSTREAM: <carry>: fix 83026 for TP cluster
2026-04-25 00:08:13 openshift/operator-framework-operator-controller@982d2c4 Kui Wang UPSTREAM: <carry>: serviceAccount validation unified across all runtimes
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@ac78b9d Stephen Benjamin UPSTREAM: <carry>: Fix OLMv1 test operator to listen on IPv6
2026-04-25 00:08:14 openshift/operator-framework-operator-controller@8950c35 Camila Macedo UPSTREAM: <carry>: Increase install timeout and add diagnostic logging for CE install tests
2026-04-25 00:08:15 openshift/operator-framework-operator-controller@b4f88e5 Evan Hearne UPSTREAM: <carry>: add service account to curl job
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@933442a Jian Zhang UPSTREAM: <carry>: update OCP-75441 to support multi-arch
2026-04-25 00:08:16 openshift/operator-framework-operator-controller@aaf8d72 Kui Wang UPSTREAM: <carry>: deployment config cases
2026-04-25 00:08:17 openshift/operator-framework-operator-controller@df9b501 Todd Short UPSTREAM: <carry>: Add OTE tests for OLMv1 DeploymentConfig support
2026-04-25 00:08:18 openshift/operator-framework-operator-controller@aaf855d Todd Short UPSTREAM: <carry>: Update openshift/api and client-go
2026-04-25 00:08:19 openshift/operator-framework-operator-controller@42be46f Camila Macedo UPSTREAM: <carry>: Add boxcutter tests
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@12e4f6a Xia Zhao UPSTREAM: <carry>: enhance QE cases
2026-04-25 00:08:20 openshift/operator-framework-operator-controller@a0d118d Daniel Franz UPSTREAM: <carry>: Update quay-operator version to one containing arm64 support
2026-04-25 00:08:21 openshift/operator-framework-operator-controller@72d24ac Kui Wang UPSTREAM: <carry>: verify volume/volumeMount override
2026-04-25 00:08:22 openshift/operator-framework-operator-controller@ee59c40 Jian Zhang UPSTREAM: <carry>: Add long-duration test script and documents
2026-04-25 00:08:23 openshift/operator-framework-operator-controller@05a9404 Todd Short UPSTREAM: <carry>: Update grpc in default-catalog-consistency tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@f629f59 Camila Macedo UPSTREAM: <carry>: Rename ClusterExtensionRevision to ClusterObjectSet in OTE tests
2026-04-25 00:08:24 openshift/operator-framework-operator-controller@45fccb0 Camila Macedo UPSTREAM: <carry>: Skip incompatible operator test when Boxcutter uses ClusterObjectSet
2026-04-25 00:08:25 openshift/operator-framework-operator-controller@ff06084 Bruno Andrade UPSTREAM: <carry>: add ocp-87557
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@aa41fd0 Francesco Giudici UPSTREAM: <carry>: Add fgiudici as reviewer
2026-04-25 00:08:26 openshift/operator-framework-operator-controller@f4b6295 Camila Macedo UPSTREAM: <carry>: Remove skip for incompatible operator check after rename of CER
2026-04-25 00:08:27 openshift/operator-framework-operator-controller@bb65ed4 Kui Wang UPSTREAM: <carry>: Test empty affinity erasure and cleanup
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@5e305a7 Camila Macedo UPSTREAM: <carry>: Fix boxcutter finalizer ResourceNames in preflight test
2026-04-25 00:08:28 openshift/operator-framework-operator-controller@70e4fc9 Camila Macedo UPSTREAM: <carry>: Expand OTE docs with more comprehensive details
2026-04-25 00:08:29 openshift/operator-framework-operator-controller@fe95e8f Todd Short UPSTREAM: <carry>: Disable upstream TLSProfile tests
2026-04-25 00:08:30 openshift/operator-framework-operator-controller@7db582a Camila Macedo UPSTREAM: <carry>: OTE: Simplify by remove option to configure tests to run outside of OCP
2026-04-23 13:09:16 openshift/operator-framework-operator-controller@510ce9a Camila Macedo UPSTREAM: <carry>: OTE - Make OTE local output easier to read
2026-04-30 08:30:23 openshift/operator-framework-operator-controller@2648821 Joe Lanford UPSTREAM: <carry>: remove dead e2e registry push job and related variables

This pull request is expected to merge without any human intervention. If tests are failing here, changes must land upstream to fix any issues so that future downstreaming efforts succeed.

/assign @openshift/openshift-team-operator-runtime

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. kind/sync lgtm Indicates that a PR is ready to be merged. tide/merge-method-merge Denotes a PR that should use a standard merge by tide when it merges. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.