Undercloud - changing os-net-config conf kills undercloud_[admin, public]_host IPs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tripleo |
Fix Released
|
High
|
Harald Jensås |
Bug Description
In the containerized undercloud re-running the 'openstack undercloud install* command removes the undercloud_
The br-ctlplane interface is restarted by os-net-config and this removes the undercloud_
Reproduce:
1. Deploy undercloud with the following configuration
[DEFAULT]
enable_
enable_tempest = false
enable_ui = false
inspection_
ipxe_enabled = true
local_interface = eth1
local_ip = 172.20.0.200/26
local_mtu = 1500
local_subnet = ctlplane-subnet
overcloud_
scheduler_
subnets = ctlplane-subnet
undercloud_
undercloud_debug = true
undercloud_hostname = container-
undercloud_
undercloud_
undercloud_
[ctlplane-subnet]
cidr = 172.20.0.192/26
dhcp_start = 172.20.0.210
dhcp_end = 172.20.0.219
inspection_iprange = 172.20.
gateway = 172.20.0.254
masquerade = true
2. Change the undercloud_
sed -i s/undercloud_
3. Re-run undercloud install
openstack undercloud install
RESULTS:
1. The os-net-config is config.json is updated with the new dnsserver.
Every 5.0s: diff -aur /etc/os-
--- /etc/os-
+++ /tmp/os-
@@ -1 +1 @@
-{"network_config": [{"addresses": [{"ip_netmask": "172.20.
"ovs_extra": ["br-set-
+{"network_config": [{"addresses": [{"ip_netmask": "172.20.
ovs_extra": ["br-set-
2. After os-net-config applied config the keepalived VIPs are gone:
Every 2.0s: ip addr show br-ctlplane Fri Sep 7 08:51:08 2018
47: br-ctlplane: <BROADCAST,
link/ether 52:54:00:7a:f6:c5 brd ff:ff:ff:ff:ff:ff
inet 172.20.0.200/26 brd 172.20.0.255 scope global br-ctlplane
valid_lft forever preferred_lft forever
inet6 fe80::5054:
valid_lft forever preferred_lft forever
3. The upgrade is stuck on starting the containers:
TASK [Start containers for step 3] *******
4. Log's show that services are failing to connect to the database via the keepalived VIPs:
/var/log/
Restarting the keepalived container make the VIP's re-apper:
[root@container -undercloud mysql]# docker container list | grep keepalived io/tripleomaste r/centos- binary- keepalived: 9ad93affedba887 0315dd72c714770 875ce24759_ b72f0c42 "/usr/local/ bin/ko. .." 12 hours ago Up 7 minutes keepalived
bfe1c1cd76e3 docker.
[root@container -undercloud ~]# docker container restart bfe1c1cd76e3
bfe1c1cd76e3
[root@container -undercloud ~]# ip addr show br-ctlplane MULTICAST, UP,LOWER_ UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 ff:fe7a: f6c5/64 scope link
47: br-ctlplane: <BROADCAST,
link/ether 52:54:00:7a:f6:c5 brd ff:ff:ff:ff:ff:ff
inet 172.20.0.200/26 brd 172.20.0.255 scope global br-ctlplane
valid_lft forever preferred_lft forever
inet 172.20.0.201/32 scope global br-ctlplane
valid_lft forever preferred_lft forever
inet 172.20.0.203/32 scope global br-ctlplane
valid_lft forever preferred_lft forever
inet6 fe80::5054:
valid_lft forever preferred_lft forever
Once the VIP's are back up TASK [Start containers for step 3] completes and the undercloud install compltes successfully.
NOTE: If we had a recent enough keepalived we could probably have enabled the ``dynamic_ interfaces` ` option. But this is not implemented in the version used.
"""# Allow configuration to include interfaces that don't exist at startup.
dynamic_ interfaces
# This allows keepalived to work with interfaces that may be deleted and restored
# and also allows virtual and static routes and rules on VMAC interfaces.
"""