concourse / concourse/docker-image-resource

PUT doesn't add ref to INPUT when registry mirror is set.

Open
#313 3 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
162
Forks
250
PR merge metrics
No merged PRs in 30d

Description

Disclaimer, this could be just because of a specific registry mirror, we use Artifactory.

Context: With the Docker Hub rate limit hell, we upgraded to Concourse 6.7.1 and setup a registry-mirror for docker-image and registry-image.

Issue: We have a build step that is then used by a task right after.

- name: build-pull-request
  plan:
  - get: pull-request
  - get: labels
  - put: ci-image
    inputs:
    - pull-request
    - labels
    get_params: { skip_download: true }
    params:
      cache: true
      build: pull-request
      tag_file: ./labels/tag_ci
      labels_file: ./labels/file.json
      target_name: dev
      build_args:
        ARTIFACTORY_CREDENTIALS: ((artifactory.username)):((artifactory.password))
- name: do-stuff
  plan:
    - get: ci-image
      passed: [build-pull-request]
      version: every
      trigger: true

And what happens is that when the put: ci-image is done, get: ci-image in do-stuff never gets its input.

We did the following:

- name: docker-image-no-mirror
  type: registry-image
  privileged: true
  source:
    repository: concourse/docker-image-resource
    tag: 1.5.1

And changed the type of ci-image to docker-image-no-mirror and VOILA, refs are filled correctly now.

Now, we still haven't looked at why, but this should help trace it at least.
Feel free to change the title, it's hard to explain that bug in a one liner :/

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the reported pipeline with a registry mirror and compare it with the docker-image-no-mirror configuration using concourse/docker-image-resource version 1.5.1. Trace how the put: ci-image result is passed to the following get: ci-image; done means the get receives its input and the behavior is consistent with and without the mirror.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go
Domain
devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.