From a4fa9b761e2de14df588c1e37f3693174f15ad36 Mon Sep 17 00:00:00 2001 From: Pete Birley Date: Thu, 17 May 2018 22:43:08 -0500 Subject: [PATCH] Release Support: OpenStack Pike This PS adds support for OpenStack Pike. Change-Id: I5ed4df112d7b71493417ef7d655dd57df5213306 Signed-off-by: Pete Birley --- .zuul.yaml | 26 ++++ tools/images/openstack/pike/loci.sh | 172 +++++++++++++++++++++++ tools/overrides/releases/pike/kolla.yaml | 103 ++++++++++++++ tools/overrides/releases/pike/loci.yaml | 80 +++++++++++ 4 files changed, 381 insertions(+) create mode 100755 tools/images/openstack/pike/loci.sh create mode 100644 tools/overrides/releases/pike/kolla.yaml create mode 100644 tools/overrides/releases/pike/loci.yaml diff --git a/.zuul.yaml b/.zuul.yaml index 4d6bec0f43..03271b7a21 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -84,6 +84,18 @@ - ^.*\.rst$ - ^doc/.*$ - ^releasenotes/.*$ + - openstack-helm-pike-loci-deploy-ceph: + voting: false + irrelevant-files: + - ^.*\.rst$ + - ^doc/.*$ + - ^releasenotes/.*$ + - openstack-helm-pike-kolla-deploy-ceph: + voting: false + irrelevant-files: + - ^.*\.rst$ + - ^doc/.*$ + - ^releasenotes/.*$ gate: jobs: - openstack-helm-linter: @@ -271,6 +283,20 @@ parent: openstack-helm-dev-deploy run: tools/gate/playbooks/dev-deploy-ceph.yaml +- job: + name: openstack-helm-pike-loci-deploy-ceph + vars: + zuul_osh_extra_helm_args_relative_path: --values=./tools/overrides/releases/pike/loci.yaml + parent: openstack-helm-dev-deploy + run: tools/gate/playbooks/dev-deploy-ceph.yaml + +- job: + name: openstack-helm-pike-kolla-deploy-ceph + vars: + zuul_osh_extra_helm_args_relative_path: --values=./tools/overrides/releases/pike/kolla.yaml + parent: openstack-helm-dev-deploy + run: tools/gate/playbooks/dev-deploy-ceph.yaml + - job: timeout: 10800 name: openstack-helm-multinode-tempest diff --git a/tools/images/openstack/pike/loci.sh b/tools/images/openstack/pike/loci.sh new file mode 100755 index 0000000000..f1af95d7bd --- /dev/null +++ b/tools/images/openstack/pike/loci.sh @@ -0,0 +1,172 @@ +#!/bin/bash +set -ex +OPENSTACK_VERSION="stable/pike" +IMAGE_TAG="${OPENSTACK_VERSION#*/}" + +sudo docker run -d \ + --name docker-in-docker \ + --privileged=true \ + --net=host \ + -v /var/lib/docker \ + -v ${HOME}/.docker/config.json:/root/.docker/config.json:ro\ + docker.io/docker:17.07.0-dind \ + dockerd \ + --pidfile=/var/run/docker.pid \ + --host=unix:///var/run/docker.sock \ + --storage-driver=overlay2 +sudo docker exec docker-in-docker apk update +sudo docker exec docker-in-docker apk add git + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --network host \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT=requirements \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --tag docker.io/openstackhelm/requirements:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/requirements:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=keystone \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="apache ldap" \ + --build-arg PIP_PACKAGES="pycrypto python-openstackclient" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/keystone:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/keystone:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=heat \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="apache" \ + --build-arg PIP_PACKAGES="pycrypto" \ + --build-arg DIST_PACKAGES="curl" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/heat:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/heat:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=barbican \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PIP_PACKAGES="pycrypto" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/barbican:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/barbican:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=glance \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="glance ceph" \ + --build-arg PIP_PACKAGES="pycrypto python-swiftclient" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/glance:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/glance:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=cinder \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="cinder lvm ceph qemu" \ + --build-arg PIP_PACKAGES="pycrypto python-swiftclient" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/cinder:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/cinder:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=neutron \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="neutron linuxbridge openvswitch" \ + --build-arg PIP_PACKAGES="pycrypto" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/neutron:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/neutron:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=neutron \ + --build-arg FROM=docker.io/ubuntu:18.04 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="neutron linuxbridge openvswitch" \ + --build-arg PIP_PACKAGES="pycrypto" \ + --build-arg DIST_PACKAGES="ethtool lshw" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/neutron:${IMAGE_TAG}-sriov-1804 +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/neutron:${IMAGE_TAG}-sriov-1804 + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=nova \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="nova ceph linuxbridge openvswitch configdrive qemu apache" \ + --build-arg PIP_PACKAGES="pycrypto" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/nova:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/nova:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=horizon \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="horizon apache" \ + --build-arg PIP_PACKAGES="pycrypto" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/horizon:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/horizon:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=senlin \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="senlin" \ + --build-arg PIP_PACKAGES="pycrypto" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/senlin:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/senlin:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=congress \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="congress" \ + --build-arg PIP_PACKAGES="pycrypto python-congressclient" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/congress:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/congress:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=magnum \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="magnum" \ + --build-arg PIP_PACKAGES="pycrypto" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/magnum:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/magnum:${IMAGE_TAG} + +sudo docker exec docker-in-docker docker build --force-rm --pull --no-cache \ + https://git.openstack.org/openstack/loci.git \ + --build-arg PROJECT=ironic \ + --build-arg FROM=gcr.io/google_containers/ubuntu-slim:0.14 \ + --build-arg PROJECT_REF=${OPENSTACK_VERSION} \ + --build-arg PROFILES="ironic ipxe ipmi qemu tftp" \ + --build-arg PIP_PACKAGES="pycrypto" \ + --build-arg DIST_PACKAGES="iproute2" \ + --build-arg WHEELS=openstackhelm/requirements:${IMAGE_TAG} \ + --tag docker.io/openstackhelm/ironic:${IMAGE_TAG} +sudo docker exec docker-in-docker docker push docker.io/openstackhelm/ironic:${IMAGE_TAG} diff --git a/tools/overrides/releases/pike/kolla.yaml b/tools/overrides/releases/pike/kolla.yaml new file mode 100644 index 0000000000..f750fcfe18 --- /dev/null +++ b/tools/overrides/releases/pike/kolla.yaml @@ -0,0 +1,103 @@ +conf: + neutron: + agent: + root_helper: sudo /var/lib/kolla/venv/bin/neutron-rootwrap /etc/neutron/rootwrap.conf +images: + tags: + barbican_api: 'docker.io/kolla/ubuntu-source-barbican-api:pike' + barbican_db_sync: 'docker.io/kolla/ubuntu-source-barbican-api:pike' + bootstrap: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + cinder_api: 'docker.io/kolla/ubuntu-source-cinder-api:pike' + cinder_backup: 'docker.io/kolla/ubuntu-source-cinder-backup:pike' + cinder_db_sync: 'docker.io/kolla/ubuntu-source-cinder-api:pike' + cinder_scheduler: 'docker.io/kolla/ubuntu-source-cinder-scheduler:pike' + cinder_volume: 'docker.io/kolla/ubuntu-source-cinder-volume:pike' + cinder_volume_usage_audit: 'docker.io/kolla/ubuntu-source-cinder-volume:pike' + congress_api: 'docker.io/kolla/ubuntu-source-congress-api:pike' + congress_datasource: 'docker.io/kolla/ubuntu-source-congress-datasource:pike' + congress_db_sync: 'docker.io/kolla/ubuntu-source-congress-api:pike' + congress_ds_create: 'docker.io/kolla/ubuntu-source-congress-api:pike' + congress_policy_engine: 'docker.io/kolla/ubuntu-source-congress-policy-engine:pike' + congress_scripted_test: 'docker.io/kolla/ubuntu-source-congress-api:pike' + db_drop: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + db_init: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + glance_api: 'docker.io/kolla/ubuntu-source-glance-api:pike' + glance_bootstrap: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + glance_db_sync: 'docker.io/kolla/ubuntu-source-glance-api:pike' + glance_registry: 'docker.io/kolla/ubuntu-source-glance-registry:pike' + heat_api: 'docker.io/kolla/ubuntu-source-heat-api:pike' + heat_cfn: 'docker.io/kolla/ubuntu-source-heat-api:pike' + heat_cloudwatch: 'docker.io/kolla/ubuntu-source-heat-api:pike' + heat_db_sync: 'docker.io/kolla/ubuntu-source-heat-api:pike' + heat_engine: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + heat_engine_cleaner: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + horizon: 'docker.io/kolla/ubuntu-source-horizon:pike' + horizon_db_sync: 'docker.io/kolla/ubuntu-source-horizon:pike' + ironic_api: 'docker.io/kolla/ubuntu-source-ironic-api:pike' + ironic_bootstrap: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + ironic_conductor: 'docker.io/kolla/ubuntu-source-ironic-conductor:pike' + ironic_db_sync: 'docker.io/kolla/ubuntu-source-ironic-api:pike' + ironic_pxe: 'docker.io/kolla/ubuntu-source-ironic-pxe:pike' + ironic_pxe_init: 'docker.io/kolla/ubuntu-source-ironic-pxe:pike' + keystone_api: 'docker.io/kolla/ubuntu-source-keystone:pike' + keystone_bootstrap: 'docker.io/kolla/ubuntu-source-keystone:pike' + keystone_credential_rotate: 'docker.io/kolla/ubuntu-source-keystone:pike' + keystone_credential_setup: 'docker.io/kolla/ubuntu-source-keystone:pike' + keystone_db_sync: 'docker.io/kolla/ubuntu-source-keystone:pike' + keystone_domain_manage: 'docker.io/kolla/ubuntu-source-keystone:pike' + keystone_fernet_rotate: 'docker.io/kolla/ubuntu-source-keystone:pike' + keystone_fernet_setup: 'docker.io/kolla/ubuntu-source-keystone:pike' + ks_endpoints: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + ks_service: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + ks_user: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + magnum_api: 'docker.io/kolla/ubuntu-source-magnum-api:pike' + magnum_conductor: 'docker.io/kolla/ubuntu-source-magnum-conductor:pike' + magnum_db_sync: 'docker.io/kolla/ubuntu-source-magnum-api:pike' + neutron_db_sync: 'docker.io/kolla/ubuntu-source-neutron-server:pike' + neutron_dhcp: 'docker.io/kolla/ubuntu-source-neutron-dhcp-agent:pike' + neutron_l3: 'docker.io/kolla/ubuntu-source-neutron-l3-agent:pike' + neutron_linuxbridge_agent: 'docker.io/kolla/ubuntu-source-neutron-linuxbridge-agent:pike' + neutron_metadata: 'docker.io/kolla/ubuntu-source-neutron-metadata-agent:pike' + neutron_openvswitch_agent: 'docker.io/kolla/ubuntu-source-neutron-openvswitch-agent:pike' + neutron_server: 'docker.io/kolla/ubuntu-source-neutron-server:pike' + nova_api: 'docker.io/kolla/ubuntu-source-nova-api:pike' + nova_cell_setup: 'docker.io/kolla/ubuntu-source-nova-api:pike' + nova_compute: 'docker.io/kolla/ubuntu-source-nova-compute:pike' + nova_compute_ironic: 'docker.io/kolla/ubuntu-source-nova-compute-ironic:pike' + nova_compute_ssh: 'docker.io/kolla/ubuntu-source-nova-ssh:pike' + nova_conductor: 'docker.io/kolla/ubuntu-source-nova-conductor:pike' + nova_consoleauth: 'docker.io/kolla/ubuntu-source-nova-consoleauth:pike' + nova_db_sync: 'docker.io/kolla/ubuntu-source-nova-api:pike' + nova_novncproxy: 'docker.io/kolla/ubuntu-source-nova-novncproxy:pike' + nova_novncproxy_assets: 'docker.io/kolla/ubuntu-source-nova-novncproxy:pike' + nova_placement: 'docker.io/kolla/ubuntu-source-nova-placement-api:pike' + nova_scheduler: 'docker.io/kolla/ubuntu-source-nova-scheduler:pike' + nova_spiceproxy: 'docker.io/kolla/ubuntu-source-nova-spicehtml5proxy:pike' + nova_spiceproxy_assets: 'docker.io/kolla/ubuntu-source-nova-spicehtml5proxy:pike' + scripted_test: 'docker.io/kolla/ubuntu-source-heat-engine:pike' + senlin_api: 'docker.io/kolla/ubuntu-source-senlin-api:pike' + senlin_db_sync: 'docker.io/kolla/ubuntu-source-senlin-api:pike' + senlin_engine: 'docker.io/kolla/ubuntu-source-senlin-engine:pike' + tempest: 'docker.io/kolla/ubuntu-source-tempest:pike' + test: 'docker.io/kolla/ubuntu-source-rally:pike' +pod: + #NOTE(portdirect): see https://github.com/openstack/kolla/blob/f62f5ae2fa5e7808722f9b37b48a50b39c20b46d/kolla/common/config.py#L695-L998 + user: + barbican: + uid: 42403 + cinder: + uid: 42407 + congress: + uid: 42410 + glance: + uid: 42415 + heat: + uid: 42418 + magnum: + uid: 42428 + neutron: + uid: 42435 + nova: + uid: 42436 + senlin: + uid: 42443 diff --git a/tools/overrides/releases/pike/loci.yaml b/tools/overrides/releases/pike/loci.yaml new file mode 100644 index 0000000000..b63a39f736 --- /dev/null +++ b/tools/overrides/releases/pike/loci.yaml @@ -0,0 +1,80 @@ +images: + tags: + barbican_api: 'docker.io/openstackhelm/barbican:pike' + barbican_db_sync: 'docker.io/openstackhelm/barbican:pike' + bootstrap: 'docker.io/openstackhelm/heat:pike' + cinder_api: 'docker.io/openstackhelm/cinder:pike' + cinder_backup: 'docker.io/openstackhelm/cinder:pike' + cinder_db_sync: 'docker.io/openstackhelm/cinder:pike' + cinder_scheduler: 'docker.io/openstackhelm/cinder:pike' + cinder_volume: 'docker.io/openstackhelm/cinder:pike' + cinder_volume_usage_audit: 'docker.io/openstackhelm/cinder:pike' + congress_api: 'docker.io/openstackhelm/congress:pike' + congress_datasource: 'docker.io/openstackhelm/congress:pike' + congress_db_sync: 'docker.io/openstackhelm/congress:pike' + congress_ds_create: 'docker.io/openstackhelm/congress:pike' + congress_policy_engine: 'docker.io/openstackhelm/congress:pike' + congress_scripted_test: 'docker.io/openstackhelm/congress:pike' + db_drop: 'docker.io/openstackhelm/heat:pike' + db_init: 'docker.io/openstackhelm/heat:pike' + glance_api: 'docker.io/openstackhelm/glance:pike' + glance_bootstrap: 'docker.io/openstackhelm/heat:pike' + glance_db_sync: 'docker.io/openstackhelm/glance:pike' + glance_registry: 'docker.io/openstackhelm/glance:pike' + heat_api: 'docker.io/openstackhelm/heat:pike' + heat_cfn: 'docker.io/openstackhelm/heat:pike' + heat_cloudwatch: 'docker.io/openstackhelm/heat:pike' + heat_db_sync: 'docker.io/openstackhelm/heat:pike' + heat_engine: 'docker.io/openstackhelm/heat:pike' + heat_engine_cleaner: 'docker.io/openstackhelm/heat:pike' + horizon: 'docker.io/openstackhelm/horizon:pike' + horizon_db_sync: 'docker.io/openstackhelm/horizon:pike' + ironic_api: 'docker.io/openstackhelm/ironic:pike' + ironic_bootstrap: 'docker.io/openstackhelm/ironic:pike' + ironic_conductor: 'docker.io/openstackhelm/ironic:pike' + ironic_db_sync: 'docker.io/openstackhelm/ironic:pike' + ironic_pxe: 'docker.io/openstackhelm/ironic:pike' + ironic_pxe_init: 'docker.io/openstackhelm/ironic:pike' + keystone_api: 'docker.io/openstackhelm/keystone:pike' + keystone_bootstrap: 'docker.io/openstackhelm/heat:pike' + keystone_credential_rotate: 'docker.io/openstackhelm/keystone:pike' + keystone_credential_setup: 'docker.io/openstackhelm/keystone:pike' + keystone_db_sync: 'docker.io/openstackhelm/keystone:pike' + keystone_domain_manage: 'docker.io/openstackhelm/keystone:pike' + keystone_fernet_rotate: 'docker.io/openstackhelm/keystone:pike' + keystone_fernet_setup: 'docker.io/openstackhelm/keystone:pike' + ks_endpoints: 'docker.io/openstackhelm/heat:pike' + ks_service: 'docker.io/openstackhelm/heat:pike' + ks_user: 'docker.io/openstackhelm/heat:pike' + magnum_api: 'docker.io/openstackhelm/magnum:pike' + magnum_conductor: 'docker.io/openstackhelm/magnum:pike' + magnum_db_sync: 'docker.io/openstackhelm/magnum:pike' + neutron_db_sync: 'docker.io/openstackhelm/neutron:pike' + neutron_dhcp: 'docker.io/openstackhelm/neutron:pike' + neutron_l3: 'docker.io/openstackhelm/neutron:pike' + neutron_linuxbridge_agent: 'docker.io/openstackhelm/neutron:pike' + neutron_metadata: 'docker.io/openstackhelm/neutron:pike' + neutron_openvswitch_agent: 'docker.io/openstackhelm/neutron:pike' + neutron_server: 'docker.io/openstackhelm/neutron:pike' + neutron_sriov_agent: 'docker.io/openstackhelm/neutron:pike-sriov-1804' + neutron_sriov_agent_init: 'docker.io/openstackhelm/neutron:pike-sriov-1804' + nova_api: 'docker.io/openstackhelm/nova:pike' + nova_cell_setup: 'docker.io/openstackhelm/nova:pike' + nova_compute: 'docker.io/openstackhelm/nova:pike' + nova_compute_ironic: 'docker.io/kolla/ubuntu-source-nova-compute-ironic:pike' + nova_compute_ssh: 'docker.io/openstackhelm/nova:pike' + nova_conductor: 'docker.io/openstackhelm/nova:pike' + nova_consoleauth: 'docker.io/openstackhelm/nova:pike' + nova_db_sync: 'docker.io/openstackhelm/nova:pike' + nova_novncproxy: 'docker.io/kolla/ubuntu-source-nova-novncproxy:pike' + nova_novncproxy_assets: 'docker.io/kolla/ubuntu-source-nova-novncproxy:pike' + nova_placement: 'docker.io/openstackhelm/nova:pike' + nova_scheduler: 'docker.io/openstackhelm/nova:pike' + nova_spiceproxy: 'docker.io/kolla/ubuntu-source-nova-spicehtml5proxy:pike' + nova_spiceproxy_assets: 'docker.io/kolla/ubuntu-source-nova-spicehtml5proxy:pike' + scripted_test: 'docker.io/openstackhelm/heat:pike' + senlin_api: 'docker.io/openstackhelm/senlin:pike' + senlin_db_sync: 'docker.io/openstackhelm/senlin:pike' + senlin_engine: 'docker.io/openstackhelm/senlin:pike' + tempest: 'docker.io/kolla/ubuntu-source-tempest:pike' + test: 'docker.io/kolla/ubuntu-source-rally:pike'