-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Add GAMMA support to Cilium Operator #32744
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
Conversation
8bbf9b9
to
82e074d
Compare
/test |
Change this to release-note/major due to the huge interest from users. |
/test |
/test |
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.
This first commit adds support for reconciling GAMMA HTTPRoute objects, updates the status. Also adds GAMMA reconciler parent checks. Signed-off-by: Nick Young <nick@isovalent.com>
GAMMA objects will now be correctly ingested, with predicates added to both the GAMMA ingestion and the standard Gateway API ingestion to ensure that each only sees relevant HTTPRoute updates. Signed-off-by: Nick Young <nick@isovalent.com>
This also adds the HTTPRoute as a second source to each Listener in the model.Model, which allows the HTTPRoute to be set as the owner of the generated CiliumEnvoyConfig. Signed-off-by: Nick Young <nick@isovalent.com>
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.
I left one docs suggestion, but not blocking.
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.
Nothing is blocking.
/test |
Updates Gateway API conformance tests to include Mesh tests. GAMMA conformance requires supporting the Port field in parentRef. This adds support for this for GAMMA only. This change also does groundwork necessary to support the Gateway API feature `HTTPRouteListenerPortMatching` for regular Gateway API objects, which allows HTTPRoutes to select Gateway parents using the Port field in parentRef. A followup PR will implement this feature. As part of the GAMMA work, we now support the GatewayPort8080 Gateway API feature as well, so that is now added to the conformance test workflow. The `MeshConsumerRoute` feature cannot be supported without significant changes to the model (it requires _egress_ CiliumEnvoyConfigs, which are still being worked on.) Mesh examples are left for a followup PR. Dedicated Ingresses using a Nodeport need to _not_ have the port set in their CiliumEnvoyConfig. Added a test to verify this for the future. Signed-off-by: Nick Young <nick@isovalent.com>
/test |
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.
This is awesome ✔️
Adds a separate ingestion step for GAMMA objects, with predicates added to both the GAMMA ingestion and the standard Gateway API ingestion to ensure that each only sees relevant HTTPRoute updates.
GAMMA listeners use the existing Gateway API translator, some changes have been made there:
model.Model
, which allows the HTTPRoute to be set as theowner of the generated CiliumEnvoyConfig.
This change also does groundwork necessary to support the Gateway API feature
HTTPRouteListenerPortMatching
for regular Gateway API objects, which allows HTTPRoutes to select Gateway parents using the Port field in parentRef.
A followup PR will implement this feature.
As part of this GAMMA work, we now support the
GatewayPort8080
Gateway API feature, which allows the use of ports other than80
or443
as well, so that is now added to the conformance test workflow.The
MeshConsumerRoute
feature cannot be supported without significant changes to the model (it requires egressCiliumEnvoyConfigs, which are still being worked on.)
Fixes: #22512