Expose the ability to build all infra diskimages

Add the ability for different jobs to control which images we build in
our dsvm job.  This is needed so we can allow diskimage-builder more
control of which images to build.

Remove hardcoded apt-get for installing openssh-server, we can now use
the openssh-server element from diskimage-builder (which supports more
operating systems).

Change-Id: Ib6f48648e9ada8fd626a1811cdce262df0768c08
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
Paul Belanger
2016-12-16 12:46:37 -05:00
parent 106734c24b
commit 9258a24051
4 changed files with 170 additions and 11 deletions

View File

@@ -1,4 +1,5 @@
qemu-utils
kpartx
debootstrap
yum-utils
zookeeperd

View File

@@ -92,7 +92,6 @@ EOF
sudo mkdir -p $(dirname $NODEPOOL_CONFIG)/elements/nodepool-setup/install.d
cat > /tmp/01-nodepool-setup <<EOF
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y openssh-server
sudo mkdir -p /etc/nodepool
# Make it world writeable so nodepool can write here later.
sudo chmod 777 /etc/nodepool
@@ -168,6 +167,9 @@ dburi: $dburi
EOF
sudo mv /tmp/secure.conf $NODEPOOL_SECURE
if [ -f $NODEPOOL_CACHE_GET_PIP ] ; then
DIB_GET_PIP="DIB_REPOLOCATION_pip_and_virtualenv: file://$NODEPOOL_CACHE_GET_PIP"
fi
cat > /tmp/nodepool.yaml <<EOF
# You will need to make and populate these two paths as necessary,
# cloning nodepool does not do this. Further in this doc we have an
@@ -200,11 +202,31 @@ cron:
check: '*/15 * * * *'
labels:
- name: centos-7
image: centos-7
min-ready: 1
providers:
- name: devstack
- name: fedora-24
image: fedora-24
min-ready: 1
providers:
- name: devstack
- name: ubuntu-precise
image: ubuntu-precise
min-ready: 1
providers:
- name: devstack
- name: ubuntu-trusty
image: ubuntu-trusty
min-ready: 1
providers:
- name: devstack
- name: ubuntu-xenial
image: ubuntu-xenial
min-ready: 1
providers:
- name: devstack
providers:
- name: devstack
@@ -217,20 +239,94 @@ providers:
max-servers: 2
rate: 0.25
images:
- name: centos-7
min-ram: 1024
username: devuser
private-key: $NODEPOOL_KEY
config-drive: true
- name: fedora-24
min-ram: 1024
username: devuser
private-key: $NODEPOOL_KEY
config-drive: true
- name: ubuntu-precise
min-ram: 1024
username: devuser
private-key: $NODEPOOL_KEY
config-drive: true
- name: ubuntu-trusty
min-ram: 1024
username: devuser
private-key: $NODEPOOL_KEY
config-drive: true
- name: ubuntu-xenial
min-ram: 1024
username: devuser
private-key: $NODEPOOL_KEY
config-drive: true
diskimages:
- name: ubuntu-trusty
- name: centos-7
pause: $NODEPOOL_PAUSE_CENTOS_7_DIB
rebuild-age: 86400
elements:
- centos-minimal
- vm
- simple-init
- devuser
- openssh-server
- nodepool-setup
env-vars:
TMPDIR: $NODEPOOL_DIB_BASE_PATH/tmp
DIB_CHECKSUM: '1'
DIB_IMAGE_CACHE: $NODEPOOL_DIB_BASE_PATH/cache
DIB_DEV_USER_AUTHORIZED_KEYS: $NODEPOOL_PUBKEY
$DIB_GET_PIP
- name: fedora-24
pause: $NODEPOOL_PAUSE_FEDORA_24_DIB
rebuild-age: 86400
elements:
- fedora-minimal
- vm
- simple-init
- devuser
- openssh-server
- nodepool-setup
release: 24
env-vars:
TMPDIR: $NODEPOOL_DIB_BASE_PATH/tmp
DIB_CHECKSUM: '1'
DIB_IMAGE_CACHE: $NODEPOOL_DIB_BASE_PATH/cache
DIB_DEV_USER_AUTHORIZED_KEYS: $NODEPOOL_PUBKEY
$DIB_GET_PIP
- name: ubuntu-precise
pause: $NODEPOOL_PAUSE_UBUNTU_PRECISE_DIB
rebuild-age: 86400
elements:
- ubuntu-minimal
- vm
- simple-init
- devuser
- openssh-server
- nodepool-setup
release: precise
env-vars:
TMPDIR: $NODEPOOL_DIB_BASE_PATH/tmp
DIB_CHECKSUM: '1'
DIB_IMAGE_CACHE: $NODEPOOL_DIB_BASE_PATH/cache
DIB_APT_LOCAL_CACHE: '0'
DIB_DISABLE_APT_CLEANUP: '1'
DIB_DEV_USER_AUTHORIZED_KEYS: $NODEPOOL_PUBKEY
$DIB_GET_PIP
- name: ubuntu-trusty
pause: $NODEPOOL_PAUSE_UBUNTU_TRUSTY_DIB
rebuild-age: 86400
elements:
- ubuntu-minimal
- vm
- simple-init
- devuser
- openssh-server
- nodepool-setup
release: trusty
env-vars:
@@ -240,12 +336,27 @@ diskimages:
DIB_APT_LOCAL_CACHE: '0'
DIB_DISABLE_APT_CLEANUP: '1'
DIB_DEV_USER_AUTHORIZED_KEYS: $NODEPOOL_PUBKEY
$DIB_GET_PIP
- name: ubuntu-xenial
pause: $NODEPOOL_PAUSE_UBUNTU_XENIAL_DIB
rebuild-age: 86400
elements:
- ubuntu-minimal
- vm
- simple-init
- devuser
- openssh-server
- nodepool-setup
release: xenial
env-vars:
TMPDIR: $NODEPOOL_DIB_BASE_PATH/tmp
DIB_CHECKSUM: '1'
DIB_IMAGE_CACHE: $NODEPOOL_DIB_BASE_PATH/cache
DIB_APT_LOCAL_CACHE: '0'
DIB_DISABLE_APT_CLEANUP: '1'
DIB_DEV_USER_AUTHORIZED_KEYS: $NODEPOOL_PUBKEY
$DIB_GET_PIP
EOF
if [ -f $NODEPOOL_CACHE_GET_PIP ] ; then
cat >> /tmp/nodepool.yaml <<EOF
DIB_REPOLOCATION_pip_and_virtualenv: file://$NODEPOOL_CACHE_GET_PIP
EOF
fi
sudo mv /tmp/nodepool.yaml $NODEPOOL_CONFIG
cp /etc/openstack/clouds.yaml /tmp

