Use FQDN for MGMT network

The management network is used extensively for all internal
communication.
Since the original use of the network was a private network before
it was exposed for external communication in a distributed cloud
configuration, it was never designed to be reconfigured.

To support MGMT network reconfiguration the idea is to configure the
applications to use the hostname/FQDN instead of a static MGMT IP
address.

In this way the MGMT network can be changed and the services and
applications will still work since they are using the hostname/FQDN
and the DNS will be responsible to translate to the current MGMT
IP address.

The use of FQDN will be applied for all installation modes: AIO-SX,
AIO-DX, Standard, AIO-PLUS, and DC subclouds. But given the
complexities of supporting the multi-host reconfiguration,
the MGMT network reconfiguration will focus on support for AIO-SX
only.

The DNSMASQ service must start as soon as possible to translate
the FQDN to IP address.

Test plan ( Debian only )
 - AIO-SX and AIO-DX virtualbox installation IPv4/IPv6
 - Standard virtualbox installation IPv6
 - DC virtualbox installation IPv4 ( AIO-SX/DX subclouds )
 - AIO-SX and AIO-DX installation IPv4/IPv6
 - AIO-DX plus installation IPv6
 - DC IPv6 and subcloud AIO-SX
 - AIO-DX host-swact
 - DC IPv4 virtualbox with subcloud AIO-DX and AIO-DX
 - AIO-SX to AIO-DX migration
 - netstat -tupl ( no services are using the MGMT IP address )
 - Ran sanity/regression tests

Story: 2010722
Task: 48468

Depends-On: https://review.opendev.org/c/starlingx/config/+/886208

Change-Id: I10c19b0cb7625e473fc95a36fbddb5f7cc660d6a
Signed-off-by: Fabiano Correa Mercer <fabiano.correamercer@windriver.com>
This commit is contained in:
Fabiano Correa Mercer 2023-06-15 16:42:11 -03:00
parent f67c66e1e3
commit 7b0de8749c

View File

@ -1,5 +1,5 @@
# #
# Copyright (c) 2020-2022 Wind River Systems, Inc. # Copyright (c) 2020-2023 Wind River Systems, Inc.
# #
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
@ -14,6 +14,7 @@ from six import ensure_text
from six import string_types from six import string_types
from sysinv.common import constants from sysinv.common import constants
from sysinv.common import exception from sysinv.common import exception
from sysinv.common import utils
from sysinv.db import api from sysinv.db import api
from sysinv.helm import base from sysinv.helm import base
from sysinv.helm import common from sysinv.helm import common
@ -71,7 +72,9 @@ class SnmpHelm(base.BaseHelm):
return ret_password return ret_password
def _get_database_connection(self): def _get_database_connection(self):
host_url = self._format_url_address(self._get_management_address()) host_url = (constants.CONTROLLER_FQDN if utils.is_fqdn_ready_to_use()
else self._format_url_address(self._get_management_address()))
auth_password = self._get_keyring_password( auth_password = self._get_keyring_password(
self.SERVICE_FM_NAME, 'database') self.SERVICE_FM_NAME, 'database')
connection = "postgresql://%s:%s@%s/%s" %\ connection = "postgresql://%s:%s@%s/%s" %\