
During upgrade bootstrap, the runtime execution of the puppet class platform::network::runtime created a lock timeout with sysinv-agent to allow the interface configuration in the kernel. The lock exists to allow sysinv-agent to collect interface information for the system inventory. The optimized upgrade feature created this runtime execution to fill the contents in /etc/network/interface.d/ and /etc/network/routes to be available during the network bringup phase that happens after the system unlock in an earlier step than the regular puppet manifest execution. But as part of apply_network_config.sh execution it also brings up the interfaces, accessing the script protected section and causing lock timeout. This change uses the file /var/run/.network_upgrade_bootstrap to indicate a upgrade bootstrap is under way to just populate the /etc/network files and to not activate the interfaces. The interface activation is not needed as the bootstrap is still under way and the minimal network configuration is already provided prior to the bootstrap. After unlocking the files in /etc/network will provide a faster network availability as systemd's network service is one of the first to be executed during boot. Test Plan: [PASS] in 21.12 add an assorted network configuration with - vlan, bonded, and ethernet interfaces (the vlan interface on top of both base interfaces) - configure the bond interface with static address - add routes on all platform and data interfaces [PASS] execute lock/unlock in 21.12 to verify config in applied [PASS] execute AIO-SX upgrade to 22.12, at the bootstrap end check files in /etc/network/ [PASS] finish upgrade and after unlock verify the network access and address, interfaces, and route creation in the kernel Closes-Bug: 2036451 Change-Id: Ib04f72298252a52a8a05cf644671106ad6530e5f Signed-off-by: Andre Kantek <andrefernandozanella.kantek@windriver.com>
stx-puppet
The starlingx/stx-puppet repository handles the Puppet service1.
The Puppet service runs during bootstrap, and at every reboot, to provide a consistent configuration across the StarlingX system nodes.
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.
References
Description
Languages
Puppet
58.9%
Python
21.4%
HTML
7.4%
Shell
7%
Ruby
4.7%
Other
0.6%