-
Notifications
You must be signed in to change notification settings - Fork 98
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
Add Traefik #290
Add Traefik #290
Conversation
https://traefik.io/traefik/ Traefik is a incredibly customizable reverse proxy, including support for auto-mapping other docker containers. I use a traefik.toml like follows, to auto map all containers to subdomains All access is already controlled at my WAF, so I'm leaving authentication to the user ```toml [api] dashboard = true insecure = true [entryPoints] [entryPoints.web] address = ":80" [entryPoints.websecure] address = ":443" [http.routers.traefik] rule = "Host(`traefik.my.domain.tld`)" service = "api@internal" [providers.docker] # Set up docker discovery defaultRule = "Host(`{{ .Name }}.my.domain.tld`)" ``` The cmd_arguments used are a minimum to get traefik to expose a dashboard and discover docker containers.
Hi @kageurufu, First of all, sorry for the delay in having a look at your PR. This is actually one that I have been having on my mind for a very long time but never really got the opportunity to try. Having a Rock-on for Traefik is actually the reason why I wanted to have an implementation for Docker labels (rockstor/rockstor-core#1999) and Docker networks (rockstor/rockstor-core#2207). The reason I was always interested in Traefik is its simplicity and flexibility to dynamically add a new service under it, but it's also the reason why it always overwhelmed me a little bit as there are 2 or 3 ways to do everything. While this is always a good thing for a standard system, it actually can also complicate things quite a bit in the context of Rock-ons and Rockstor. Indeed, as we always try to make "complex" task as simple as they can be for the user, it does offer some challenges here. I still need to wrap my head around these so I will lay out some of my thoughts below, hoping it'll help me get a better grasp of potential solutions, and also use your experience with Traefik to resolve some blockades.
This is actually one of the main points of discussion for me. Indeed, leaving the If I'm correct, the dynamic configuration can be achieved either by labels on containers, and/or in a dedicated
I think I personally favor option 2 above, as it would be the most turn-key solution for the user, while allowing for configuration in a dynamic file. I would also prefer to disable traefik by defaults on all containers and let the user pick the one to be routed by traefik using Docker labels as not everybody would like to have all their containers taken care of by traefik, I believe. @kageurufu , let me know if any of this makes sense to you and what you think of it; it could very well be that I'm completely wrong about any of these settings as I haven't really tried to use Traefik yet and am thus still a bit unclear on how to actually configure it properly. |
@kageurufu and @FroggyFlox & @Hooverdan96 this pr has awaited a question from @FroggyFlox for over a year now. If there is now no longer any interest I propose that we close this. It can always be re-opened as folks get time/attention in this area. |
Closing as above prior comment and we now also need a rebase to further assess this Rock-on. |
https://traefik.io/traefik/
Traefik is a incredibly customizable reverse proxy, including support for auto-mapping other docker containers. I use a traefik.toml like follows, to auto map all containers to subdomains
All access is already controlled at my WAF, so I'm leaving authentication to the user
The cmd_arguments used are a minimum to get traefik to expose a dashboard and discover docker containers.
Fixes # .
General information on project
This pull request proposes to add a new rock-on for the following project:
Information on docker image
Checklist
root.json
in alphabetical order (for new rock-on only)"description"
object lists and links to the docker image used"description"
object provides information on the image's particularities (advantage over another existing rock-on for the same project, for instance)"website"
object links to project's main website