There was some feedback regarding this on the PR[1] mentioned in the 
beginning. 
There is already a RFC[2] regarding this and a plugin[3] to implement the 
solution proposed in the RFC. 

The solution proposed by jlsherrill allows to add multiple HTTP-proxies in 
Foreman and use these in plugins and allow to configure what HTTP-proxy 
should be used for what requests. 
So far the plugin only adds the ability to add HTTP proxies and misses a 
essential part, which is applying the HTTP proxies to requests. 

While looking at how other applications handle this and also considering 
typical HTTP proxy configurations, it feels that such a solution would make 
it rather complex in practice to apply. Configuring rules for requests or 
just ensuring the proper request is using the right HTTP proxy is better 
configurable in the HTTP proxy itself. 

I believe a very bold simple solution would be the better, which in my 
opinion would be to ensure all parts respect a HTTP proxy configuration and 
have good documentation around it to advice on how to configure the HTTP 
proxy correctly. Taken other applications in the same area the HTTP_PROXY 
environment variable seems to be the common standard to use. 

Please, I would love to hear more feedback on this and what are common HTTP 
proxy setups. 

[1] https://github.com/theforeman/foreman-docker/pull/189 
[2] https://github.com/theforeman/rfcs/pull/18 
[3] https://github.com/jlsherrill/foreman_http_proxies

On Thursday, April 20, 2017 at 1:07:33 PM UTC+2, Sebastian Gräßl wrote:
>
> Hej,
>
> at the moment there is a PR[1] open on foreman-docker to set a HTTP proxy 
> for requests to registries.
> The PR allows to set a HTTP proxy on the HTTP client, in this case deep 
> down Excon, only for registry requests.
>
> A HTTP proxy won't be set on requests if a `HTTP_PROXY` environment 
> variable is available, since it is an unlikely setup to have registry 
> request routed over a different proxy than other requests. However setting 
> it via the environment variable will allow requests to succeed to resources 
> available by the HTTP proxy, but will fail for those inside and possible 
> blocked.
>
> The `HTTP_PROXY` environment variable seems to be a standard, and 
> therefore Excon is built to use it when available. 
> Excon is used by docker-api as well as fog, it might be used by other 
> components and there might be other parts that use another HTTP client like 
> RestClient, which also respects the variable.
>
> This means at the moment with that environment variable set some requests 
> would already rely on it.
> In any case this should be in mentioned in the manual to be aware of, also 
> because some operating systems set this globally.
>
> The question is should we make an afford to ensure deployment behind a 
> HTTP proxy on a system with HTTP blocked works without issues and provide a 
> way to configure it properly?
>
> I've tested Foreman with HTTP blocked and `HTTP_PROXY` set, but in a very 
> basic setup, with the only external requests being to Docker registries 
> outside and squid configured to just pass requests through regardless there 
> to.
>
> It didn't show any apparent issue, but there are for sure issues with a 
> more robust configured HTTP proxy. 
> This raises another question: How common is a setup where external 
> resources requiring HTTP are used with Foreman behind a HTTP proxy?
>
> Comments?
>
> All the best,
> Sebastian
>
> [1] https://github.com/theforeman/foreman-docker/pull/189
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"foreman-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to