View File

@@ -3,6 +3,15 @@ NODEPOOL_LOGGING=/etc/nodepool/logging.conf
NODEPOOL_SECURE=/etc/nodepool/secure.conf
NODEPOOL_DIB_BASE_PATH=/opt/dib
# Flags to control which images we build.
# NOTE(pabelanger): Be sure to also update tools/check_devstack_plugin.sh if you
# change the defaults.
NODEPOOL_PAUSE_CENTOS_7_DIB=${NODEPOOL_PAUSE_CENTOS_7_DIB:-true}
NODEPOOL_PAUSE_FEDORA_24_DIB=${NODEPOOL_PAUSE_FEDORA_24_DIB:-true}
NODEPOOL_PAUSE_UBUNTU_PRECISE_DIB=${NODEPOOL_PAUSE_UBUNTU_PRECISE_DIB:-true}
NODEPOOL_PAUSE_UBUNTU_TRUSTY_DIB=${NODEPOOL_PAUSE_UBUNTU_TRUSTY_DIB:-false}
NODEPOOL_PAUSE_UBUNTU_XENIAL_DIB=${NODEPOOL_PAUSE_UBUNTU_XENIAL_DIB:-true}
SHADE_REPO_URL=${SHADE_REPO_URL:-https://git.openstack.org/openstack-infra/shade}
SHADE_REPO_REF=${SHADE_REPO_REF:-master}

View File

@@ -5,6 +5,15 @@ NODEPOOL_CONFIG=${NODEPOOL_CONFIG:-/etc/nodepool/nodepool.yaml}
NODEPOOL_SECURE=${NODEPOOL_SECURE:-/etc/nodepool/secure.conf}
NODEPOOL="$NODEPOOL_INSTALL/bin/nodepool -c $NODEPOOL_CONFIG -s $NODEPOOL_SECURE"
# Flags to control which images we build.
# NOTE(pabelanger): Be sure to also update devstack/settings if you change the
# defaults.
NODEPOOL_PAUSE_CENTOS_7_DIB=${NODEPOOL_PAUSE_CENTOS_7_DIB:-true}
NODEPOOL_PAUSE_FEDORA_24_DIB=${NODEPOOL_PAUSE_FEDORA_24_DIB:-true}
NODEPOOL_PAUSE_UBUNTU_PRECISE_DIB=${NODEPOOL_PAUSE_UBUNTU_PRECISE_DIB:-true}
NODEPOOL_PAUSE_UBUNTU_TRUSTY_DIB=${NODEPOOL_PAUSE_UBUNTU_TRUSTY_DIB:-false}
NODEPOOL_PAUSE_UBUNTU_XENIAL_DIB=${NODEPOOL_PAUSE_UBUNTU_XENIAL_DIB:-true}
function waitforimage {
name=$1
state='ready'
@@ -31,11 +40,40 @@ function waitfornode {
done
}
# check that image built
waitforimage ubuntu-trusty
if [ $NODEPOOL_PAUSE_CENTOS_7_DIB = 'false' ]; then
# check that image built
waitforimage centos-7
# check image was bootable
waitfornode centos-7
fi
# check image was bootable
waitfornode ubuntu-trusty
if [ $NODEPOOL_PAUSE_FEDORA_24_DIB = 'false' ]; then
# check that image built
waitforimage fedora-24
# check image was bootable
waitfornode fedora-24
fi
if [ $NODEPOOL_PAUSE_UBUNTU_PRECISE_DIB = 'false' ]; then
# check that image built
waitforimage ubuntu-precise
# check image was bootable
waitfornode ubuntu-precise
fi
if [ $NODEPOOL_PAUSE_UBUNTU_TRUSTY_DIB = 'false' ]; then
# check that image built
waitforimage ubuntu-trusty
# check image was bootable
waitfornode ubuntu-trusty
fi
if [ $NODEPOOL_PAUSE_UBUNTU_XENIAL = 'false' ]; then
# check that image built
waitforimage ubuntu-xenial
# check image was bootable
waitfornode ubuntu-xenial
fi
set -o errexit
# Show the built nodes