distcloud/api-ref/source/samples/phased-subcloud-deploy/phased-subcloud-deploy-patch-bootstrap-request.json
Gustavo Herzmann 32f6fc5805 Add 'subcloud deploy bootstrap' command to dcmanager
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>
2023-06-20 17:44:55 -03:00

5 lines
138 B
JSON

{
"bootstrap-address": "10.10.10.12",
"bootstrap_values": "content of bootstrap_values file",
"sysadmin_password": "XXXXXXX"
}