Use lazy rest mapper for performance and less audit #116
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of your changes
provider-kubernetes initialized a new kubernetes client for each
reconcile. The REST mapper in controller-runtime used to fetch
information about every CRD in the cluster.
controller-runtime introduced a lazy restmapper which means we don't
have to introduce any complex caching to get a significant performance
boost in provider-kubernetes:
kubernetes-sigs/controller-runtime#2116
This seems to become the default in the next release:
kubernetes-sigs/controller-runtime#2296
But this is so significant that we want to update now:
CPU reduced from constant throttling at 0.4 cores to 0.04 cores
CloudWatch / EKS audit log costs reduced significantly (55% for our
cluster, with a lot of provider-kubernetes resources)
I have:
make reviewable test
to ensure this PR is ready for review.How has this code been tested
Run in cluster