This review adds the Helm charts for dcagent, dcdbsync, and dcorch —
including components like dcorch-api, dcorch-engine,
dcorch-engine-worker, and the various dcorch-* proxies.
At this stage, subcloud synchronization via dcorch is functional.
The job-ks-user templates create the OpenStack users for dcagent,
dcorch, and dcdbsync. The job-ks-service templates register the
dcagent, dcorch-dcdbsync, and dcdbsync OpenStack services.
The job-ks-endpoints templates create the OpenStack endpoints for
each API: dcagent, dcdbsync, identity-proxy, sysinv-proxy,
usm-proxy, and patching-proxy.
For dcdbsync, the approach is slightly different, as it must run on
both the SystemController and the subcloud. To support this,
nodeAffinity was added to all dcdbsync jobs and to the
dcdbsync-api pod, using the starlingx.io/distributed-cloud and
starlingx.io/subcloud labels.
For dcagent and dcdbsync in the subcloud, incoming traffic from the
SystemController is routed through HAProxy admin ports — 8220 for
dcdbsync and 8326 for dcagent. HAProxy then forwards the traffic to
controller.internal:8219 for dcdbsync and controller.internal:8325
for dcagent.
To support this behavior, two new deployments were added:
dcdbsync-nginx-proxy.yaml and dcagent-nginx-proxy.yaml. These run
NGINX containers that listen on 0.0.0.0:8219 and 0.0.0.0:8325
respectively, and forward traffic to the internal dcdbsync-api and
dcagent-api services.
Test Plan:
PASS: During a subcloud add command, verify that dcorch receives
notifications from dcmanager-state, and that the subcloud
is correctly added to the database.
PASS: Initial sync process completes successfully.
PASS: Both dcagent and dcdbsync in the subcloud is reached correctly
from Systemcontroller.
PASS: Identity and platform resource propagation works correctly.
Verify dcorch audit, dcorch sync, dcdbsync and dcagent
behavior.
PASS: Resource propagation through the proxy works as expected.
Verify keystone and platform api-proxies functionality.
PASS: Run a software upload command with --os-region-name
SystemController and verify that it works correctly and that
the content is added to dc-vault.
Story: 2011312
Task: 51859
Change-Id: I431d9ab83ab17bbf5ea712e4bb5c65a427c85d78
Co-Authored-By: Yuxing Jiang <yuxing.jiang@windriver.com>
Signed-off-by: Enzo Candotti <Enzo.Candotti@windriver.com>