From af3369cfeaa5ef73b681e85ff7bb3ab8db789604 Mon Sep 17 00:00:00 2001 From: John Haan Date: Fri, 21 Dec 2018 09:37:30 +0900 Subject: [PATCH] [Nova] Add host interface for host_ip in hypervisor description This patch set host_interface for update host_ip information in compute node. Currently helm chart defines the value of my_ip set "0.0.0.0", therefore host_ip of compute node is null. $ nova hypervisor-show {uuid} +---------------------------+------------------------------------------+ | Property | Value | +---------------------------+------------------------------------------+ | cpu_info_arch | x86_64 | . . | host_ip | None | Through this patch, OpenStack can provide appropriate values for the required field. Change-Id: I05f929cb2c777582c177e8c7a64b9fd431d554ec --- nova/templates/bin/_nova-compute-init.sh.tpl | 19 +++++++++++++++++++ nova/templates/bin/_nova-compute.sh.tpl | 3 ++- nova/values.yaml | 3 +++ 3 files changed, 24 insertions(+), 1 deletion(-) 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 8abe711f47..d6c12c3c39 100644 --- a/nova/values.yaml +++ b/nova/values.yaml @@ -1475,6 +1475,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