Reinstall a Subcloud with Redfish Platform Management Service

For subclouds with servers that support Redfish Virtual Media Service (version 1.2 or higher), you can use the Central cloud’s CLI to reinstall the ISO and bootstrap subclouds from the Central cloud.

Caution

All application and data on the subcloud will be lost after reinstallation.

Any records of FPGA device image updates on the subcloud will be lost. You will need to reapply the FPGA device image update orchestration procedure. For more information, see Device Image Update Orchestration.

About this task

The subcloud reinstallation has these phases:

Executing the dcmanager subcloud reinstall command in the Central Cloud:

  • Uses Redfish Virtual Media Service to remote install the ISO on controller-0 in the subcloud.

  • Uses Ansible to bootstrap StarlingX on controller-0.

Prerequisites

  • The install values are required for subcloud reinstallation. By default, install values are stored in database after a subcloud installation or upgrade, and the reinstallation will re-use these values. You can use the following CLI command in the Central cloud to update them if necessary:

    ~(keystone_admin)]$ dcmanager subcloud update subcloud1 --install-values\ install-values.yml --bmc-password <password>
    

    For more information on install-values.yml file, see Install a Subcloud Using Redfish Platform Management Service.

    You can only reinstall the same software version with the Central cloud on the subcloud. If the software version of the subcloud is not same as the System Controller, the reinstall command will update the software version of the subcloud and install the correct version afterwards.

  • Check the subcloud’s availability in the Central cloud.

    For example:

    ~(keystone_admin)]$ dcmanager subcloud list
    
     +----+----------+------------+--------------+---------------+---------+
     | id | name     | management | availability | deploy status | sync    |
     +----+----------+------------+--------------+---------------+---------+
     | 1  | subcloud1| unmanaged  | offline      | complete      | unknown |
     +----+----------+------------+--------------+---------------+---------+
    

    As the reinstall will cause data and application loss, it is not necessary and not recommended to reinstall a healthy subcloud. Reinstallation request of a managed or online subcloud will therefore be rejected.

Procedure

  1. Create the subcloud bootstrap-values.yml file if it is not available already. This file contains the configuration parameters used to bootstrap the controller-0 of the subcloud that differ from the default bootstrap values.

    For more information on bootstrap-values.yml file, see Install a Subcloud Using Redfish Platform Management Service.

  2. Execute the reinstall CLI.

    For example:

    ~(keystone_admin)]$ dcmanager subcloud reinstall subcloud1 --bootstrap-values /home/sysadmin/subcloud1-bootstrap-values.yml –sysadmin-password <sysadmin_password>
    
  3. Confirm the reinstall of the subcloud.

    You are prompted to enter reinstall to confirm the reinstallation.

    Warning

    This will reinstall the subcloud. All applications and data on the subcloud will be lost.

    Any records of FPGA device image updates on the subcloud will be lost. You will need to reapply the FPGA device image update orchestration procedure. For more information, see Device Image Update Orchestration.

    Please type reinstall to confirm: reinstall

    Any other input will abort the reinstallation.

  4. In the Central cloud, monitor the progress of the subcloud installation and bootstrapping by viewing the deploy status field of the dcmanager subcloud list command.

    For example:

    ~(keystone_admin)]$ dcmanager subcloud list
    
     +----+-----------+------------+--------------+---------------+---------+
     | id | name      | management | availability | deploy status | sync    |
     +----+-----------+------------+--------------+---------------+---------+
     | 1  | subcloud1 | unmanaged  | offline      | installing    | unknown |
     +----+-----------+------------+--------------+---------------+---------+
    

    For more information on the deploy status filed, see Install a Subcloud Using Redfish Platform Management Service.

    You can also monitor detailed logging of the subcloud installation and bootstrapping by monitoring the following log file on the active controller in the Central cloud:

    • /var/log/dcmanager/ansible/subcloud1_playbook_output.log

  5. After the subcloud is successfully reinstalled and bootstrapped, run the subcloud reconfig command to complete the process. The subcloud availability status will change from offline to online when the reconfiguration is complete. For more information, see Manage Subclouds Using the CLI.

