Search code examples
kubernetesopenshiftdocker-registry

OpenShift import-image fails when behind corporate proxy


When i run

oc import-image centos:7 --confirm true

I am getting

The import completed with errors.

Name:                   centos
Namespace:              pd-kube-ci
Created:                Less than a second ago
Labels:                 <none>
Annotations:            openshift.io/image.dockerRepositoryCheck=2018-12-27T21:00:26Z
Docker Pull Spec:       docker-registry.default.svc:5000/pd-kube-ci/centos
Image Lookup:           local=false
Unique Images:          0
Tags:                   1

7
  tagged from centos:7

  ! error: Import failed (InternalError): Internal error occurred: Get https://registry-1.docker.io/v2/: proxyconnect tcp: EOF
      Less than a second ago

error: tag 7 failed: Internal error occurred: Get https://registry-1.docker.io/v2/: proxyconnect tcp: EOF

For the life of me, i cannot find the source of proxyconnect tcp: EOF. Its not found anywhere in the OpenShift/Kubernetes source. Google knows next to nothing about that.

I have also verified that i can docker pull centos from each node (including master and infra nodes). Its only when openshift tries to pull that image.

Any ideas?


Solution

  • Turns out it was a mis-configuration in our openshift_https_proxy ansible var. Specifically we had:

    openshift_https_proxy=https://proxy.mycompany.com:8443
    

    And we should have had

    openshift_https_proxy=http://proxy.mycompany.com:8443
    

    To fix this, we had to edit /etc/origin/master/master.env on the masters and /etc/sysconfig/docker on all nodes, then restart per the Working with HTTP Proxies documentation.