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

Deprecation management for CAPI releases #3651

Closed
1 of 2 tasks
Tracked by #3653
yulianedyalkova opened this issue Aug 26, 2024 · 1 comment
Closed
1 of 2 tasks
Tracked by #3653

Deprecation management for CAPI releases #3651

yulianedyalkova opened this issue Aug 26, 2024 · 1 comment
Assignees
Labels
area/kaas Mission: Cloud Native Platform - Self-driving Kubernetes as a Service team/tenet Team Tenet topic/releases About how we treat our own releases

Comments

@yulianedyalkova
Copy link

yulianedyalkova commented Aug 26, 2024

Acceptance criteria:

  • Release state is being shown when listing releases (active, deprecated)
  • New clusters cannot be created from deprecated releases or at least we have a warning that it is strongly discouraged / out of support
@yulianedyalkova yulianedyalkova converted this from a draft issue Aug 26, 2024
@yulianedyalkova yulianedyalkova added area/kaas Mission: Cloud Native Platform - Self-driving Kubernetes as a Service topic/releases About how we treat our own releases team/turtles Team Turtles labels Aug 26, 2024
@yulianedyalkova yulianedyalkova added team/tenet Team Tenet and removed team/turtles Team Turtles labels Nov 18, 2024
@yulianedyalkova yulianedyalkova moved this from Backlog 📦 to Up Next ➡️ in Roadmap Nov 19, 2024
@Gacko Gacko self-assigned this Nov 20, 2024
@Gacko Gacko changed the title Deprecation management for CAPI clusters Releases: Deprecation management. Nov 20, 2024
@Gacko Gacko changed the title Releases: Deprecation management. Releases: Surface deprecation. Nov 20, 2024
@Gacko Gacko changed the title Releases: Surface deprecation. Releases: Surface deprecation Nov 21, 2024
@yulianedyalkova yulianedyalkova changed the title Releases: Surface deprecation Deprecation management for CAPI releases Nov 21, 2024
@Gacko Gacko moved this from Up Next ➡️ to In Progress ⛏️ in Roadmap Nov 27, 2024
Gacko added a commit to giantswarm/management-cluster-bases that referenced this issue Nov 27, 2024
Towards giantswarm/roadmap#3651.

Following is the diff of the `releases.release.giantswarm.io` CRD
between v0.3.0 and v0.10.0.

```
git diff sdk/v0.3.0:sdk/manifests/apiextensions.k8s.io_v1_customresourcedefinition_releases.release.giantswarm.io.yaml sdk/v0.10.0:sdk/manifests/apiextensions.k8s.io_v1_customresourcedefinition_releases.release.giantswarm.io.yaml
```
```diff
diff --git a/sdk/manifests/apiextensions.k8s.io_v1_customresourcedefinition_releases.release.giantswarm.io.yaml b/sdk/manifests/apiextensions.k8s.io_v1_customresourcedefinition_releases.release.giantswarm.io.yaml
index 3b9f82f..91dd431 100644
--- a/sdk/manifests/apiextensions.k8s.io_v1_customresourcedefinition_releases.release.giantswarm.io.yaml
+++ b/sdk/manifests/apiextensions.k8s.io_v1_customresourcedefinition_releases.release.giantswarm.io.yaml
@@ -29,6 +29,10 @@ spec:
       jsonPath: .spec.date
       name: Age
       type: date
+    - description: State of this release
+      jsonPath: .spec.state
+      name: State
+      type: string
     - description: Release notes for this release
       jsonPath: .metadata.annotations['giantswarm\.io/release-notes']
       name: Release notes
```
@Gacko
Copy link
Member

Gacko commented Nov 27, 2024

So... bringing the release state to surface was quite simple. But warning the user about them using a deprecated release might be a bit tricky:

We have the app-admission-controller and in there we are already looking up the release details when a cluster app resource is getting created or updated. We basically check if the release resource exists and then take the cluster app version from the release resource to put it into the newly created cluster app resource.

This is a mutating webhook and there also is a validating webhook, but both of them are returning either "all good, go on" or "Stop! That's wrong! You shall not pass!".

What I wanna tell: The whole app-admission-controller currently has no possibility to return a warning, so a way to still create the app but also tell the user they're doing something not so cool.

Question is: Should I take the burden and implement it (cannot tell how long it takes, but might bloat the issue a bit) or should we just skip the second part of this issue?

What we definitely should not do is just rejecting the app as this could break stuff. So I'd first print a warning and maybe somewhen in the future start rejecting apps with deprecated releases.

@Gacko Gacko closed this as completed Nov 28, 2024
@Gacko Gacko reopened this Nov 28, 2024
@Gacko Gacko closed this as completed Nov 28, 2024
@github-project-automation github-project-automation bot moved this from In Progress ⛏️ to Done ✅ in Roadmap Nov 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/kaas Mission: Cloud Native Platform - Self-driving Kubernetes as a Service team/tenet Team Tenet topic/releases About how we treat our own releases
Projects
Archived in project
Development

No branches or pull requests

2 participants