diff --git a/nova/templates/bin/_nova-compute-init.sh.tpl b/nova/templates/bin/_nova-compute-init.sh.tpl index b1e7cb505a..120f83303b 100644 --- a/nova/templates/bin/_nova-compute-init.sh.tpl +++ b/nova/templates/bin/_nova-compute-init.sh.tpl @@ -37,3 +37,22 @@ cat </tmp/pod-shared/nova-libvirt.conf live_migration_inbound_addr = $migration_address EOF fi + +hypervisor_interface="{{- .Values.conf.hypervisor.host_interface -}}" +if [[ -z $hypervisor_interface ]]; then + # search for interface with default routing + # If there is not default gateway, exit + hypervisor_interface=$(ip -4 route list 0/0 | awk -F 'dev' '{ print $2; exit }' | awk '{ print $1 }') || exit 1 +fi + +hypervisor_address=$(ip a s $hypervisor_interface | grep 'inet ' | awk '{print $2}' | awk -F "/" '{print $1}') + +if [ -z "${hypervisor_address}" ] ; then + echo "Var my_ip is empty" + exit 1 +fi + +tee > /tmp/pod-shared/nova-hypervisor.conf << EOF +[DEFAULT] +my_ip = $hypervisor_address +EOF diff --git a/nova/templates/bin/_nova-compute.sh.tpl b/nova/templates/bin/_nova-compute.sh.tpl index 84596a59c4..c80da6d69c 100644 --- a/nova/templates/bin/_nova-compute.sh.tpl +++ b/nova/templates/bin/_nova-compute.sh.tpl @@ -21,4 +21,5 @@ set -ex exec nova-compute \ --config-file /etc/nova/nova.conf \ --config-file /tmp/pod-shared/nova-console.conf \ - --config-file /tmp/pod-shared/nova-libvirt.conf + --config-file /tmp/pod-shared/nova-libvirt.conf \ + --config-file /tmp/pod-shared/nova-hypervisor.conf \ No newline at end of file diff --git a/nova/values.yaml b/nova/values.yaml index a09ab15d81..6558182ac4 100644 --- a/nova/values.yaml +++ b/nova/values.yaml @@ -1425,6 +1425,9 @@ conf: # Get the IP address to be used as the target for live migration traffic using interface name. # If this option is set to None, the hostname of the migration target compute node will be used. live_migration_interface: + hypervisor: + # my_ip can be set automatically through this interface name. + host_interface: nova: DEFAULT: log_config_append: /etc/nova/logging.conf