fcebab8ef3
Details: This change extracts the addresses from both the primary and secondary address pools and makes them available for use in Puppet manifests. To accommodate the dual stack configuration, the address allocation for non-controller nodes was updated for both management and cluster-host networks. Since the task for upgrade data-migration is not ready yet, a logic was added to access directly the network's field pool_uuid and get the addresses with it, if the network_addresspools is empty (as it would be the case after an upgrade) As the data migration functionality for the upgrade is still under development, a temporary solution was implemented. Logic was added to directly access the network's "pool_uuid" field and retrieve addresses through it whenever the "network_addresspools" list is empty, which is expected to occur immediately following an upgrade. This allows for uninterrupted network operation during the upgrade process. Variable Naming: The following naming convention will be used for the variables: $platform::network::[network_type]::[ipv4/ipv6]::params::{var_name} Variable Usage: Primary Pool: Existing variables will be maintained and populated with addresses from the primary pool. This ensures compatibility with applications that currently rely on them. They have the format $platform::network::[network_type]::params::{var_name} The variable platform::network::[network_type]::params::subnet_version indicates the primary pool protocol. Secondary Pool: New variables with the above naming convention will be introduced, allowing applications to utilize addresses from the secondary pool if needed. Benefits: Improved modularity and reusability of network configurations. Clear separation of concerns between primary and secondary pools. Easier implementation of applications requiring addresses from either pool. Notes: Replace [network_type] can be oam. mgmt, cluster_host, ... Replace [ipv4/ipv6] with either "ipv4" or "ipv6" depending on the address family. Replace [variable_name] with a descriptive name for the specific variable (e.g., "subnet_version", "interface_address"). Test Plan: [PASS] unit tests implemented [PASS] AIO-SX, Standard instalation (IPv4 and IPv6) - using the dependency change the secondary pool was introduced - system was lock/unlocked and no puppet manifests were detected - inspection of system.yaml and controller-0.yaml to verify variables content - no alarms or disabled services were found - in standard added hosts with dual-stack config and verified that addresses were allocated for mgmt and cluster-host and after unlock the interface id was assigned to the respective entries. [PASS] For standard systems during upgrade, simulate node unlock by: - Clearing the "network_addresspools" table after Ansible execution and before DM configuration. - Installing remaining nodes with the table empty. This mimics the post-upgrade scenario. Story: 2011027 Task: 49679 Depends-On: https://review.opendev.org/c/starlingx/config/+/908915 Change-Id: If252fa051b2ba5b5eb3033ff269683af741091d2 Signed-off-by: Andre Kantek <andrefernandozanella.kantek@windriver.com> |
||
---|---|---|
api-ref/source | ||
config-gate | ||
controllerconfig | ||
devstack | ||
doc | ||
releasenotes | ||
storageconfig | ||
sysinv | ||
tmp/patch-scripts/EXAMPLE_SYSINV/scripts | ||
tools/docker/images | ||
tsconfig | ||
workerconfig | ||
.gitignore | ||
.gitreview | ||
.yamllint | ||
.zuul.yaml | ||
CONTRIBUTORS.wrs | ||
LICENSE | ||
README.rst | ||
bindep.txt | ||
centos_build_layer.cfg | ||
centos_dev_wheels.inc | ||
centos_iso_image.inc | ||
centos_pkg_dirs | ||
centos_pkg_dirs_containers | ||
centos_stable_wheels.inc | ||
debian_build_layer.cfg | ||
debian_iso_image.inc | ||
debian_pkg_dirs | ||
debian_stable_wheels.inc | ||
test-requirements.txt | ||
tox.ini |
README.rst
config
The starlingx/config repository handles the StarlingX configuration management services.
Its key component is the System Inventory Service (Sysinv), which provides the system command-line interface (CLI)1.
This repository is not intended to be developed standalone, but rather as part of the StarlingX Source System, which is defined by the StarlingX manifest2.