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

Extract out networking.internal.knative.dev.ClusterIngress #1963

Closed
tcnghia opened this issue Aug 28, 2018 · 9 comments
Closed

Extract out networking.internal.knative.dev.ClusterIngress #1963

tcnghia opened this issue Aug 28, 2018 · 9 comments
Assignees
Labels
area/API API objects and controllers area/networking Epic Epics to group issues kind/feature Well-understood/specified features, ready for coding. kind/spec Discussion of how a feature should be exposed to customers.

Comments

@tcnghia
Copy link
Contributor

tcnghia commented Aug 28, 2018

Expected Behavior

We have ClusterIngress that cleanly separates out our Istio Gateway / VirtualService dependency.

Actual Behavior

We are generating VirtualServices from our Route which has strong coupling with Configuration/Revision.

@tcnghia tcnghia added the Epic Epics to group issues label Aug 28, 2018
@tcnghia tcnghia self-assigned this Aug 28, 2018
@knative-prow-robot knative-prow-robot added area/API API objects and controllers area/networking kind/feature Well-understood/specified features, ready for coding. kind/spec Discussion of how a feature should be exposed to customers. labels Aug 28, 2018
@lichuqiang
Copy link
Contributor

/cc

@josephburnett
Copy link
Contributor

@tcnghia, I would also expect that ClusterIngress would specify the desired queuing behavior for requests which exceed the capacity of the Revision or an individual Pod. E.g. #1846.

@mattmoor, what do you think?

@tcnghia
Copy link
Contributor Author

tcnghia commented Oct 4, 2018

@josephburnett I'd like to start out from what we can do first. I'd love to discuss more about the queuing capacity needed and follow up with an improvement.

@tcnghia
Copy link
Contributor Author

tcnghia commented Oct 4, 2018

Plan of implementation based on last WG meetup:

  1. Introduce internal type networking.internal.knative.dev/v1alpha1/ClusterIngress
  2. Enable validation of ClusterIngress in the webhook.
  3. Reconcile ClusterIngress into VirtualService (PoC).
  4. Add ./pkg/reconciler/route/resources/ingress.go (PoC) to make a ClusterIngress from a Route.
  5. Switch ./pkg/reconciler/route/route.go (PoC) to:
    5.1. create ClusterIngress instead of VirtualService.
    5.2. create placeholder Service based on ClusterIngress.Status.LoadBalancer output.

@lichuqiang
Copy link
Contributor

Would like to pick up the reconciler tasks once we get the API merged

@lichuqiang
Copy link
Contributor

/assign

@mattmoor
Copy link
Member

@tcnghia @lichuqiang Is there more work left here? I think we've landed at least the scope I wanted for 0.2.

@lichuqiang
Copy link
Contributor

lichuqiang commented Oct 26, 2018

We'll need to consider refactoring the ingress reconciler, hopefully to decouple it from the main controller.
But we can close this, and open a new issue to track that.

@mattmoor
Copy link
Member

This was about building the abstraction, and not about decoupling Istio.

thanks again, @lichuqiang !!!!! 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/API API objects and controllers area/networking Epic Epics to group issues kind/feature Well-understood/specified features, ready for coding. kind/spec Discussion of how a feature should be exposed to customers.
Projects
None yet
Development

No branches or pull requests

5 participants