Skip to content
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

Resolve HA / multi-thread concerns around Gateway updates #318

Open
evankanderson opened this issue Jun 28, 2022 · 9 comments
Open

Resolve HA / multi-thread concerns around Gateway updates #318

evankanderson opened this issue Jun 28, 2022 · 9 comments
Labels
triage/accepted Issues which should be fixed (post-triage) upstream/gateway

Comments

@evankanderson
Copy link
Contributor

Currenty, we assume a single Gateway resource; when using auto-TLS, we need to update Spec.Listeners for each Knative Route.

The default controller implementation will attempt to reconcile multiple KIngress resources at once, which means that it's likely that we will get some number of update collisions on the Gateway. We should figure out a mechanism for spreading updates across multiple Gateways to enable HA / multi-threaded controllers without bottlenecking on a single Gateway instance.

This is extracted from this PR comment

@github-actions
Copy link
Contributor

This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen. Mark the issue as
fresh by adding the comment /remove-lifecycle stale.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 27, 2022
@knative-prow-robot
Copy link
Contributor

This issue or pull request is stale because it has been open for 90 days with no activity.

This bot triages issues and PRs according to the following rules:

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

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close

/lifecycle stale

@github-actions github-actions bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Oct 28, 2022
@github-actions
Copy link
Contributor

This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen. Mark the issue as
fresh by adding the comment /remove-lifecycle stale.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 27, 2023
@evankanderson
Copy link
Contributor Author

/remove-lifecycle stale

I'll take a look and see if this is still necessary

@knative-prow knative-prow bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 27, 2023
@dprotaso
Copy link
Contributor

dprotaso commented Feb 7, 2023

Sorta a dupe of #363

Two potential options to explore:

  1. From It is hard to programmatically manage `Spec.Listeners` kubernetes-sigs/gateway-api#1248 - add a conformance test to assert Gateway merges and push for this to be part of the CORE.
  2. See if Server side apply gives us some granularity here - maybe we use distinct field managers for listener entries - though this implies there isn't some validation preventing duplicate listeners (which is trying to be added via Webhook: Validate unique port, protocol, and hostname per listener kubernetes-sigs/gateway-api#847) which I'm trying to halt - Webhook: Validate unique port, protocol, and hostname per listener kubernetes-sigs/gateway-api#847 (comment) (ignore as hostname would be unique in each listener)

Related to 1. I think we should formalize a different way of merging Gateways beyond having the same addresses. I'll make a GEP for this.

@dprotaso
Copy link
Contributor

dprotaso commented Feb 8, 2023

Upstream GEP issue
kubernetes-sigs/gateway-api#1713

@github-actions
Copy link
Contributor

This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen. Mark the issue as
fresh by adding the comment /remove-lifecycle stale.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 24, 2023
@ReToCode
Copy link
Member

/remove-lifecycle stale
/triage accepted

@knative-prow knative-prow bot added triage/accepted Issues which should be fixed (post-triage) and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels May 24, 2023
@dprotaso
Copy link
Contributor

dprotaso commented Apr 2, 2024

An alternative as well is using server side apply -

I've added the client API here - kubernetes-sigs/gateway-api#2537

It'll need more exploration once the client changes land

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage/accepted Issues which should be fixed (post-triage) upstream/gateway
Projects
None yet
Development

No branches or pull requests

4 participants