Uploaded image for project: 'R10K'
  1. R10K
  2. RK-229

Setting Forge proxy options breaks PE Authentication

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: r10k 2.1.0, r10k 2.1.1, r10k 2.2.0
    • Fix Version/s: PE 2016.1.2, r10k 2.2.1
    • Component/s: None
    • Labels:
    • Template:
    • Story Points:
      2
    • Sprint:
      CODEMGMT 2016-04-20
    • Release Notes:
      Bug Fix
    • Release Notes Summary:
      Previously, users of r10k in PE who accessed Puppet Forge via a proxy could not use r10k to install/manage PE-only modules. This change resolves that issue.

      Description

      Issue

      In many customer environments there is a need for proxies for either security reasons (intercept proxy) or to reduce loads (caching proxy).

      The following is an example of the environment variables for such a situation:

      export http_proxy=http://10.20.1.114:3127
      export HTTP_PROXY=http://10.20.1.114:3127
      export https_proxy=https://10.20.1.114:3127
      export HTTPS_PROXY=https://10.20.1.114:3127
      

      This will cause all HTTP and HTTPS traffic to be proxied via 10.20.1.114. In the case of r10k this is normally not an issue. If a valid license is installed and there is a PE-only module in the Puppetfile the following will occur:

      r10k puppetfile install
      ERROR	 -> You must have a valid Puppet Enterprise license on this node in order to download puppetlabs-f5-1.5.0. If you have a Puppet Enterprise license, please see https://docs.puppetlabs.com/pe/latest/modules_installing.html#puppet-enterprise-modules for more information.
      

      As can be seen r10k does not believe there is a valid license.

      [2016-03-03 05:50:00 - INFO] Deploying module /etc/puppetlabs/code/environments/production/modules/f5
      [2016-03-03 05:50:01 - DEBUG1] Downloading puppetlabs-f5-1.5.0 from https://forgeapi.puppetlabs.com/ to /tmp/d20160303-2888-1ms43bm/puppetlabs-f5-1.5.0.tar.gz
      [2016-03-03 05:50:02 - ERROR] You must have a valid Puppet Enterprise license on this node in order to download puppetlabs-f5-1.5.0. If you have a Puppet Enterprise license, please see https://docs.puppetlabs.com/pe/latest/modules_installing.html#puppet-enterprise-modules for more information.
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/puppet_forge-2.1.1/lib/puppet_forge/v3/release.rb:33:in `rescue in download'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/puppet_forge-2.1.1/lib/puppet_forge/v3/release.rb:27:in `download'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/forge/module_release.rb:73:in `download'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/forge/module_release.rb:61:in `install'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/module/forge.rb:132:in `install'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/module/forge.rb:43:in `sync'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/deploy/module.rb:53:in `visit_module'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/visitor.rb:24:in `visit'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/module/base.rb:81:in `accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/puppetfile.rb:94:in `block (2 levels) in accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/puppetfile.rb:93:in `each'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/puppetfile.rb:93:in `block in accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/deploy/module.rb:47:in `visit_puppetfile'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/visitor.rb:24:in `visit'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/puppetfile.rb:92:in `accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/environment/base.rb:98:in `block in accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/deploy/module.rb:41:in `visit_environment'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/visitor.rb:24:in `visit'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/environment/base.rb:97:in `accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/source/base.rb:64:in `block (2 levels) in accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/source/base.rb:63:in `each'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/source/base.rb:63:in `block in accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/deploy/module.rb:33:in `visit_source'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/visitor.rb:24:in `visit'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/source/base.rb:62:in `accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/deployment.rb:104:in `block (2 levels) in accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/deployment.rb:103:in `each'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/deployment.rb:103:in `block in accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/deploy/module.rb:29:in `visit_deployment'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/visitor.rb:24:in `visit'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/deployment.rb:102:in `accept'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/deploy/module.rb:20:in `call'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/runner.rb:33:in `call'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/lib/r10k/action/cri_runner.rb:67:in `call'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cri-2.6.1/lib/cri/command_dsl.rb:223:in `block in runner'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cri-2.6.1/lib/cri/command.rb:298:in `call'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cri-2.6.1/lib/cri/command.rb:298:in `run_this'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cri-2.6.1/lib/cri/command.rb:251:in `run'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cri-2.6.1/lib/cri/command.rb:264:in `run'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cri-2.6.1/lib/cri/command.rb:264:in `run'
      /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/r10k-2.2.0dev/bin/r10k:7:in `<top (required)>'
      /usr/local/bin/r10k:23:in `load'
      /usr/local/bin/r10k:23:in `<main>'
      

      If the environment variables for the proxy are removed the r10k command is successful

      This issue is preventing customer from utilising PE-only modules form the Forge when in environments that utilise proxies.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              qa qa
              Reporter:
              brett.gray Brett Gray
              QA Contact:
              Zach Reichert
              Votes:
              2 Vote for this issue
              Watchers:
              11 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Zendesk Support