kubernetes-sigs / kubernetes-sigs/cluster-api

RuntimeSDK: Surface the usage of deprecated versions of a Runtime Hook

Open
#6,903 7 comments 0 reactions 0 assignees View on GitHub
area/runtime-sdk help wanted kind/feature priority/important-longterm triage/accepted
Dominant language
Go
Stars
4.3k
Forks
1.6k
Avg merge
1d 3h
Merged PRs (30d)
113

Description

**User Story**

As an operator I would like to have a way to observe that a Runtime Extension uses a deprecated Runtime Hook version.

**Detailed Description**

Background information:
* Runtime Hooks can have multiple apiVersions just like regular API types
* When creating a new apiVersion of a Runtime Hook we can deprecate the old version
* Runtime Extension authors can still use the old version of the Runtime Hook, but they are expected to migrate to the new apiVersion before the old one is removed

Goal of this issue is to surface that an old Runtime Hook version is used, so that Runtime Extension authors are made aware of that they should migrate to using the new Runtime Hook version.

**Anything else you would like to add:**

Some ideas:
* We could surface it as condition on the ExtensionConfig during discovery
* We could potentially surface it as:
* a warning via a ValidatingWebhook on ExtensionConfig
* TBD how this would work given that we only have the information in status after discovery
* a well known HTTP header
* TBD on which HTTP call and how that would be noticed

Please note, we can already implement this, but it can only be used by users once we have multiple Runtime Hook versions.

/kind feature

Contributor guide

Open the contributing guide

Research direction

Start by reading the RuntimeSDK discovery flow and how ExtensionConfig status is populated. Compare the proposed condition during discovery with the ValidatingWebhook and HTTP-header alternatives. Done means deprecated Runtime Hook usage is surfaced clearly enough for Runtime Extension authors to know that migration is needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.