Eric MacDonald 508b619400 Deprovision mtcClient bmc info when bmc for node is deprovisioned
A node's BMC is provisioned and deprovisioned through the system CLI.

Maintenance shares controller node BMC provisioning info with
the mtcClient on each controller node. The mtcClient uses this
BMC provisioning info to reset its peer controller when it sees
the appropriate signal from SM (a flag file).

However, when a controller node's BMC is deprovisioned from the
system CLI, the mtcAgent does not send a the deprovisioned data
to the mtcClient. Without getting the deprovisioning data the
mtcClient will continue to use the previous provisioning data.
This is incorrect and the reason for this fix.

This update fixes this by having the mtcAgent periodically share
controller node BMC provisioning data to each controller's mtcClient
regardless of its provisioning state. The BMC provisioning data update
period remains the same as it was while the BMCs were provisioned.

This update also offers the followiong messaging/logging improvements.

 - restrict the updates to the management network only.
   There is no need to send the same data over the pxeboot.

 - stop logging while the BMC is deprovisioned. The absence/presence
   of the logs is sufficient to know what the provisioning state is
   without needlessly logging when the BMCs are not provisioned.

 - bypasses sending the bmc provisioning data to the controller-0
   mtcClient in an SX system. The data is only needed in a DX system.

Test Plan:

PASS: Verify mtcClient gets BMC deprovisioning data ; fix for this bug.
PASS: Verify mtcClient periodically logs valid BMC provisioning data.
PASS: Verify mtcClient doesn't log unprovisioned BMC provisioning data.
PASS: Verify mtcAgent does not send bmc provision data on SX systems.
PASS: Verify mtcAgent does send bmc provision data on DX systems.
PASS: Verify worker and storage never receive bmc provisioning data.

Closes-Bug: 2067925
Change-Id: I29e5eb0b072ee38358d99d682555c466de322f2d
Signed-off-by: Eric MacDonald <eric.macdonald@windriver.com>
2024-06-05 15:27:19 +00:00
2024-05-15 15:29:41 -03:00
2023-08-29 16:50:22 -04:00
2023-10-11 14:40:38 +00:00
2019-04-19 19:52:33 +00:00
2023-04-28 12:38:51 -04:00
2018-05-31 07:36:43 -07:00
2023-07-19 12:32:13 -03:00
2022-12-26 23:26:54 +00:00

metal

The starlingx/metal repository handles StarlingX Bare Metal Management1.

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


  1. https://docs.starlingx.io/api-ref/metal↩︎

  2. https://opendev.org/starlingx/manifest.git↩︎

Description
StarlingX Bare Metal and Node Management, Hardware Maintenance
Readme 15 MiB
Languages
C++ 83%
Shell 10.2%
Python 3.3%
C 2.5%
Makefile 1%