diff --git a/tests/test-zun.sh b/tests/test-zun.sh
index 909acb6afd8682a8452410611a713fbdf673dff0..cca4df4e315e28450b818deac81f573e6ec77c47 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 30c10c332302d37d1b3f47dc14105fd8708f1f8f..ac07c5a7246e431d0fa2208592c4bf5e69b720c0 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.
-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 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 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 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
+    $KOLLA_OPENSTACK_COMMAND router set --external-gateway public1 demo-router
 fi
 
 # Get admin user and tenant IDs