So, as we can see deployment and upgrade scripts are different. So, as experiment I made the upgrade script from deployment just sed -i -e 's/openstack\ tripleo\ deploy/openstack\ tripleo\ upgrade/' tripleo_deploy.sh
and ran it the upgrade passed, the interfaces were before and after upgrade were identical and ping test passed.
If we look at job closely it fails on https:/ /opendev. org/openstack/ openstack- ansible- os_tempest/ src/branch/ master/ tasks/tempest_ resources. yml#L283- L291
If we look at interfaces before upgrade they will be as
1: lo: <LOOPBACK, UP,LOWER_ UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 MULTICAST, UP,LOWER_ UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 ff:feef: f4eb/64 scope link MULTICAST, UP,LOWER_ UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 ff:fe25: a0f8/64 scope link MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 MULTICAST, UP,LOWER_ UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 daff:fe68: e54e/64 scope link MULTICAST, UP,LOWER_ UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 daff:fe68: e54e/64 scope link MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,
link/ether 52:54:00:ef:f4:eb brd ff:ff:ff:ff:ff:ff
inet 192.168.122.23/24 brd 192.168.122.255 scope global dynamic noprefixroute ens3
valid_lft 3147sec preferred_lft 3147sec
inet6 fe80::5054:
valid_lft forever preferred_lft forever
3: ens4: <BROADCAST,
link/ether 52:54:00:25:a0:f8 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.229/24 brd 192.168.122.255 scope global dynamic noprefixroute ens4
valid_lft 3271sec preferred_lft 3271sec
inet6 fe80::5054:
valid_lft forever preferred_lft forever
4: ovs-system: <BROADCAST,
link/ether c6:c0:26:55:35:d3 brd ff:ff:ff:ff:ff:ff
5: br-ex: <BROADCAST,
link/ether 02:85:da:68:e5:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.24.2/24 scope global br-ex
valid_lft forever preferred_lft forever
inet6 fe80::85:
valid_lft forever preferred_lft forever
6: br-ctlplane: <BROADCAST,
link/ether 02:85:da:68:e5:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.24.1/24 brd 192.168.24.255 scope global br-ctlplane
valid_lft forever preferred_lft forever
inet 192.168.24.3/32 brd 192.168.24.255 scope global br-ctlplane
valid_lft forever preferred_lft forever
inet6 fe80::85:
valid_lft forever preferred_lft forever
7: br-int: <BROADCAST,
link/ether fa:6f:46:31:8f:42 brd ff:ff:ff:ff:ff:ff
After upgrade run they will be as
: lo: <LOOPBACK, UP,LOWER_ UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 MULTICAST, UP,LOWER_ UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 ff:feef: f4eb/64 scope link MULTICAST, UP,LOWER_ UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 ff:fe25: a0f8/64 scope link MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 MULTICAST, UP,LOWER_ UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 daff:fe68: e54e/64 scope link MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 MULTICAST, UP,LOWER_ UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 daff:fe68: e54e/64 scope link
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,
link/ether 52:54:00:ef:f4:eb brd ff:ff:ff:ff:ff:ff
inet 192.168.122.23/24 brd 192.168.122.255 scope global dynamic noprefixroute ens3
valid_lft 2369sec preferred_lft 2369sec
inet6 fe80::5054:
valid_lft forever preferred_lft forever
3: ens4: <BROADCAST,
link/ether 52:54:00:25:a0:f8 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.229/24 brd 192.168.122.255 scope global dynamic noprefixroute ens4
valid_lft 2358sec preferred_lft 2358sec
inet6 fe80::5054:
valid_lft forever preferred_lft forever
4: ovs-system: <BROADCAST,
link/ether c6:c0:26:55:35:d3 brd ff:ff:ff:ff:ff:ff
5: br-ex: <BROADCAST,
link/ether 02:85:da:68:e5:4e brd ff:ff:ff:ff:ff:ff
inet6 fe80::85:
valid_lft forever preferred_lft forever
7: br-int: <BROADCAST,
link/ether fa:6f:46:31:8f:42 brd ff:ff:ff:ff:ff:ff
46: br-ctlplane: <BROADCAST,
link/ether 02:85:da:68:e5:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.24.1/24 brd 192.168.24.255 scope global br-ctlplane
valid_lft forever preferred_lft forever
inet 192.168.24.1/32 brd 192.168.24.1 scope global br-ctlplane
valid_lft forever preferred_lft forever
inet 192.168.24.3/32 brd 192.168.24.255 scope global br-ctlplane
valid_lft forever preferred_lft forever
inet6 fe80::85:
valid_lft forever preferred_lft forever
So ips on interfaces are different. So, when I made interfaces in the same way as they were before upgrade ping test passed.
If we look at deployment script it looks like
tripleo_deploy.sh
---%<---
#!/bin/bash
# This file is managed by ansible
set -xeo pipefail
export DEPLOY_ CONTROL_ VIP=192. 168.24. 3 DEPLOYMENT_ USER=zuul LOCAL_IP= 192.168. 24.1/24 OUTPUT_ DIR=/home/ zuul ROLES_FILE= /usr/share/ openstack- tripleo- heat-templates/ roles/Standalon e.yaml STACK=standalon e STANDALONE_ ROLE=Standalone TEMPLATES= /usr/share/ openstack- tripleo- heat-templates TIMEOUT_ ARG=90 -role $DEPLOY_ STANDALONE_ ROLE \ openstack- tripleo- heat-templates/ environments/ standalone/ standalone- tripleo. yaml \ containers- prepare- parameters. yaml \ standalone_ parameters. yaml \ openstack- tripleo- heat-templates/ environments/ low-memory- usage.yaml \ openstack- tripleo- heat-templates/ environments/ docker- ha.yaml \ openstack- tripleo- heat-templates/ environments/ podman. yaml \ -user $DEPLOY_ DEPLOYMENT_ USER \ virtual- ip $DEPLOY_CONTROL_VIP > /home/zuul/ standalone_ deploy. log 2>&1
export DEPLOY_
export DEPLOY_
export DEPLOY_
export DEPLOY_
export DEPLOY_
export DEPLOY_
export DEPLOY_
export DEPLOY_
openstack tripleo deploy \
--templates $DEPLOY_TEMPLATES \
--standalone \
--yes \
--output-dir $DEPLOY_OUTPUT_DIR \
--stack $DEPLOY_STACK \
--standalone
--timeout $DEPLOY_TIMEOUT_ARG \
-e /usr/share/
-e /home/zuul/
-e /home/zuul/
-e /usr/share/
-e /usr/share/
-e /usr/share/
-r $DEPLOY_ROLES_FILE \
--deployment
--local-ip $DEPLOY_LOCAL_IP \
--control-
---%<---
which comes from https:/ /github. com/openstack/ tripleo- operator- ansible/ blob/master/ plugins/ modules/ tripleo_ shell_script. py
However, if we look standalone- upgrade. sh it looks like
PROMPT_ANSWER="" ANSWER= "--yes"
if openstack tripleo upgrade --help | grep -qe "--yes"; then
PROMPT_
fi
sudo yum update -y \ tripleoclient \ tripleo- common \ tripleo- heat-templates
python-
openstack-
openstack-
sudo openstack tripleo upgrade $PROMPT_ANSWER \ ip=192. 168.24. 1/24 \ virtual- ip=192. 168.24. 3 \ openstack- tripleo- heat-templates/ environments/ standalone/ standalone- tripleo. yaml \ openstack- tripleo- heat-templates/ roles/Standalon e.yaml \ zuul/containers -prepare- parameters- upgrade. yaml" \ zuul/standalone _parameters_ upgrade. yaml" \ openstack- tripleo- heat-templates/ environments/ low-memory- usage.yaml -e /usr/share/ openstack- tripleo- heat-templates/ environments/ docker- ha.yaml -e /usr/share/ openstack- tripleo- heat-templates/ environments/ podman. yaml \
--templates \
--local-
--control-
-e /usr/share/
-r /usr/share/
-e "/home/
-e "/home/
-e /usr/share/
--output-dir /home/zuul \
--standalone
and it comes from quickstart-extras https:/ /opendev. org/openstack/ tripleo- quickstart- extras/ src/branch/ master/ roles/standalon e-upgrade/ tasks/main. yml#L27- L38
and generates the following upgrade script
cat standalone- upgrade. sh ANSWER= "--yes"
PROMPT_ANSWER=""
if openstack tripleo upgrade --help | grep -qe "--yes"; then
PROMPT_
fi
sudo yum update -y \ tripleoclient \ tripleo- common \ tripleo- heat-templates
python-
openstack-
openstack-
sudo openstack tripleo upgrade $PROMPT_ANSWER \ ip=192. 168.24. 1/24 \ virtual- ip=192. 168.24. 3 \ openstack- tripleo- heat-templates/ environments/ standalone/ standalone- tripleo. yaml \ openstack- tripleo- heat-templates/ roles/Standalon e.yaml \ zuul/containers -prepare- parameters- upgrade. yaml" \ zuul/standalone _parameters_ upgrade. yaml" \ openstack- tripleo- heat-templates/ environments/ low-memory- usage.yaml -e /usr/share/ openstack- tripleo- heat-templates/ environments/ docker- ha.yaml -e /usr/share/ openstack- tripleo- heat-templates/ environments/ podman. yaml \
--templates \
--local-
--control-
-e /usr/share/
-r /usr/share/
-e "/home/
-e "/home/
-e /usr/share/
--output-dir /home/zuul \
--standalone
So, as we can see deployment and upgrade scripts are different. So, as experiment I made the upgrade script from deployment just sed -i -e 's/openstack\ tripleo\ deploy/openstack\ tripleo\ upgrade/' tripleo_deploy.sh
and ran it the upgrade passed, the interfaces were before and after upgrade were identical and ping test passed.