Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFE: Runtime Extensions #5175

Closed
vincepri opened this issue Aug 30, 2021 · 9 comments · Fixed by #6181
Closed

RFE: Runtime Extensions #5175

vincepri opened this issue Aug 30, 2021 · 9 comments · Fixed by #6181
Assignees
Labels
area/runtime-sdk Issues or PRs related to Runtime SDK kind/design Categorizes issue or PR as related to design. kind/proposal Issues or PRs related to proposals. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Milestone

Comments

@vincepri
Copy link
Member

From a while back there has been a need for Cluster API providers to be able to define their own extensions that can work across a number of different use cases. This issue is meant to be an ongoing discussion / brainstorm on what runtime extensions goals/non-goals are, and how we can make it happen with our roadmap to beta.

Requirements

  • We should reuse, wherever possible, the machinery in api-server and controller tools to generate well-defined RPC services.
  • The system should be defined after the admission and mutation webhook registration mechanics present in api-server for custom resource definitions.

Goals

  • To provide clear interfaces for external providers to implement their functionality.
  • To support runtime registration of new extensions with clear defined boundaries and responsibilities.
  • To allow to extend the validation of Cluster API resources.
  • To validate provider-specific content as early as possible.
  • To offer kubebuilder-like functionality to scaffold a new runtime extension in Go.

Non-Goals

  • To replace the current provider model for infrastructure resources

/kind design
/kind proposal

@k8s-ci-robot k8s-ci-robot added kind/design Categorizes issue or PR as related to design. kind/proposal Issues or PRs related to proposals. labels Aug 30, 2021
@fabriziopandini
Copy link
Member

fabriziopandini commented Aug 30, 2021

+1000
my two cent

Goals:

  • provide generic extension mechanism for CAPI that can be used when
    • The interaction between CAPI and the extension components requires synchronous/blocking RPC calls.
    • Given RPC call will be synchronous/blocking, and also probably adding latency, the request could be processed in a very short time.

Non Goals

  • To replace the current extension mechanism used for complex, long running interactions with providers (based on CRD resources with well-know informations defined by the Cluster API contract)

@imikushin
Copy link
Contributor

Can we have more context on what Runtime Extensions are, why they need to exist, and some examples of how exactly they would be used? Without such context, it's impossible (at least, for me) to understand the proposal or any reasoning about it. Thank you!

@vincepri
Copy link
Member Author

vincepri commented Sep 15, 2021

@imikushin That's something we all need to figure out over time and write a proposal about it.

@vincepri
Copy link
Member Author

/milestone Next
/kind proposal

@k8s-ci-robot k8s-ci-robot added this to the Next milestone Sep 30, 2021
@vincepri
Copy link
Member Author

/milestone v1.0

@fabriziopandini
Copy link
Member

Trying to move forward with the discussion, I have created https://docs.google.com/document/d/1WTGtu32rGlme16f3133MH9dLgiJxHtABp0pWZmamInc/edit?usp=sharing with:

  • some notes about a first, concrete use case for Runtime Extension, external patches for ClusterClasses
  • a first brain dump of things to be defined before writing the proposal on Runtime Extensions in Cluster API

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 31, 2022
@fabriziopandini
Copy link
Member

/lifecycle frozen
/assign
I will get to the community with a proposal soon

@k8s-ci-robot k8s-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jan 31, 2022
@fabriziopandini fabriziopandini modified the milestones: v1.1, v1.2 Feb 3, 2022
@killianmuldoon
Copy link
Contributor

/area runtime-sdk

@k8s-ci-robot k8s-ci-robot added the area/runtime-sdk Issues or PRs related to Runtime SDK label Apr 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/runtime-sdk Issues or PRs related to Runtime SDK kind/design Categorizes issue or PR as related to design. kind/proposal Issues or PRs related to proposals. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants