zuul-jobs/roles/pull-from-intermediate-registry
Clark Boylan d2aaa5529c Handle no metadata in zuul artifact items
When pulling from intermediate registries we check zuul for artifacts of
a certain type. Unfortunately we do so blindly without checking that the
metadata field exists for the artifact. These leads to errors like:

  "msg": "The conditional check 'item.metadata.type | default('') == 'container_image'' failed.
  The error was: error while evaluating conditional (item.metadata.type | default('') == 'container_image'): 'dict object' has no attribute 'metadata'

  http://logs.openstack.org/12/643712/1/gate/opendev-buildset-registry/1016e6e/job-output.txt.gz#_2019-03-18_19_28_39_060210

Address this by checking the metadata field prior to accessing it.

Change-Id: I02bbeddccdda836fc313eccce09e4cb0beb6262a
2019-03-18 14:20:55 -07:00
..

Pull artifacts from the intermediate registry

This role will pull any artifacts built for changes ahead of this change which have been placed in an intermediate registry into the buildset registry for this buildset.

Run this in a trusted pre-playbook at the start of a job (which, in the case of multiple dependent jobs in a buildset, should be at the root of the job dependency graph).

This requires the :zuulrun-buildset-registry role already applied. It also requires an externally managed "intermediate" registry operating for the use of Zuul, and it requires "skopeo" to be installed on the Zuul executors.

Role Variables

Information about the registry, as returned by :zuulrun-buildset-registry.

The host (IP address) of the registry.

The port on which the registry is listening.

The username used to access the registry via HTTP basic auth.

The password used to access the registry via HTTP basic auth.

The (self-signed) certificate used by the registry.

Information about the registry. This is expected to be provided as a secret.

The host (IP address) of the registry.

The port on which the registry is listening.

The username used to access the registry via HTTP basic auth.

The password used to access the registry via HTTP basic auth.