Unable to fetch from eu.gcr.io repository (kubernetes secret)

Hello,

I have a pretty straighforward pipeline running on a kubernetes running which looks like this:

---
kind: pipeline
type: kubernetes
name: Kapitan Compile

steps:
# This step works and prints the secret
- name: test variable exists
  image: alpine
  commands:
  - echo $DOCKERCONFIG
  environment:
    DOCKERCONFIG:
      from_secret: dockerconfig

# this step fails with no output
- name: pull private image
  image: eu.gcr.io/antha-images/kapitan:0.26.1-ci
  commands:
  - cd kapitan-templates
  - kapitan compile

image_pull_secrets:
- dockerconfig

---
kind: secret
name: dockerconfig
get:
  path: gcr.io
  name: .dockercfg

Step “test variable exists” works as expected and prints out the secret.
Step “pull private image” fails and is unable to download the image.

The secret is the one I normally use as pullsecret in kubernetes, and it is in the format:

{
  "eu.gcr.io": {
    "username": "_json_key",
    "password": "REDACTED"
    "email": "REDACTED",
    "auth": "REDACTED"
  }
}

I am puzzled: is this a different format than the dockerconfigjson that is mentioned in How to pull private images with 1.0?

{
	"auths": {
		"https://index.docker.io/v1/": {
			"auth": "YW11cmRhY2E6c3VwZXJzZWNyZXRwYXNzd29yZA=="
		}
	}
}

Is it possible to also support this format?

I think I’m using the old format:

will migrate to the new one.

also see https://github.com/drone/drone-runtime/issues/55 which describes a specific issues we have seen with docker/config.json files generated by gcr and how to workaround.

1 Like

Thank you, using the new format solved my issue.