magnum/playbooks/magnum-buildimages-base.yaml

103 lines
3.9 KiB
YAML

- hosts: primary
tasks:
- shell:
cmd: |
set -u
set -e
set -x
cd ~
if [[ "{{ image_name }}" =~ ^(ubuntu-mesos|centos-dcos)$ ]]; then
EXTRA_PROJECTS="openstack/tripleo-image-elements openstack/heat-templates"
else
EXTRA_PROJECTS=""
fi
/usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
https://opendev.org \
openstack/diskimage-builder \
openstack/dib-utils \
openstack/magnum $EXTRA_PROJECTS
virtualenv env
./env/bin/pip install $(pwd)/openstack/dib-utils
./env/bin/pip install $(pwd)/openstack/diskimage-builder
# TODO(pabelanger): Remove once we migrated to bindep
./openstack/diskimage-builder/tests/install_test_deps.sh
# activate the virtualenv so that any tools run by dib run
# using the python inside it
set +u
source ./env/bin/activate
set -u
DIB_ELEMENTS=./openstack/diskimage-builder/diskimage_builder/elements
if [ "{{ image_name }}" == "ubuntu-mesos" ]; then
TRIPLEO_ELEMENTS=./openstack/tripleo-image-elements/elements
HEAT_ELEMENTS=./openstack/heat-templates/hot/software-config/elements
MESOS_ELEMENTS=./openstack/magnum/magnum/drivers/mesos_ubuntu_v1/image
export ELEMENTS_PATH=$TRIPLEO_ELEMENTS:$HEAT_ELEMENTS:$MESOS_ELEMENTS
$MESOS_ELEMENTS/install_imagebuild_deps.sh
export DIB_RELEASE=trusty
export DIB_IMAGE_SIZE=2.2
disk-image-create ubuntu vm docker mesos \
os-collect-config os-refresh-config os-apply-config \
heat-config heat-config-script -o $WORKSPACE/{{ image_name }}.qcow2
$MESOS_ELEMENTS/validate_image.sh $WORKSPACE/{{ image_name }}.qcow2
elif [ "{{ image_name }}" == "centos-dcos" ]; then
DCOS_ELEMENTS=./openstack/magnum/contrib/drivers/dcos_centos_v1/image
TRIPLEO_ELEMENTS=./openstack/tripleo-image-elements/elements
HEAT_ELEMENTS=./openstack/heat-templates/hot/software-config/elements
# Order matters, we need the docker elements from DCOS_ELEMENTS to be used first
export ELEMENTS_PATH=$DCOS_ELEMENTS:$DIB_ELEMENTS:$TRIPLEO_ELEMENTS:$HEAT_ELEMENTS
$DCOS_ELEMENTS/install_imagebuild_deps.sh
export DIB_IMAGE_SIZE=3.0
export FS_TYPE=xfs
curl -O https://downloads.dcos.io/dcos/stable/commit/e64024af95b62c632c90b9063ed06296fcf38ea5/dcos_generate_config.sh
export DCOS_GENERATE_CONFIG_SRC=`pwd`/dcos_generate_config.sh
disk-image-create \
centos7 vm docker dcos selinux-permissive \
os-collect-config os-refresh-config os-apply-config \
heat-config heat-config-script \
-o $WORKSPACE/{{ image_name }}.qcow2
#TODO: Add size validation
else
MAGNUM_ELEMENTS=./openstack/magnum/magnum/drivers/common/image
export ELEMENTS_PATH=$DIB_ELEMENTS:$MAGNUM_ELEMENTS
$MAGNUM_ELEMENTS/fedora-atomic/install_imagebuild_deps.sh
export DIB_RELEASE="25"
export DIB_IMAGE_SIZE=2.5
export FEDORA_ATOMIC_TREE_URL="https://kojipkgs.fedoraproject.org/atomic/25/"
export FEDORA_ATOMIC_TREE_REF="8b15e9b988b4b02f4cb8b39bdd63d182ab7004a8926ecdac6314ee5c7ffa646b"
disk-image-create -x -o $WORKSPACE/{{ image_name }}-dib fedora-atomic
# validate image
$MAGNUM_ELEMENTS/fedora-atomic/validate_atomic_image.sh $WORKSPACE/{{ image_name }}-dib.qcow2
fi
set +u
deactivate
set -u
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'