Configuring proxies

If you need r10k to use a proxy connection, use the proxy parameter. You can set a global proxy for all HTTP(S) operations, proxies for Git or Forge operations, or proxies for individual Git repositories.

Where you specify the proxy parameter depends on how you want to apply the setting:

  • To set a proxy for all r10k operations occurring over an HTTP(S) transport, set the global proxy setting.
    If you don't supply a global proxy, but you have defined a proxy in an environment variable, r10k uses the value from the highest-ranking *_proxy environment variable as the global r10kproxy. In order of precedence, r10k looks for HTTPS_PROXY, then https_proxy, then HTTP_PROXY, and finally http_proxy. If you have defined neither a global proxy nor any *_proxy environment variables, the global proxy setting defaults to no proxy.
  • To set proxies only for Git operations or individual Git repos, set the appropriate proxy key under the git_settings parameter.
  • To set a proxy only for Forge operations, set the proxy key under the forge_settings parameter.

You can set an unauthenticated proxy or an authenticated proxy with either Basic or Digest authentication. For example, this setting is for an unauthenticated proxy:

proxy: 'http://proxy.example.com:3128'

Whereas this setting is for a password-authenticated proxy:

proxy: 'http://user:password@proxy.example.com:3128'

Override proxy settings

You can override the global proxy setting if you want to:

  • Set a different proxy setting for Git or Forge operations.
  • Specify a different proxy setting for an individual Git repo.
  • Specify a mix of proxy and non-proxy connections.

To override the global proxy setting for all Git or Forge operations, you need to set the proxy key under the git_settings or forge_settings parameters.

To set a proxy for an individual Git repository (or if you have multiple control repos), set the proxy key in the repositories hash under the git_settings parameter.

If you have set a global, Git, or Forge proxy, but you don't want a certain setting to use any proxy, set the proxy parameter to an empty string. For example, if you set a global proxy, but you don't want Forge operations to use a proxy, you would specify an empty string under the forge_settings parameter, such as:

puppet_enterprise::master::code_manager::forge_settings: 
  proxy: ''

Proxy server logging

If r10k uses proxy server during a deployment, r10k logs the server at the debug log level.