-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
Controller: Use Protocol Buffers for API access. #12467
base: main
Are you sure you want to change the base?
Conversation
This issue is currently awaiting triage. If Ingress contributors determines this is a relevant issue, they will accept it by applying the The Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
✅ Deploy Preview for kubernetes-ingress-nginx canceled.
|
/ok-to-test @rikatz or @tao12345666333 can you review this one? |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: tosi3k The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/test pre-ingress-nginx-codegen |
/test pre-ingress-nginx-codegen |
go.work.sum
Outdated
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.
Please do not commit these as long as you didn't change the go.mod
.
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.
Done - I was trying to fight with the failing pre-ingress-nginx-codegen
presubmit through that but to no avail.
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.
@Gacko would you know why this presubmit fails?
We don't require any new modules in go.mod
with this change and the presubmit fails even more mysteriously.
@tosi3k: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
What this PR does / why we need it:
If not specified explicitly, JSON encoding is used by default when talking to kube-apiserver.
For core K8s API objects like Pods, Nodes, etc., we can use protobuf encoding which reduces CPU consumption related to (de)serialization, reduces overall latency of the API call, reduces memory footprint, reduces the amount of work performed by the GC and results in quicker propagation of objects to event handlers of shared informers.
For CRDs, however, we still have to stick to JSON since they do not support protobuf encoding.
Standard system components of K8s default their serialization method to protobuf for some time already:
kube-scheduler
: linkkubelet
: linkkube-proxy
: linkkube-controller-manager
: link and method's contentsTypes of changes
Which issue/s this PR fixes
No issue is opened for that.
How Has This Been Tested?
Unit tests.
Checklist: