From 7a3072e94c76aa2ca28c20c3a77e34a022948efd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Piliszek?= Date: Tue, 25 Aug 2020 16:17:17 +0200 Subject: [PATCH] [CI] Ensure network is set for Zun If we don't set it, then Zun chooses one randomly (the first one from Neutron). This may break if it is a network that is not available on target hosts, e.g. external via L3 agent router. Since capsules do not support nets yet [1], this patch ensures desired network creation order in init-runonce instead. [1] https://bugs.launchpad.net/zun/+bug/1895263 Change-Id: Iaa113dcfb826164a2772d2c91d34ec0236be0817 --- tests/test-zun.sh | 10 ++++++++-- tools/init-runonce | 19 +++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/tests/test-zun.sh b/tests/test-zun.sh index 909acb6afd..cca4df4e31 100755 --- a/tests/test-zun.sh +++ b/tests/test-zun.sh @@ -15,7 +15,7 @@ function test_zun_logged { openstack subnet set --no-dhcp demo-subnet sudo docker pull alpine sudo docker save alpine | openstack image create alpine --public --container-format docker --disk-format raw - openstack appcontainer run --name test alpine sleep 1000 + openstack appcontainer run --net network=demo-net --name test alpine sleep 1000 attempt=1 while [[ $(openstack appcontainer show test -f value -c status) != "Running" ]]; do echo "Container not running yet" @@ -61,7 +61,7 @@ function test_zun_logged { fi sleep 10 done - openstack appcontainer run --name test2 --mount source=zun_test_volume,destination=/data alpine sleep 1000 + openstack appcontainer run --net network=demo-net --name test2 --mount source=zun_test_volume,destination=/data alpine sleep 1000 attempt=1 while [[ $(openstack volume show zun_test_volume -f value -c status) != "in-use" ]]; do echo "Volume not attached yet" @@ -105,6 +105,12 @@ capsuleVersion: beta kind: capsule metadata: name: capsule-test +# NOTE(yoctozepto): Capsules do not support nets in Ussuri. +# See https://bugs.launchpad.net/zun/+bug/1895263 +# The choice for CI is worked around by ensuring the networks are created +# in the desired order in init-runonce. +#nets: +# - network: demo-net spec: containers: - image: alpine diff --git a/tools/init-runonce b/tools/init-runonce index 30c10c3323..ac07c5a724 100755 --- a/tools/init-runonce +++ b/tools/init-runonce @@ -77,22 +77,21 @@ $KOLLA_OPENSTACK_COMMAND image create --disk-format qcow2 --container-format bar --property os_type=${IMAGE_TYPE} --file ${IMAGE_PATH}/${IMAGE} ${IMAGE_NAME} echo Configuring neutron. + +$KOLLA_OPENSTACK_COMMAND router create demo-router + +$KOLLA_OPENSTACK_COMMAND network create demo-net +$KOLLA_OPENSTACK_COMMAND subnet create --subnet-range 10.0.0.0/24 --network demo-net \ + --gateway 10.0.0.1 --dns-nameserver 8.8.8.8 demo-subnet +$KOLLA_OPENSTACK_COMMAND router add subnet demo-router demo-subnet + if [[ $ENABLE_EXT_NET -eq 1 ]]; then $KOLLA_OPENSTACK_COMMAND network create --external --provider-physical-network physnet1 \ --provider-network-type flat public1 $KOLLA_OPENSTACK_COMMAND subnet create --no-dhcp \ --allocation-pool ${EXT_NET_RANGE} --network public1 \ --subnet-range ${EXT_NET_CIDR} --gateway ${EXT_NET_GATEWAY} public1-subnet -fi - -$KOLLA_OPENSTACK_COMMAND network create demo-net -$KOLLA_OPENSTACK_COMMAND subnet create --subnet-range 10.0.0.0/24 --network demo-net \ - --gateway 10.0.0.1 --dns-nameserver 8.8.8.8 demo-subnet - -$KOLLA_OPENSTACK_COMMAND router create demo-router -$KOLLA_OPENSTACK_COMMAND router add subnet demo-router demo-subnet -if [[ $ENABLE_EXT_NET -eq 1 ]]; then - $KOLLA_OPENSTACK_COMMAND router set --external-gateway public1 demo-router + $KOLLA_OPENSTACK_COMMAND router set --external-gateway public1 demo-router fi # Get admin user and tenant IDs