Enable lifecycle hooks explicitly in the ClusterClass #8211
Labels
area/clusterclass
Issues or PRs related to clusterclass
area/runtime-sdk
Issues or PRs related to Runtime SDK
help wanted
Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
kind/api-change
Categorizes issue or PR as related to adding, removing, or otherwise changing an API
priority/important-longterm
Important over the long term, but may not be staffed and/or may need multiple releases to complete.
triage/accepted
Indicates an issue or PR is ready to be actively worked on.
Runtime SDK Lifecycle hooks are currently linked to Clusters entirely based on a namespace selector defined in an ExtensionConfig. If an ExtensionConfig has a Lifecycle hook enabled and a Cluster matches the namespace selector of the ExtensionConfig the hook is called.
There should be some way for Cluster or ClusterClass authors to opt in to lifecycle hooks explicitly. This is the case for external patches today which are specified in a ClusterClass as below.
The namespace selector is still in place for these extension calls, so a ClusterClass can not use an extension when it doesn't match the namespace selector.
This issue is about considering making Lifecycle hook extensions explicitly in the ClusterClass spec - i.e. adding a new struct under ClusterClass
.spec
which looks like:In the above example Clusters created using this ClusterClass will have
beforeClusterCreate
calls to three extensions,afterClusterUpgrade
calls to two extensions, andbeforeClusterDelete
calls to one extension.This would allow ClusterClass, and depending on implementation Cluster, authors to have some control over the hooks called in the lifecycle of the objects they control.
/kind api-change
/area runtime-sdk
/area topology
The text was updated successfully, but these errors were encountered: