Problem statement
Kolla (and thus EnOS) assumes that at least two network interfaces are available.
There are cases where only one interface is available on the nodes used for the deployment. For instance on Chameleon BareMetal or Grid'5000 not all the physical machines have a second interface wired. One of the interfaces is used to access the external world (internet).
It's possible to deploy OpenStack using EnOS on nodes with only one network card. But a deployed instance won't get internet access by default.
Technical details
Only the G5K (when deploying on nodes with only one network card) and openstack/chameleon provider are impacted by this issue.
In the previous provider a virtual device (veth) is created to act as the external interface and the two interfaces (the real and the virtual) are passed to Kolla. At the end of the deployment the veth device is bridged on br-ex but not physically linked to any network. Thus no traffic send to/from br-ex can be received by the instances (this include internal to external or external to internal traffic).
Possible solutions
#!/usr/bin/env bash
# The network interface
IF=eno1
# This is the list of the vip of eth0
ips=$(ip addr show dev $IF|grep "inet .*/32" | awk '{print $2}')
if [[ ! -z "$ips" ]]
then
# vip detected
echo $ips
docker exec -ti openvswitch_vswitchd ovs-vsctl add-port br-ex $IF && ip addr flush $IF && dhclient -nw br-ex
for ip in $ips
do
ip addr add $ip dev br-ex
done
else
echo "nothing to do"
fi
Problem statement
Kolla (and thus EnOS) assumes that at least two network interfaces are available.
There are cases where only one interface is available on the nodes used for the deployment. For instance on Chameleon BareMetal or Grid'5000 not all the physical machines have a second interface wired. One of the interfaces is used to access the external world (internet).
It's possible to deploy OpenStack using EnOS on nodes with only one network card. But a deployed instance won't get internet access by default.
Technical details
Only the G5K (when deploying on nodes with only one network card) and openstack/chameleon provider are impacted by this issue.
In the previous provider a virtual device (veth) is created to act as the external interface and the two interfaces (the real and the virtual) are passed to Kolla. At the end of the deployment the veth device is bridged on br-ex but not physically linked to any network. Thus no traffic send to/from br-ex can be received by the instances (this include internal to external or external to internal traffic).
Possible solutions
At the end of the deployment we can plug the physical interface to br-ex to gain connectivity to the external world. In this solution the veth device was ephemeral and only used to complete the Kolla deployment.