Important

Limitation: When you perform a touchless subcloud install with Redfish using the dcmanager subcloud add command for all servers with iDRAC 9 firmware installed, the subcloud install fails due to an ISO image insertion mount failure over an IPv6 network Distributed Cloud system.

Workaround: For all Dell servers with iDRAC 9 firmware installed with version 5.10.00.00 or below, System administrators must perform the following steps:

Procedure

  1. Log in to the iDRAC 9 web interface and select, Configuration > Virtual Console from the drop-down menu.

  2. Select HTML5 (or any other option except eHTML5) from the Plug-in Type drop-down menu.

  3. Click Apply to apply the change.

Postrequisites

  • Provision the newly installed and bootstrapped subcloud. For detailed StarlingX deployment procedures for the desired deployment configuration of the subcloud, see the post-bootstrap steps of the Installation guide.

  • Check and update docker registry credentials on the subcloud:

    REGISTRY="docker-registry"
    SECRET_UUID='system service-parameter-list | fgrep
    $REGISTRY | fgrep auth-secret | awk '{print $10}''
    SECRET_REF='openstack secret list | fgrep $
    {SECRET_UUID} | awk '{print $2}''
    openstack secret get ${SECRET_REF} --payload -f value
    

    The secret payload should be username: sysinv password:<password>. If the secret payload is username: admin password:<password>, see, Updating Docker Registry Credentials on a Subcloud for more information.

  • For more information on bootstrapping and deploying, see the procedures listed under Installation.

  • Add static route for nodes in subcloud to access openldap service.

    In DC system, openldap service is running on Central Cloud. In order for the nodes in the subclouds to access openldap service, such as ssh to the nodes as openldap users, a static route to the System Controller is required to be added in these nodes. This applies to controller nodes, worker nodes and storage nodes (nodes that have sssd running).

    The static route can be added on each of the nodes in the subcloud using system CLI.

    The following examples show how to add the static route in controller node and worker node:

    system host-route-add controller-0 mgmt0 <Central Cloud mgmt subnet> 64 <Gateway IP address>
    system host-route-add compute-0 mgmt0 <Central Cloud mgmt subnet> 64 <Gateway IP address>
    

    The static route can also be added using Deployment Manager by adding the route in its configuration file.

    The following examples show adding the route configuration in controller and worker host profiles of the deployment manager’s configuration file:

    Controller node:
    ---
    apiVersion: starlingx.windriver.com/v1
    kind: HostProfile
    metadata:
      labels:
        controller-tools.k8s.io: "1.0"
      name: controller-0-profile
      namespace: deployment
    spec:
      administrativeState: unlocked
      bootDevice: /dev/disk/by-path/pci-0000:c3:00.0-nvme-1
      console: ttyS0,115200n8
      installOutput: text
      ......
      routes:
          - gateway: <Gateway IP address>
        activeinterface: mgmt0
        metric: 1
        prefix: 64
        subnet: <Central Cloud mgmt subnet>
    
    Worker node:
    ---
    apiVersion: starlingx.windriver.com/v1
    kind: HostProfile
    metadata:
      labels:
        controller-tools.k8s.io: "1.0"
      name: compute-0-profile
      namespace: deployment
    spec:
      administrativeState: unlocked
      boardManagement:
        credentials:
          password:
            secret: bmc-secret
        type: dynamic
      bootDevice: /dev/disk/by-path/pci-0000:00:1f.2-ata-1.0
      clockSynchronization: ntp
      console: ttyS0,115200n8
      installOutput: text
      ......
      routes:
          - gateway: <Gateway IP address>
        interface: mgmt0
        metric: 1
        prefix: 64
        subnet: <Central Cloud mgmt subnet>