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
Vendor k/*@v0.19 and controller-runtime@v0.7 #3393
Conversation
@timebertt Label kind/pain does not exist. |
/assign |
/assign |
I had a quick chat with @mvladev about #3372 (comment). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, first of all: Kudos and thanks a lot for this great PR. It's well structured and the dedicated commits helped tremendously to review it. It was a very smooth experience!
I've mainly found a few nits, not much. I've three "critical" questions when it comes to supporting old Kubernetes versions now that you upgraded certain APIs to new versions that are not available in older Kubernetes versions (which we still support, though).
cmd/gardener-seed-admission-controller/app/gardener_seed_admission_controller.go
Show resolved
Hide resolved
Yes, this seems like the better option for now. I added a deduplicating warnings handler to all components. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
Nice! Thanks a lot guys for your thorough and fast reviews! ❤️ |
😱 Probably :) |
* Vendor k/k@v1.19 * make generate after vendoring k/code-generator * Adapt gardenlet boostrap and cert rotation code * Vendor sigs.k8s.io/controller-runtime@v0.7.0 * Remove pkg/client/kubernetes/utils in favor of manager.Options.ClientDisableCacheFor * Remove extensions/pkg/event in favor of simplified event.GenericEvent struct * Replace runtime.Object with client.{Object,ObjectList} * Adapt OperationAnnotationWrapper to client.Object * Change ClientMap signatures to use contexts * Adapt controllers to new reconciler.Reconcile interface Adapt extension controllers to new reconciler.Reconcile interface * Adapt event log helpers to new event type * Adapt extensions mappers * Adapt extensions webhooks to admissionv1 * Adapt seed admission webhooks * Migrate seed-admission-controller to controller-runtime handlers * Adapt and streamline signal handling * Try to fix k-scheduler stuff under third_party * Fix case sensitivity of gnostic dependency * Fix bug in controller worker creation * Address some first comments from rfranzke * Address some first comments from timuthy * Migrate shoot extension webhook handler to controller-runtime handler * Make gardenlet bootstrap code fallback to certificates/v1beta1 * Address some first comments from ialidzhikov * Pin sigs.k8s.io/structured-merge-diff/v3 back to fork * Typo in test * Deduplicate client-go warnings in all components
* Vendor k/k@v1.19 * make generate after vendoring k/code-generator * Adapt gardenlet boostrap and cert rotation code * Vendor sigs.k8s.io/controller-runtime@v0.7.0 * Remove pkg/client/kubernetes/utils in favor of manager.Options.ClientDisableCacheFor * Remove extensions/pkg/event in favor of simplified event.GenericEvent struct * Replace runtime.Object with client.{Object,ObjectList} * Adapt OperationAnnotationWrapper to client.Object * Change ClientMap signatures to use contexts * Adapt controllers to new reconciler.Reconcile interface Adapt extension controllers to new reconciler.Reconcile interface * Adapt event log helpers to new event type * Adapt extensions mappers * Adapt extensions webhooks to admissionv1 * Adapt seed admission webhooks * Migrate seed-admission-controller to controller-runtime handlers * Adapt and streamline signal handling * Try to fix k-scheduler stuff under third_party * Fix case sensitivity of gnostic dependency * Fix bug in controller worker creation * Address some first comments from rfranzke * Address some first comments from timuthy * Migrate shoot extension webhook handler to controller-runtime handler * Make gardenlet bootstrap code fallback to certificates/v1beta1 * Address some first comments from ialidzhikov * Pin sigs.k8s.io/structured-merge-diff/v3 back to fork * Typo in test * Deduplicate client-go warnings in all components
* Vendor k/k@v1.19 * make generate after vendoring k/code-generator * Adapt gardenlet boostrap and cert rotation code * Vendor sigs.k8s.io/controller-runtime@v0.7.0 * Remove pkg/client/kubernetes/utils in favor of manager.Options.ClientDisableCacheFor * Remove extensions/pkg/event in favor of simplified event.GenericEvent struct * Replace runtime.Object with client.{Object,ObjectList} * Adapt OperationAnnotationWrapper to client.Object * Change ClientMap signatures to use contexts * Adapt controllers to new reconciler.Reconcile interface Adapt extension controllers to new reconciler.Reconcile interface * Adapt event log helpers to new event type * Adapt extensions mappers * Adapt extensions webhooks to admissionv1 * Adapt seed admission webhooks * Migrate seed-admission-controller to controller-runtime handlers * Adapt and streamline signal handling * Try to fix k-scheduler stuff under third_party * Fix case sensitivity of gnostic dependency * Fix bug in controller worker creation * Address some first comments from rfranzke * Address some first comments from timuthy * Migrate shoot extension webhook handler to controller-runtime handler * Make gardenlet bootstrap code fallback to certificates/v1beta1 * Address some first comments from ialidzhikov * Pin sigs.k8s.io/structured-merge-diff/v3 back to fork * Typo in test * Deduplicate client-go warnings in all components
How to categorize this PR?
/area open-source quality
/kind task
/priority normal
What this PR does / why we need it:
This PR vendors all the kubernetes dependencies in version
v0.19.6
and controller-runtime versionv0.7.0
.See #3109 for more details.
Which issue(s) this PR fixes:
This is only the strictly required part of #3109
Special notes for your reviewer:
I tried to work in different commits to ease the review of this monstrous PR, each one of them addresses mainly one breaking change in upstream (though, it's not 100% accurately separated, just to ease the review).
/squash
gardener-seed-admission-controller
currently uses some custom decoding and encoding logic for admission request and review, but uses the controller-runtime types for passing them down to the handlers.The upstream types were changed to
admission/v1
(ref kubernetes-sigs/controller-runtime#1284).I didn't want to go through the hassle of adapting our logic to handle both admission versions, I rather removed the custom logic and migrated the handlers to use the upstream implementation.
I haven't migrated to the controller-runtime manager/webhook server yet and also haven't done the same change in the
gardener-admission-controller
, as it wasn't strictly required and I wanted to keep this PR limited to the required changes in the upgrade process.Release note: