Skip to content

Update OLMv0 lifecycle enhancement to use ListPackageCustomSchemas gRPC endpoint#2013

Open
perdasilva wants to merge 2 commits into
openshift:masterfrom
perdasilva:update-to-list-package-custom-schemas
Open

Update OLMv0 lifecycle enhancement to use ListPackageCustomSchemas gRPC endpoint#2013
perdasilva wants to merge 2 commits into
openshift:masterfrom
perdasilva:update-to-list-package-custom-schemas

Conversation

@perdasilva
Copy link
Copy Markdown

Summary

  • Replace the dedicated lifecycle-controller/server approach with the ListPackageCustomSchemas gRPC endpoint on existing CatalogSource catalog pods, eliminating two new downstream-only components
  • Move the lifecycle-controller/server approach to Alternatives as a validated fallback option for TP→GA graduation
  • Console backend now acts as a gRPC client calling ListPackageCustomSchemas directly on catalog pods instead of proxying to a dedicated lifecycle-server
  • Document the ListPackageCustomSchemas implementation details: FNV64a content-addressed storage, cache digest handling across opm versions, duplicate metadata handling, and graceful degradation for older opm versions
  • Add risks and mitigations for gRPC API surface extension, mixed opm version scenarios, and cache digest mismatches
  • Remove console-operator RBAC requirements (no longer needed with the gRPC endpoint approach)
  • Add open question for practical validation of the ListPackageCustomSchemas approach during Tech Preview before GA graduation

Test plan

  • Enhancement document is internally consistent (no stale lifecycle-controller/server references in primary approach)
  • All sections updated to reflect the ListPackageCustomSchemas approach
  • Alternatives section includes lifecycle-controller/server as fallback
  • Graduation criteria includes TP→GA validation checkpoint

🤖 Generated with Claude Code

Replace the dedicated lifecycle-controller/server approach with the
ListPackageCustomSchemas gRPC endpoint on existing CatalogSource
catalog pods. This eliminates two new downstream-only components by
reusing the existing opm serve infrastructure.

Changes:
- Primary approach is now ListPackageCustomSchemas on catalog pods
  instead of dedicated lifecycle-controller and lifecycle-server
- Lifecycle-controller/server moved to alternatives as a fallback
- Console backend acts as a gRPC client to catalog pods directly
- Document FNV64a content-addressed storage and cache digest handling
- Add duplicate metadata handling (catalog pipeline prevents, Console
  logs error and shows "No data" as defense-in-depth)
- Remove console-operator RBAC (no longer needed with gRPC endpoint)
- Add open question for TP→GA validation of the new approach
- Document risks: gRPC API surface, mixed opm versions, cache digest
  mismatch, deprecated SQLite backend returns Unimplemented

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@openshift-ci openshift-ci Bot requested review from jan--f and travier May 18, 2026 08:49
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 18, 2026

[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 stleerh 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

Copy link
Copy Markdown
Member

@fgiudici fgiudici left a comment

Choose a reason for hiding this comment

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

Looks good here


* As a cluster administrator, I want lifecycle and compatibility information to be available in disconnected environments, so that I have the same operational visibility regardless of cluster connectivity.

* As an operator author, I want to include lifecycle metadata in my operator's catalog entry, so that my users have visibility into the support status of my operator versions.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: why don't we keep this? 🤔

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I think I removed to not cause confusion about who is adding the lifecycle metadata for this work. In our case, the lifecycle metadata is owned by another actor our of band of the operator authors (of course there's nothing stopping the operator author from doing so).

Comment thread enhancements/olm/lifecycle-and-compatibility.md Outdated
Co-authored-by: Francesco Giudici <fgiudici@foggy.day>
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 19, 2026

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

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