
The motivation behind is to have a consistent openstack-client image related to a release or with some changes being tested. Loci builds so called `requirements` image that contains a consistent set of packages related to a particular release or from unreleased changes (for testing). Then we install these packages from the `requirements` image to all other images to have a consistent set of images. Change-Id: Ie8dac9fed8b09f5b6f2530c22ef9445d5c5cd462
337 lines
12 KiB
YAML
337 lines
12 KiB
YAML
currentdate: "{{ now(utc=True,fmt='%Y%m%d') }}"
|
|
local_registry: "172.17.0.1:5000"
|
|
local_registry_image: "quay.io/airshipit/registry:2"
|
|
image_registries:
|
|
- host: "quay.io"
|
|
org: "airshipit"
|
|
container_command: docker
|
|
|
|
base_image:
|
|
context: "."
|
|
dockerfile: "dockerfiles/ubuntu/Dockerfile"
|
|
container_filename: "dockerfiles/ubuntu/Dockerfile"
|
|
repository: "base"
|
|
tags: &tags
|
|
- "{{ image_tag }}"
|
|
- "{{ image_tag }}-{{ currentdate }}"
|
|
build_args:
|
|
- "FROM='{{ distro_image }}'"
|
|
- "CEPH_REPO='{{ ceph_repo }}'"
|
|
- "CEPH_KEY='http://download.ceph.com/keys/release.asc'"
|
|
|
|
requirements_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/requirements"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='requirements'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
barbican_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/barbican"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='barbican'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='fluent'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
- "DIST_PACKAGES='python3-dev gcc'"
|
|
- "PIP_ARGS='--only-binary :none:'"
|
|
|
|
cinder_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/cinder"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='cinder'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='fluent lvm ceph qemu apache'"
|
|
- "PIP_PACKAGES='python-swiftclient'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
cyborg_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/cyborg"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='cyborg'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "DIST_PACKAGES='pciutils'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
designate_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/designate"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='designate'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='fluent'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
glance_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/glance"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='glance'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='fluent ceph qemu-utils'"
|
|
- "PIP_PACKAGES='python-swiftclient os-brick python-cinderclient oslo-rootwrap'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
heat_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/heat"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='heat'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='fluent apache'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
- "DIST_PACKAGES='curl'"
|
|
|
|
horizon_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/horizon"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='horizon'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='fluent apache'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
- "PIP_PACKAGES='pymemcache'"
|
|
|
|
ironic_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/ironic"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='ironic'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='fluent ipxe ipmi qemu tftp'"
|
|
- "DIST_PACKAGES='ethtool lshw iproute2'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
keystone_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/keystone"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='keystone'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='fluent apache ldap {{ openstack_release }}'"
|
|
- "PIP_PACKAGES='python-openstackclient'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
manila_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/manila"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='manila'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
monasca_api_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/monasca-api"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='monasca-api'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='monasca api'"
|
|
- "PIP_PACKAGES='influxdb cassandra-driver sqlalchemy'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
neutron_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/neutron"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='neutron'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='fluent linuxbridge openvswitch apache vpn baremetal'"
|
|
- "PIP_PACKAGES='tap-as-a-service'"
|
|
- "DIST_PACKAGES='jq ethtool lshw'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
nova_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/nova"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='nova'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='fluent ceph linuxbridge openvswitch configdrive qemu apache migration'"
|
|
- "DIST_PACKAGES='net-tools openssh-server'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
octavia_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/octavia"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='octavia'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
openstack_client_pip_packages:
|
|
- cmd2
|
|
- python-barbicanclient
|
|
- python-blazarclient
|
|
- python-cinderclient
|
|
- python-designateclient
|
|
- python-glanceclient
|
|
- python-heatclient
|
|
- python-ironicclient
|
|
- python-keystoneclient
|
|
- python-magnumclient
|
|
- python-manilaclient
|
|
- python-mistralclient
|
|
- python-monascaclient
|
|
- python-neutronclient
|
|
- python-novaclient
|
|
- python-octaviaclient
|
|
- python-swiftclient
|
|
- python-tackerclient
|
|
- python-troveclient
|
|
- python-vitrageclient
|
|
- python-watcherclient
|
|
- python-zaqarclient
|
|
- python-zunclient
|
|
openstack_client_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/openstack-client"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='python-openstackclient'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
- "PIP_PACKAGES='{{ openstack_client_pip_packages | join(' ') }}'"
|
|
|
|
placement_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/placement"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='placement'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "PROFILES='apache'"
|
|
- "PIP_PACKAGES='httplib2'"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
tacker_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/tacker"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='tacker'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|
|
|
|
watcher_image:
|
|
context: "."
|
|
dockerfile: "Dockerfile"
|
|
container_filename: "Dockerfile"
|
|
registry: "{{ image_registry.host }}"
|
|
repository: "{{ image_registry.host }}/{{ image_registry.org }}/watcher"
|
|
tags: *tags
|
|
build_args:
|
|
- "FROM='base:{{ image_tag }}'"
|
|
- "PROJECT='watcher'"
|
|
- "PROJECT_REF={{ openstack_release }}"
|
|
- "WHEELS='{{ local_registry }}/{{ image_registries[0].host }}/{{ image_registries[0].org }}/requirements:{{ image_tag }}'"
|
|
- "KEEP_ALL_WHEELS=yes"
|