contour icon indicating copy to clipboard operation
contour copied to clipboard

Support Gateway.spec.infrastructure field (experimental)

Open lubronzhan opened this issue 1 year ago • 1 comments
trafficstars

Please describe the problem you have [A clear, concise, description of the problem you are facing. What is the problem that feature X would solve for you?] Enhance gateway controller to respect gateway.spec.infrastructure field so customer could change ContourDeployment for specific Gateway without impacting all other Gateways referencing the same GatewayClass

Definition of infrastructure image

Related TEP https://gateway-api.sigs.k8s.io/geps/gep-1867/

Related discussion here https://github.com/projectcontour/contour/issues/5256#issuecomment-1885971797

It gives flexibility for user to only change infra config of single Gateway without having to change the parameterRef in GatewayClass thus impacting all Gateway referencing this GatewayClass

Motivation @skriss shared concerns about adding changes to ContourDeployment in GatewayClass will cause massive rollout of all Gateway object referencing it https://github.com/projectcontour/contour/pull/5302#issuecomment-1601579805

Expected Behavior Option 1 add a field to ContourDeployment to tell whether the gatewayProvisioner should generate a copy of ContourDeployment on whenever a gateway is generated, and referencing that gateway to the new ContourDeployment

type ContourDeployment struct{ autoGenerateConfig bool } This way user can just modify the ContourDeployment associated with the current Gateway if they need to modify contour, without impacting other Gateway referencing the same gatewayClass.

Option 2 keep current ContourDeployment structure, we don't automatically create ContourDeployment for Gateway, but change the way gatewayController reconcile, if there is infrastructure field in Gateway, let's say ContourDeployment2, which is different from ContourDeployment1 referenced in GatewayClass parameterRef, Gateway provisioner should respect ContourDeployment2 first, if there are fields in ContourDeployment1 not in ContourDeployment2, then we can decide either to inherit those or just ignore them. We can discuss in the other issue later

Option ... TBD

lubronzhan avatar Jan 11 '24 17:01 lubronzhan

Hey @lubronzhan! Thanks for opening your first issue. We appreciate your contribution and welcome you to our community! We are glad to have you here and to have your input on Contour. You can also join us on our mailing list and in our channel in the Kubernetes Slack Workspace

github-actions[bot] avatar Jan 11 '24 17:01 github-actions[bot]

The Contour project currently lacks enough contributors to adequately respond to all Issues.

This bot triages Issues according to the following rules:

  • After 60d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, the Issue is closed

You can:

  • Mark this Issue as fresh by commenting
  • Close this Issue
  • Offer to help out with triage

Please send feedback to the #contour channel in the Kubernetes Slack

github-actions[bot] avatar Mar 12 '24 00:03 github-actions[bot]

The Contour project currently lacks enough contributors to adequately respond to all Issues.

This bot triages Issues according to the following rules:

  • After 60d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, the Issue is closed

You can:

  • Mark this Issue as fresh by commenting
  • Close this Issue
  • Offer to help out with triage

Please send feedback to the #contour channel in the Kubernetes Slack

github-actions[bot] avatar Apr 11 '24 00:04 github-actions[bot]