aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-07-04 15:51:45 +0000
committerGerrit Code Review <review@openstack.org>2018-07-04 15:51:45 +0000
commitfd3f54faedcfa4069eccf93e3933d28e6d683a7f (patch)
tree06306b60139d59febc3dbf7f8e01e9651b795884 /tools
parent17cc67816f335c6b3805c62a44c99a491f5a7cc4 (diff)
parent45a4f9c07589c9aa2e08fa342a57561eec21d137 (diff)
downloadkolla-ansible-fd3f54faedcfa4069eccf93e3933d28e6d683a7f.tar.gz
kolla-ansible-fd3f54faedcfa4069eccf93e3933d28e6d683a7f.zip
Merge "Add a job for testing deployment of bifrost"
Diffstat (limited to 'tools')
-rwxr-xr-xtools/setup_gate.sh107
1 files changed, 77 insertions, 30 deletions
diff --git a/tools/setup_gate.sh b/tools/setup_gate.sh
index fdfc29ff2..acb4682ab 100755
--- a/tools/setup_gate.sh
+++ b/tools/setup_gate.sh
@@ -34,12 +34,15 @@ EOF
echo "RUN echo $(base64 -w0 ${PIP_CONF}) | base64 -d > /etc/pip.conf" | sudo tee /etc/kolla/header
rm ${PIP_CONF}
-GATE_IMAGES="cron,fluentd,glance,haproxy,keepalived,keystone,kolla-toolbox,mariadb,memcached,neutron,nova,openvswitch,rabbitmq,horizon"
+ if [[ $ACTION != "bifrost" ]]; then
+ GATE_IMAGES="cron,fluentd,glance,haproxy,keepalived,keystone,kolla-toolbox,mariadb,memcached,neutron,nova,openvswitch,rabbitmq,horizon"
+ else
+ GATE_IMAGES="bifrost"
+ fi
-# TODO(jeffrey4l): this doesn't work with zuulv3
-if echo $ACTION | grep -q "ceph"; then
-GATE_IMAGES+=",ceph,cinder"
-fi
+ if [[ $ACTION == "ceph" ]]; then
+ GATE_IMAGES+=",ceph,cinder"
+ fi
cat <<EOF | sudo tee /etc/kolla/kolla-build.conf
[DEFAULT]
@@ -134,6 +137,70 @@ function sanity_check {
fi
}
+function test_openstack {
+ # Create dummy interface for neutron
+ ansible -m shell -i ${RAW_INVENTORY} -a "ip l a fake_interface type dummy" all
+
+ #TODO(inc0): Post-deploy complains that /etc/kolla is not writable. Probably we need to include become there
+ sudo chmod -R 777 /etc/kolla
+ # Actually do the deployment
+ tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks > /tmp/logs/ansible/prechecks1
+ # TODO(jeffrey4l): add pull action when we have a local registry
+ # service in CI
+ tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy > /tmp/logs/ansible/deploy
+ tools/kolla-ansible -i ${RAW_INVENTORY} -vvv post-deploy > /tmp/logs/ansible/post-deploy
+
+ # Test OpenStack Environment
+ # TODO: use kolla-ansible check when it's ready
+
+ sanity_check
+
+ # TODO(jeffrey4l): make some configure file change and
+ # trigger a real reconfigure
+ tools/kolla-ansible -i ${RAW_INVENTORY} -vvv reconfigure > /tmp/logs/ansible/post-deploy
+ # TODO(jeffrey4l): need run a real upgrade
+ tools/kolla-ansible -i ${RAW_INVENTORY} -vvv upgrade > /tmp/logs/ansible/upgrade
+
+ # run prechecks again
+ tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks > /tmp/logs/ansible/prechecks2
+}
+
+function sanity_check_bifrost {
+ # TODO(mgoddard): More testing, deploy bare metal nodes.
+ # TODO(mgoddard): Use openstackclient when clouds.yaml works. See
+ # https://bugs.launchpad.net/bifrost/+bug/1754070.
+ attempts=0
+ while [[ $(sudo docker exec bifrost_deploy bash -c "source env-vars && ironic driver-list" | wc -l) -le 4 ]]; do
+ attempts=$((attempts + 1))
+ if [[ $attempts -gt 6 ]]; then
+ echo "Timed out waiting for ironic conductor to become active"
+ exit 1
+ fi
+ sleep 10
+ done
+ sudo docker exec bifrost_deploy bash -c "source env-vars && ironic node-list"
+ sudo docker exec bifrost_deploy bash -c "source env-vars && ironic node-create --driver ipmi --name test-node"
+ sudo docker exec bifrost_deploy bash -c "source env-vars && ironic node-delete test-node"
+}
+
+function test_bifrost {
+ # TODO(mgoddard): run prechecks.
+
+ # Deploy the bifrost container.
+ # TODO(mgoddard): add pull action when we have a local registry service in
+ # CI.
+ tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy-bifrost > /tmp/logs/ansible/deploy-bifrost
+
+ # Test Bifrost Environment
+ sanity_check_bifrost
+
+ # TODO(mgoddard): make some configuration file changes and trigger a real
+ # reconfigure.
+ tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy-bifrost > /tmp/logs/ansible/deploy-bifrost2
+
+ # TODO(mgoddard): perform an upgrade.
+}
+
check_failure() {
# All docker container's status are created, restarting, running, removing,
# paused, exited and dead. Containers without running status are treated as
@@ -160,30 +227,10 @@ setup_node
tools/kolla-ansible -i ${RAW_INVENTORY} bootstrap-servers > /tmp/logs/ansible/bootstrap-servers
prepare_images
-# Create dummy interface for neutron
-ansible -m shell -i ${RAW_INVENTORY} -a "ip l a fake_interface type dummy" all
-
-#TODO(inc0): Post-deploy complains that /etc/kolla is not writable. Probably we need to include become there
-sudo chmod -R 777 /etc/kolla
-# Actually do the deployment
-tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks > /tmp/logs/ansible/prechecks1
-# TODO(jeffrey4l): add pull action when we have a local registry
-# service in CI
-tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy > /tmp/logs/ansible/deploy
-tools/kolla-ansible -i ${RAW_INVENTORY} -vvv post-deploy > /tmp/logs/ansible/post-deploy
-
-# Test OpenStack Environment
-# TODO: use kolla-ansible check when it's ready
-
-sanity_check
-
-# TODO(jeffrey4l): make some configure file change and
-# trigger a real reconfigure
-tools/kolla-ansible -i ${RAW_INVENTORY} -vvv reconfigure > /tmp/logs/ansible/post-deploy
-# TODO(jeffrey4l): need run a real upgrade
-tools/kolla-ansible -i ${RAW_INVENTORY} -vvv upgrade > /tmp/logs/ansible/upgrade
-
-# run prechecks again
-tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks > /tmp/logs/ansible/prechecks2
+if [[ $ACTION != bifrost ]]; then
+ test_openstack
+else
+ test_bifrost
+fi
check_failure