Skip to content

Restore C3 hard block: APIService not yet fully supported in OLMv1 - #22

Open
tmshort wants to merge 1 commit into
mainfrom
olm-restore-c3
Open

Restore C3 hard block: APIService not yet fully supported in OLMv1#22
tmshort wants to merge 1 commit into
mainfrom
olm-restore-c3

Conversation

@tmshort

@tmshort tmshort commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Restores the C3 hard block in the migration compatibility checker and updates
the SDD documents to accurately reflect the current state of APIService support
in OLMv1.

Background

OPRUN-4723 added the rendering
infrastructure for APIService objects to operator-controller
(PR #2885):
BundleCSVAPIServiceGenerator, CheckAPIServiceDeploymentReferentialIntegrity,
and cert provider support. However, this infrastructure is not yet registered
in ResourceGenerators or BundleValidator — it is retained as code for a
future release pending end-to-end Boxcutter path validation.

As a result, OLMv1 does not yet fully support APIService-based operators and the
migration tool's C3 hard block must be restored.

Changes

migration/pkg/migration/compatibility.go

  • Restores checkNoAPIServices function (C3 hard block)
  • Re-adds the C3 call site in CheckCompatibility with an updated message
    explaining that OLMv1 infrastructure exists but is not yet wired end-to-end

specs/20260821-migration-v0-to-v1/requirements.md

  • C3 changed from "hard, temporary" to "hard" with updated rationale reflecting
    the actual state: rendering infrastructure exists but is not yet activated

specs/20260821-migration-v0-to-v1/plan.md

  • Phase 3 note updated: C3 removal is deferred, not done
  • Phase 7 updated to reflect that infrastructure is merged but not yet registered

Reviewer Checklist

  • API Go Documentation
  • Tests: Unit Tests (and E2E Tests, if appropriate)
  • Comprehensive Commit Messages
  • Links to related GitHub Issue(s)

The operator-controller PR #2885 added the rendering infrastructure
(BundleCSVAPIServiceGenerator, validator, cert provider support) for
APIService objects, but the code is not yet registered in ResourceGenerators
or BundleValidator pending end-to-end Boxcutter path validation.

C3 is therefore reinstated as a hard block in the migration tool.
Operators with owned APIService definitions remain ineligible until
OLMv1 supports them end-to-end.

SDD documents updated:
  requirements.md: C3 is a hard block (not temporary), updated rationale
  plan.md: Phase 7 reflects infrastructure status; C3 removal deferred

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Todd Short <tshort@redhat.com>
@openshift-ci
openshift-ci Bot requested review from joelanford and pedjak August 27, 2026 18:57
@openshift-ci

openshift-ci Bot commented Aug 27, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign perdasilva for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 94027d7f-5b6a-45d4-af14-7af180f6cd2b


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

}

// checkNoAPIServices enforces C3 — no owned APIService definitions (hard block).
// OLMv1's registry+v1 renderer does not yet fully support APIService-based operators

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
// OLMv1's registry+v1 renderer does not yet fully support APIService-based operators
// OLMv1's registry+v1 renderer does not support APIService-based operators

// checkNoAPIServices enforces C3 — no owned APIService definitions (hard block).
// OLMv1's registry+v1 renderer does not yet fully support APIService-based operators
// end-to-end. The underlying implementation exists in operator-controller as infrastructure
// but is not yet wired into the Boxcutter rendering path.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
// but is not yet wired into the Boxcutter rendering path.
// but is not supported by the Boxcutter rendering path.

return CheckResult{
Name: "No APIService definitions",
Passed: false,
Message: "CSV has spec.apiservicedefinitions.owned set; OLMv1 does not yet fully support APIService-based operators",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
Message: "CSV has spec.apiservicedefinitions.owned set; OLMv1 does not yet fully support APIService-based operators",
Message: "CSV has spec.apiservicedefinitions.owned set; OLMv1 does not support APIService-based operators",

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants