Skip to content

OCPCLOUD-3722: Stop serving CompatibilityRequirement v1alpha1 - #3148

Open
stefanonardo wants to merge 1 commit into
openshift:masterfrom
stefanonardo:OCPCLOUD-3722
Open

stefanonardo wants to merge 1 commit into
openshift:masterfrom
stefanonardo:OCPCLOUD-3722

Conversation

@stefanonardo

@stefanonardo stefanonardo commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Remove the manual override that adds CompatibilityRequirement v1alpha1 to the shipped v1 CRD, and regenerate the CRD and payload manifests. Preserve the v1 schema and feature gate.

Retain the v1alpha1 Go package, scheme registration, tests, and OpenAPI definitions for existing consumers.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification

This PR uses the pipeline controller for second-stage tests. Selection and triggering follow the repository configuration.

Use /test ? to list jobs and /pipeline help for commands.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Nov 2, 2026
@openshift-ci-robot

openshift-ci-robot commented Nov 2, 2026 •

Copy link
Copy Markdown

@stefanonardo: This pull request references OCPCLOUD-3722 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.1.0" version, but no target version was set.

Details

In response to this:

Remove the CompatibilityRequirement v1alpha1 Go package, scheme registration, tests, and CRD override so the CRD serves only v1. Regenerate OpenAPI and payload manifests, preserving the v1 schema and feature gate.

Removing the override also makes the CRD approval annotation use PR #2905 from the existing v1 source instead of PR #2479 from the v1alpha1 override.

Validation:

  • Passed go test ./apiextensions/... ./openapi/....
  • Passed make -C apiextensions/v1 test (22 integration tests).
  • Completed full make update; affected CRD and full OpenAPI verification passed.
  • Full make verify-codegen failed on unchanged manifests in operatorcontrolplane, etcd, and example.
  • Generation and verification used PROTO_OPTIONAL=1 because protoc is unavailable; the removed API has no protobuf files.

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-ci

openshift-ci Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Hello @stefanonardo! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: openshift/api
  • Branch: master
  • File: .coderabbit.yaml
  • Commit: f677639
  • Layers: Repository YAML (base), Central YAML (inherited)
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 4428efdc-e560-45b2-9d1e-88f6dd5739e5
Commits

Reviewing files that changed from the base of the PR and between f677639 and 2c07a85.

