distcloud/distributedcloud/dcmanager
Christopher Souza 342690142f Optimize dc orchestrator scheduling
Currently DC orchestration divides the subclouds in stages and the
stage size is defined by the max_parallel_subclouds parameter or
by the size set for the group. Once a stage start being orchestrated,
it will wait for all subclouds of that stage to finish before starting
the next stage, causing the orchestrator to wait for slower subclouds.
The change is to remove the division by stage and keep adding a new
subcloud as soon as one finishes its orchestration in order to improve
the orchestrator speed.

Test Plan:
PASS: Create and apply a strategy with a specific subcloud and verify
that the orchestration finishes successfully.
PASS: Create and apply a strategy with a group of subclouds and verify
that the orchestrator uses the max_parallel_subclouds of that group.
PASS: Create and apply a strategy with max_parallel_subclouds
parameter and verify that the orchestrator uses that parameter.
PASS: Create and apply a strategy with stop_on_failure parameter and
verify that the orchestrator doesn't add any subclouds after the
failure is identified.
PASS: Create and apply a kubernetes strategy and verify that the
orchestration finishes successfully.
PASS: Create and apply a rootca strategy and verify that the
orchestration finishes successfully.
PASS: Create and apply a firmware strategy and verify that the
orchestration finishes successfully.
PASS: Create and apply a upgrade strategy and verify that the
orchestration finishes successfully.
PASS: Create and apply a patch with 100 subclouds in parallel
strategy and verify that the orchestration finishes successfully.
PASS: Create and apply a strategy with a group that has more
subclouds than the max_parallel_subclouds value and verify that
once a subcloud has been processed, another subcloud from
"unprocessed pool" takes its place.
PASS: Create and apply a strategy without specifying
--max_parallel_subclouds value having subclouds from different
groups that are elegible and verify that the orchestration
finishes successfully.

Story: 2010798
Task: 48417

Signed-off-by: Christopher Souza <Christopher.DeOliveiraSouza@windriver.com>
Change-Id: Ie8e8a62ce1314706fb359c1349ab09bc853d0e4a
2023-08-02 12:30:50 -03:00
..
api Set the correct deploy_status value in subcloud restore response 2023-06-19 14:44:29 -03:00
audit Trigger subcloud audits when identity status is updated 2023-05-22 19:50:38 -03:00
cmd Refactor portion of dcmanager into dcmanager-state process 2022-01-27 16:33:41 -05:00
common Optimize dc orchestrator scheduling 2023-08-02 12:30:50 -03:00
db Optimize dc orchestrator scheduling 2023-08-02 12:30:50 -03:00
manager Merge "Trigger subcloud audits when identity status is updated" 2023-05-24 16:34:59 +00:00
objects Remove standard WR License notice from StarlingX distributedcloud 2021-12-23 19:55:09 +00:00
orchestrator Optimize dc orchestrator scheduling 2023-08-02 12:30:50 -03:00
rpc Update endpoint caches post network reconfig 2023-03-14 11:44:15 -03:00
state Trigger subcloud audits when identity status is updated 2023-05-22 19:50:38 -03:00
tests Optimize dc orchestrator scheduling 2023-08-02 12:30:50 -03:00
__init__.py Remove standard WR License notice from StarlingX distributedcloud 2021-12-23 19:55:09 +00:00
config-generator.conf Move content to subdir to support relocated packaging 2019-11-04 13:57:02 -05:00
version.py Remove standard WR License notice from StarlingX distributedcloud 2021-12-23 19:55:09 +00:00