-
Notifications
You must be signed in to change notification settings - Fork 3.4k
CiliumEnvoyConfig handling for experimental control-plane #35598
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
CiliumEnvoyConfig handling for experimental control-plane #35598
Conversation
01f253b
to
0727129
Compare
This comment was marked as resolved.
This comment was marked as resolved.
0727129
to
c50b945
Compare
c50b945
to
05320ac
Compare
05320ac
to
ad1751b
Compare
What does "experimental" mean :-)? Is this expected to merge? Be used? Or should this be a draft PR? |
It is meant to be merged. Experimental as in it's meant to eventually replace the existing implementation and we're slowly building it up towards it. And yes hopefully people try this out in v1.17 ( |
ad1751b
to
cde6d22
Compare
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.
Checked the non-experimental changes only at this point, 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 for my code owners
We could potentially drop the hive bump after #35707 is merged.
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.
Great!
We should now be able to drop the hive bump commit 🚀 |
To allow filling in data from other tables during reflection, pass the current transaction to the transform functions. Signed-off-by: Jussi Maki <jussi@isovalent.com>
Add ServicePort to Frontend to allow proxy redirection to match against NodePort frontends based on the service port (ClusterIP port). Add ports to the ProxyRedirect in Service to allow applying the redirect to only frontends matching the port. Signed-off-by: Jussi Maki <jussi@isovalent.com>
Implement CiliumEnvoyConfig handling and backend syncing for the experimental LB control-plane. Signed-off-by: Jussi Maki <jussi@isovalent.com>
cde6d22
to
e27b9b8
Compare
/test |
This implements the CiliumEnvoyConfig handling against the experimental load-balancing control-plane (pkg/loadbalancer/experimental).
The
exp_cec.go
defines theTable[CEC]
containing the envoy configs. The CEC object defines the full desired envoy Resources, including backends. Changes to the object are reconciled against the XDS server.The main moving parts around
Table[CEC]
are:Table[CEC]
and sets the service L7 redirects accordingly.The implementation is tested with hive/script and builds on top of the test commands provided by the load-balancer control-plane:
testdata/namespaced.txtar
: Tests CiliumEnvoyConfig and validates calls towards Envoy and the LB BPF map contentstestdata/clusterwide.txtar
: Similar to namespaced.txtar but testing CiliumClusterwideEnvoyConfigtestdata/anyport.txtar
: Tests CiliumEnvoyConfig without port filteringtestdata/labels.txtar
: Tests selection of CiliumEnvoyConfigs based on node labels