-
Notifications
You must be signed in to change notification settings - Fork 438
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
KRT for GG #10193
base: main
Are you sure you want to change the base?
KRT for GG #10193
Conversation
pluginRegistry := s.k8sGwExtensions.CreatePluginRegistry(ctx) | ||
rm := reports.NewReportMap() | ||
r := reports.NewReporter(&rm) | ||
podClient := kclient.New[*corev1.Pod](s.istioClient) |
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.
podClient := kclient.New[*corev1.Pod](s.istioClient) | |
podClient := kclient.NewFiltered[*corev1.Pod](s.istioClient, kclient.Filter{ | |
ObjectTransform: kube.StripPodUnusedFields, | |
}) |
This gets rid of ManagedFields which is large and almost definitely unused
if err != nil { | ||
// This should never happen, try again? | ||
return | ||
kubeUpstreams := setupCollectionDynamic[glookubev1.Upstream]( |
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.
nit: the name to me indicates Upstream_Kube
when it means the k8s resource. Would just upstreams
be ok? Or rawUpstreams
maybe?
upstreamSpecs, | ||
) | ||
if len(warns) > 0 || len(errs) > 0 { | ||
// FIXME |
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.
the old code just logged in this case
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.
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.
/kick-ci |
/kick |
Description
First drop of bringing KRT to GG.
In this PR, we accomplish the following high-level items:
Caveats:
As we only are taking on the ApiSnapshot generation in this pass, the "boundary" of the KRT system is fairly narrow.
This means that we still have controller-runtime driving proxy resyncs (in addition to any of the work done by KRT's dependency tracking)
Status for RouteOptions and VHostOptions used in more than 1 proxy does not work, see https://github.com/solo-io/solo-projects/issues/7044
Unit testing
The currently proxy_syncer component (and the xds_syncer that preceded it) had no actual unit tests due to the nature of the work it is doing.
This PR does not add any unit tests but we will address this in a follow up, see: https://github.com/solo-io/solo-projects/issues/7056
Garbage collection
We need to implement garbage collection for kube gw Proxies
API changes
Code changes
CI changes
Docs changes
Context
Interesting decisions
Testing steps
Notes for reviewers
Checklist: