32f6fc5805
Adds the subcloud deploy bootstrap command to dcmanager. It only performs the bootstrap phase, where all parameters are validated and the bootstrap playbook is executed. The bootstrap values can be updated using the bootstrap-values parameter, otherwise the system will use the boostrap values from the subcloud deploy create command. Test Plan: The following tests were run twice, once using the CLI, and once using CURL to request the API directly. The subcloud was created using the follwing command: dcmanager subcloud deploy create --bootstrap-address <bootstrap-address> --bootstrap-values <bootstrap-values> Except for the different release test, where the --release 21.12 parameter was also used. The following commands were used to test the bootstrap (changing the parameters accordingly for each test): CLI: dcmanager subcloud deploy bootstrap --bootstrap-address <bootstrap-address> --bootstrap-values <bootstrap-values> --sysadmin-password <password> <subcloud name or id> CURL: curl -X PATCH -H "X-Auth-Token: ${TOKEN//[$'\t\r\n']}" "http://$MGMT_IP:8119/v1.0/phased-subcloud-deploy/ <subcloud name or id>/bootstrap" -F bootstrap_values=@<bootstrap-values> -F bootstrap-address=<bootstrap-address> -F sysadmin_password=<b64 encoded password> Success cases: 1. PASS - Bootstrap a subcloud without the bootstrap-values and bootstrap-address parameters (omit them from the CLI/CURL command) and verify that it uses the existing values (from the deploy create command); 2. PASS - Bootstrap a subcloud with the same bootstrap-values and bootstrap-address parameters used during deploy create (include the parameters in the CLI/CURL command, using the same values used during deploy create); 3. PASS - Bootstrap a subcloud with bootstrap-values containing a new value for management_subnet, verifying that the routes and endpoints are updated accordingly; 4. PASS - Verify that if a new bootstrap-address is used, the subcloud inventory file is updated accordingly; 5. PASS - Verify subcloud bootstrap with previous release version (tested with 21.12); Failure cases: 6. PASS - Verify that it's not possible to bootstrap with a management_subnet that conflicts with the subnet of an existing subcloud; 7. PASS - Verify that it's not possible to bootstrap when the deploy status is not in one of the following states: 'install-complete', 'bootstrap-failed', 'bootstrap-aborted', 'bootstrap-complete' and 'create-complete'; 8. PASS - Verify that it's not possible to bootstrap when the 'name' parameter from bootstrap-values doesn't match the subcloud name; 9. PASS - Verify that it's not possible to bootstrap without passing the 'sysadmin-password' parameter (using CURL, since the CLI will prompt for the password if it's omited); 10. PASS - Verify that it's not possible to bootstrap with a 'sysadmin-password' that's not b64encoded (using CURL, since the CLI automatically encodes the password). Story: 2010756 Task: 48114 Change-Id: Ic987406bbcc154a8edbaa008c40ccabe1766d03d Signed-off-by: Gustavo Herzmann <gustavo.herzmann@windriver.com>
5 lines
138 B
JSON
5 lines
138 B
JSON
{
|
|
"bootstrap-address": "10.10.10.12",
|
|
"bootstrap_values": "content of bootstrap_values file",
|
|
"sysadmin_password": "XXXXXXX"
|
|
} |