Add integration apply test
Make module installation conditional in install_modules.sh so that we can specify that we _do not_ want it to install the modules that will be participating in the integration test. Add a variant of the apply test script (currently test.sh) that uses zuul-cloner to check out the appropriate versions of modules that are participating in the integration test. Add jobs that run this to the experimental pipeline. Change-Id: I16055cdd45f6e05aa8ebceb500c5709f265268df
This commit is contained in:
parent
dfec8e3444
commit
9d23185ac5
@ -59,7 +59,11 @@ MODULES["puppetlabs-rabbitmq"]="4.0.0"
|
|||||||
# Source modules should use tags, explicit refs or remote branches because
|
# Source modules should use tags, explicit refs or remote branches because
|
||||||
# we do not update local branches in this script.
|
# we do not update local branches in this script.
|
||||||
SOURCE_MODULES["https://github.com/nibalizer/puppet-module-puppetboard"]="2.4.0"
|
SOURCE_MODULES["https://github.com/nibalizer/puppet-module-puppetboard"]="2.4.0"
|
||||||
SOURCE_MODULES["https://git.openstack.org/openstack-infra/puppet-storyboard"]="origin/master"
|
|
||||||
|
# Add modules that should be part of the openstack-infra integration test here
|
||||||
|
if [[ "$PUPPET_INTEGRATION_TEST" -ne "1" ]]; then
|
||||||
|
SOURCE_MODULES["https://git.openstack.org/openstack-infra/puppet-storyboard"]="origin/master"
|
||||||
|
fi
|
||||||
|
|
||||||
MODULE_LIST=`puppet module list`
|
MODULE_LIST=`puppet module list`
|
||||||
|
|
||||||
|
@ -113,3 +113,21 @@
|
|||||||
|
|
||||||
publishers:
|
publishers:
|
||||||
- console-log
|
- console-log
|
||||||
|
|
||||||
|
- builder:
|
||||||
|
name: infra-puppet-apply
|
||||||
|
builders:
|
||||||
|
|
||||||
|
- job-template:
|
||||||
|
name: 'gate-infra-puppet-apply-{ostype}'
|
||||||
|
node: 'bare-{ostype}'
|
||||||
|
|
||||||
|
builders:
|
||||||
|
- shell: |
|
||||||
|
#!/bin/bash -xe
|
||||||
|
/usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git git://git.openstack.org openstack-infra/config
|
||||||
|
cd openstack-infra/config
|
||||||
|
./tools/apply-test.sh
|
||||||
|
|
||||||
|
publishers:
|
||||||
|
- console-log
|
||||||
|
@ -277,6 +277,11 @@
|
|||||||
- gate-{name}-pep8
|
- gate-{name}-pep8
|
||||||
- gate-{name}-bashate
|
- gate-{name}-bashate
|
||||||
- experimental-swift-logs-{name}-pep8
|
- experimental-swift-logs-{name}-pep8
|
||||||
|
- gate-infra-puppet-apply-{ostype}:
|
||||||
|
ostype:
|
||||||
|
- precise
|
||||||
|
- trusty
|
||||||
|
- centos6
|
||||||
|
|
||||||
- project:
|
- project:
|
||||||
name: gitdm
|
name: gitdm
|
||||||
|
@ -2935,6 +2935,8 @@ projects:
|
|||||||
- ci-docs
|
- ci-docs
|
||||||
experimental:
|
experimental:
|
||||||
- experimental-swift-logs-config-pep8
|
- experimental-swift-logs-config-pep8
|
||||||
|
- gate-infra-puppet-apply-precise
|
||||||
|
- gate-infra-puppet-apply-centos6
|
||||||
|
|
||||||
- name: openstack-infra/devstack-gate
|
- name: openstack-infra/devstack-gate
|
||||||
template:
|
template:
|
||||||
|
72
tools/apply-test.sh
Executable file
72
tools/apply-test.sh
Executable file
@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
# Copyright 2014 Hewlett-Packard Development Company, L.P.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
ROOT=$(readlink -fn $(dirname $0)/..)
|
||||||
|
MODULE_PATH="${ROOT}/modules:/etc/puppet/modules"
|
||||||
|
|
||||||
|
export PUPPET_INTEGRATION_TEST=1
|
||||||
|
|
||||||
|
cat > clonemap.yaml <<EOF
|
||||||
|
clonemap:
|
||||||
|
- name: '(.*?)/(.*)'
|
||||||
|
dest: '/etc/puppet/modules/\2'
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Add puppet modules that should be installed to the end of this list
|
||||||
|
sudo /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
|
||||||
|
git://git.openstack.org \
|
||||||
|
openstack-infra/puppet-storyboard
|
||||||
|
|
||||||
|
if [[ ! -d applytest ]] ; then
|
||||||
|
mkdir applytest
|
||||||
|
fi
|
||||||
|
|
||||||
|
csplit -sf applytest/puppetapplytest manifests/site.pp '/^$/' {*}
|
||||||
|
sed -i -e 's/^[^][:space:]$]/#&/g' applytest/puppetapplytest*
|
||||||
|
sed -i -e 's@hiera(.\([^.]*\).,\([^)]*\))@\2@' applytest/puppetapplytest*
|
||||||
|
mv applytest/*00 applytest/head # These are the top-level variables defined in site.pp
|
||||||
|
|
||||||
|
if [[ `lsb_release -i -s` == 'CentOS' ]]; then
|
||||||
|
if [[ `lsb_release -r -s` =~ '6' ]]; then
|
||||||
|
CODENAME='centos6'
|
||||||
|
fi
|
||||||
|
elif [[ `lsb_release -i -s` == 'Ubuntu' ]]; then
|
||||||
|
CODENAME=`lsb_release -c -s`
|
||||||
|
fi
|
||||||
|
|
||||||
|
FOUND=0
|
||||||
|
for f in `find applytest -name 'puppetapplytest*' -print` ; do
|
||||||
|
if grep -q "Node-OS: $CODENAME" $f; then
|
||||||
|
cat applytest/head $f > $f.final
|
||||||
|
FOUND=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $FOUND == "0" ]]; then
|
||||||
|
echo "No hosts found for node type $CODENAME"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
grep -v 127.0.1.1 /etc/hosts >/tmp/hosts
|
||||||
|
HOST=`echo $HOSTNAME |awk -F. '{ print $1 }'`
|
||||||
|
echo "127.0.1.1 $HOST.openstack.org $HOST" >> /tmp/hosts
|
||||||
|
sudo mv /tmp/hosts /etc/hosts
|
||||||
|
|
||||||
|
sudo mkdir -p /var/run/puppet
|
||||||
|
sudo -E bash -x ./install_modules.sh
|
||||||
|
find applytest -name 'puppetapplytest*.final' -print0 | \
|
||||||
|
xargs -0 -P $(nproc) -n 1 -I filearg \
|
||||||
|
sudo puppet apply --modulepath=${MODULE_PATH} --noop --verbose --debug filearg > /dev/null
|
Loading…
x
Reference in New Issue
Block a user