Files ignored due to path filters: 10
  • apiextensions/v1/zz_generated.crd-manifests/0000_20_crd-compatibility-checker_01_compatibilityrequirements.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • apiextensions/v1alpha1/zz_generated.crd-manifests/0000_20_crd-compatibility-checker_01_compatibilityrequirements.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • apiextensions/v1alpha1/zz_generated.crd-manifests/doc.go is excluded by !**/zz_generated.crd-manifests/*
  • apiextensions/v1alpha1/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • apiextensions/v1alpha1/zz_generated.featuregated-crd-manifests.yaml is excluded by !**/zz_generated*
  • apiextensions/v1alpha1/zz_generated.featuregated-crd-manifests/compatibilityrequirements.apiextensions.openshift.io/CRDCompatibilityRequirementOperator.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • apiextensions/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • apiextensions/v1alpha1/zz_generated.swagger_doc_generated.go is excluded by !**/zz_generated*
  • openapi/generated_openapi/zz_generated.openapi.go is excluded by !openapi/**, !**/zz_generated*
  • openapi/openapi.json is excluded by !openapi/**
Files selected for processing: 8
  • apiextensions/install.go
  • apiextensions/v1/manual-override-crd-manifests/compatibilityrequirements.apiextensions.openshift.io/CRDCompatibilityRequirementOperator.yaml
  • apiextensions/v1alpha1/Makefile
  • apiextensions/v1alpha1/doc.go
  • apiextensions/v1alpha1/register.go
  • apiextensions/v1alpha1/tests/compatibilityrequirements.apiextensions.openshift.io/CRDCompatibilityRequirementOperator.yaml
  • apiextensions/v1alpha1/types_compatibilityrequirement.go
  • payload-manifests/crds/0000_20_crd-compatibility-checker_01_compatibilityrequirements.crd.yaml
Files with no reviewable changes: 6
  • apiextensions/v1alpha1/Makefile
  • apiextensions/v1/manual-override-crd-manifests/compatibilityrequirements.apiextensions.openshift.io/CRDCompatibilityRequirementOperator.yaml
  • apiextensions/v1alpha1/tests/compatibilityrequirements.apiextensions.openshift.io/CRDCompatibilityRequirementOperator.yaml
  • apiextensions/v1alpha1/doc.go
  • apiextensions/v1alpha1/register.go
  • apiextensions/v1alpha1/types_compatibilityrequirement.go

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

Walkthrough

The pull request removes the apiextensions v1alpha1 CompatibilityRequirement API definitions, registration, package annotations, and compatibility tests. The scheme builder now installs only apiextensionsv1. The payload CRD no longer serves v1alpha1, and the manual-override CRD manifest is deleted. The payload CRD approval annotation URL is also updated.

Merge Risk: Minimal · previous review 2c07a

This change removes the unreleased v1alpha1 CompatibilityRequirement API so that only v1 is served. The older version was installed only in non-upgradable feature sets, so upgrades are not expected to be affected. No merge-blocking risk remains.

Pre-merge checks: Passed 15
Check name Status Explanation
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
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 The PR adds no Ginkgo test titles. The only test-file change deletes the v1alpha1 compatibility test file (0 additions, 1430 deletions), and the complete patch contains no added It, Describe, Context,…
Test Structure And Quality Passed The pull request adds no Ginkgo tests and changes no existing test implementation. The only test-related change is deletion of the v1alpha1 compatibility test manifest and its Makefile. Therefore, it …
Microshift Test Compatibility Passed No new Ginkgo e2e tests were added. The pull request only removes the v1alpha1 test suite and changes scheme/CRD manifests; the diff contains no added Describe, Context, When, or It declarations. The …
Single Node Openshift (Sno) Test Compatibility Passed The pull request adds no Ginkgo e2e tests or other test files. The only test-like change deletes the existing v1alpha1 compatibility test, and no added diff lines contain Ginkgo declarations or multi-…
Topology-Aware Scheduling Compatibility Passed PASS. The pull request changes API registration, API type/generated files, CRD schemas, and tests only. The authoritative diff contains no deployment or controller changes and no scheduling constraint…
Ote Binary Stdout Contract Passed No OTE stdout violation is introduced. The only added Go code registers apiextensionsv1.Install in apiextensions/install.go; the other Go change removes v1alpha1 OpenAPI definitions and renames an…
Ipv6 And Disconnected Network Test Compatibility Passed The pull request adds no files and adds no Ginkgo e2e tests. The only test-related change is deletion of the existing v1alpha1 compatibility test manifest, while the remaining changes remove API code …
No-Weak-Crypto Passed The pull request introduces no weak-crypto usage or custom cryptography. The only non-deletion code change removes the v1alpha1 scheme import and registration. Generated changes remove the v1alpha1 AP…
Container-Privileges Passed The pull request introduces no privileged container settings. The changed CRD manifests contain only the v1 API schema and no container or pod security fields. The exact added-line scan found no `pr…
No-Sensitive-Data-In-Logs Passed The PR adds no logging code or log output. The executable change only removes the v1alpha1 scheme import and registration in apiextensions/install.go; the remaining additions are CRD approval metada…
Title check Passed The title clearly identifies the primary change: stopping service of CompatibilityRequirement v1alpha1.
Description check Passed The description directly relates to removing the v1alpha1 CRD override, regenerating manifests, and preserving v1 behavior.
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 1 files. (1 skipped: 1 unsupported.)

Full details: Stable And Deterministic Test Names

Explanation

The PR adds no Ginkgo test titles. The only test-file change deletes the v1alpha1 compatibility test file (0 additions, 1430 deletions), and the complete patch contains no added It, Describe, Context, or When titles or legacy metadata tokens. Therefore, no unstable or overly-specific test name is introduced.

Full details: Test Structure And Quality

Explanation

The pull request adds no Ginkgo tests and changes no existing test implementation. The only test-related change is deletion of the v1alpha1 compatibility test manifest and its Makefile. Therefore, it introduces no test with multiple responsibilities, missing cleanup or timeouts, weak assertion messages, inconsistent patterns, or a new non-informing It block.

Full details: Microshift Test Compatibility

Explanation

No new Ginkgo e2e tests were added. The pull request only removes the v1alpha1 test suite and changes scheme/CRD manifests; the diff contains no added Describe, Context, When, or It declarations. The MicroShift test compatibility check is therefore not applicable.

Full details: Single Node Openshift (Sno) Test Compatibility

Explanation

The pull request adds no Ginkgo e2e tests or other test files. The only test-like change deletes the existing v1alpha1 compatibility test, and no added diff lines contain Ginkgo declarations or multi-node assumptions. The SNO check is therefore not triggered.

Full details: Topology-Aware Scheduling Compatibility

Explanation

PASS. The pull request changes API registration, API type/generated files, CRD schemas, and tests only. The authoritative diff contains no deployment or controller changes and no scheduling constraints such as affinity, topology spread, replica settings, node selectors, tolerations, or PDBs. Therefore, the topology-aware scheduling check is not applicable.

Full details: Ote Binary Stdout Contract

Explanation

No OTE stdout violation is introduced. The only added Go code registers apiextensionsv1.Install in apiextensions/install.go; the other Go change removes v1alpha1 OpenAPI definitions and renames an import alias. No added fmt/log/klog writes, suite setup, or process-level output code appears in the PR diff.

Full details: Ipv6 And Disconnected Network Test Compatibility

Explanation

The pull request adds no files and adds no Ginkgo e2e tests. The only test-related change is deletion of the existing v1alpha1 compatibility test manifest, while the remaining changes remove API code and regenerate manifests. Therefore, this check has no new test to flag for IPv4 assumptions or external connectivity.

Full details: No-Weak-Crypto

Explanation

The pull request introduces no weak-crypto usage or custom cryptography. The only non-deletion code change removes the v1alpha1 scheme import and registration. Generated changes remove the v1alpha1 API and adjust an import alias; no added lines contain MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB, cryptographic comparisons, or token-secret handling.

Full details: Container-Privileges

Explanation

The pull request introduces no privileged container settings. The changed CRD manifests contain only the v1 API schema and no container or pod security fields. The exact added-line scan found no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, allowPrivilegeEscalation, or root-user settings. Security-related terms in regenerated OpenAPI content are existing generic API definitions, not added privilege configuration.

Full details: No-Sensitive-Data-In-Logs

Explanation

The PR adds no logging code or log output. The executable change only removes the v1alpha1 scheme import and registration in apiextensions/install.go; the remaining additions are CRD approval metadata and generated OpenAPI/schema content. Diff searches found no added lines containing passwords, tokens, secrets, PII, session IDs, hostnames, customer data, or API keys.

Finishing Touches
Generate unit tests (beta)
  • Create a new PR

@openshift-ci openshift-ci Bot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Nov 2, 2026
@JoelSpeed

Copy link
Copy Markdown
Contributor

Please remove just the manual override in the v1 API, remove the rest during the 5.2 cycle

@stefanonardo stefanonardo changed the title OCPCLOUD-3722: Remove CompatibilityRequirement v1alpha1 OCPCLOUD-3722: Stop serving CompatibilityRequirement v1alpha1 Nov 2, 2026
Remove the v1 manual CRD override and regenerate the CRD and payload
manifests.

Assisted-by: OpenAI Codex
@openshift-ci

openshift-ci Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

@stefanonardo: 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.

@JoelSpeed

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Nov 5, 2026
@openshift-ci

openshift-ci Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: JoelSpeed

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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 5, 2026
@stefanonardo

Copy link
Copy Markdown
Contributor Author

/verified by ci

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Nov 5, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@stefanonardo: This PR has been marked as verified by ci.

Details

In response to this:

/verified by ci

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-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants