-
Notifications
You must be signed in to change notification settings - Fork 179
Proposal: Allow opting out of the router (user brings their own ingress controller instead) #584
Comments
Hi guys, what is the status of this? |
Our system is relatively simple for bug triage: this issue is labeled as a proposal and there is no milestone and nobody assigned to it, so nobody is working on this proposal. :) |
fwiw, I'd like to amend the original idea here to not be Traefik specific. I'd propose that what's better to is just let people opt out of the router (instead of opting in to Traefik). The idea would then be that they could bring along their own preferred ingress controller-- whatever that happens to be. I'll update the issue's title to reflect that. |
@bacongobbler I haven't been in Workflow planning sessions lately due to other work... I'm curious whether there's at least been any discussion of this. |
No discussion on this front has occurred AFAIK. We're thinking of tackling webhooks and |
fwiw, I feel this is something a lot of people have expressed interest in. |
HI again, |
You can fork the controller and make the scheduler create an ingress route after deploying the application, but there is no existing feature flag/workaround for that use case. |
@bacongobbler I can try. Is this the location where I should add the ingress route? I could add in the manifest generated an ingress route:
|
We'd likely accept a PR if someone wants to tackle this. |
@cdupont yes. |
@cdupont are you actively working on this? I'm asking because Deis has brought on a new resource who is probably ready to tackle this and I'm working up a more thorough design proposal. I just want to minimize any overlapping efforts on your part or ours. |
Hi,
But didn't tested. Also, I think it would be better to add it to its own file (like services.py). |
BTW, I cannot compile the controller:
|
@cdupont do you have PostgreSQL libraries & headers installed? On macOS |
After digging into this pretty deep, I know of a considerable bit more that needs to be done. This list is non-exhaustive, but will give you an idea. We have an internal document that goes into a nauseating level of detail.
We welcome contributions, as always, but knowing how involved this is, I believe @mboersma is going to put a dedicated resource on this task. I just want you to be aware before you put too much more effort into this. |
@krancour feel free to move forward, I don't think I will be able to go much further anyway. |
Any update on this :) |
@kris-nova is actively working on it. |
There are 2 PRs out for the feature
They are in review now, so we are waiting to hear back from the team. But I imagine they should be merged in shortly. Is there anyway you can spare a few minutes and see if these changes are in alignment with what you imagined the feature to feel like? |
Hi Kris, |
Phase 1 of bring-your-own-ingress is completed now and will be in the Deis Workflow v2.13 release. See https://deis.com/docs/workflow/installing-workflow/experimental-native-ingress/ for instructions. We will track any remaining issues separately in the controller or workflow repositories, so please leave feedback there as appropriate. |
Support for k8s ingresses and Let's Encrypt are two frequently requested features for the router. Enabling either of these without incurring breaking changes seems challenging, if not impossible... unless... we make these opt-in by hiding them behind a feature flag!
I've recently submitted helm/charts#146, which adds a Helm chart that utilizes Traefik as a Kubernetes ingress contoller / lightweight router with opt-in support for Let's Encrypt.
This chart would work very well with Workflow if, depending upon the value of a feature flag, the controller were to manage k8s ingress resources instead of "routable services."
Caveats:
Traefik is just a router / proxy.It doesn't do some of these web-servery kind of things. (imo, it's a good thing that Traefik is simpler-- does one thing and does it well.) If your application needs any of these missing features, you need to implement them within your application. (Ordinarily, this is a good use case for a "sidecar" container, although Workflow doesn't have any specific support for deploying multi-container applications.) Bottom line: be aware of what features you sacrifice when you opt for this.The text was updated successfully, but these errors were encountered: