Infrablock Plugin
Note
This plugin is for Dell purposes only.
Requirements
- Python versions:
- 3.11.x
- Dell BMO Orchestrator plugin 1.0.0 or higher
- WRCP-Plugin with a compatible version
Workflows
The following workflows are available in Infrablock plugin:
- provision_sysctrl
- provision_subclouds
- add_nodes
- delete_nodes
- field_replace
- sysadmin_pwd_change
- update_firmware
- rdc_cleanup
- decommission_subclouds
1. Provision Sysctrl
Comments in the code:
# assumption:
# 1, install workflow executed successfully,
# 2, during install workflow, bmo_node_instance
# has stored 'site_name', 'ciq_values' to runtime_properties
# 3, there must be 1 and only 1 bmo_node_instance
# bmo discover servers, wrcp audit servers, bmo update hwprofiles
# subgraph_name = 'predeploy_wrcp'
Objective:
Runs a set of pre-defined operations.
Summary: Creates a set of operations including:
- Prediscover
- Discover
- Postdiscover
- Predeploy
- Deploy
- Postdeploy
Builds a workflow graph using these operations as parameter: for each instance of node_instances
adds a sub tasks as dependency of the parent’s workflow graph.
2. Provision Subclouds
Comments in the code:
# bmo discover servers, wrcp audit servers, bmo update hwprofiles
Objective:
Discovers and audit servers to update hwprofiles.
Summary:
Receives a blueprint id and sites names, checks if there is a deployment for each site name, if there isn’t, uses the predeploy method to get bmo info and uses it to create a set of operations that will be added to the workflow graph.
The operations in each set includes:
prediscover_subcloud
discover_subcloud
postdiscover_subcloud
predeploy_subcloud
deploy_subcloud
postdeploy_subcloud
3. Decommission subclouds
Objective:
Decommission a list of subclouds that were installed by the Provision subclouds
workflow. This will power off all nodes of each subcloud, unmanage and delete them from the System Controller, and delete their subenvironments in Conductor.
Requirements:
- Infrablock plugin environment successfully installed, with
Provision sysctrl
andProvision subclouds
already executed. - The subclouds named as input for the workflow must still exist in Conductor as subenvironments for the System Controller environment.
- The subclouds named as input for the workflow must still have their secrets stored in Conductor.
Inputs:
site_names
(required): a list with the names of the subclouds to be decommissioned, e.g.["cellsite-1", "cellsite-2", "cellsite-3"]
.
Usage:
- Run the
Decommission subclouds
workflow from the System Controller deployment with the specified inputs. It will: - Power off all servers from each subcloud provided as input and wait until the subcloud becomes offline in the system controller;
- Unmanage the subclouds if they’re still
managed
in the system controller; - Delete the subclouds from the system controller;
- Mark their status as
decommissioned
in the WRCP node’s runtime properties; - Delete their subenvironments in Conductor.
Installing and using the plugin
Upload the built wagon alongside the plugin’s yaml. Then, upload the desired blueprint (there are some samples inside the examples folder).
Blueprints found in the repository
-
Blueprint_ib.yaml
This blueprint can be used to provision system controllers.
Imports:
- https://cloudify.co/spec/cloudify/5.2.0/types.yaml
- plugin:windriver_infrablock_plugin?version= >=1.0.1
- plugin:dell_bmo_orchestrator_plugin?version= >=0.1.0
Inputs:
file_server
ciq_file_path
ciq_file_list
golden_config_file_path
golden_config_file_list
audit_use_external_resource
bmc_use_external_resource
dm_use_external_resource
dm_chart_file
Dsl Definitions:
deployment_config
dmfiles_config
subclouddeployfiles_config
Node Templates:
bmo_global_controller
ibprofile_auditor
master_iso
Redfish
Wrcp
master_iso_cleaner
Capabilities:
wrcp-custom-iso-url
wrcp-os-auth-url
wrcp-os-user
wrcp-os-password
wrcp-os-cacert
wrcp-os-insecure
wrcp-os-region-name
k8s-cluster-name
k8s-admin-user
k8s-ip
k8s-service-account-token
k8s-cacert
k8s-admin-client-cert
k8s-admin-client-key
-
Blueprint_subcloud.yaml
This blueprint can be used to provision subclouds.
-
Inputs:
site_name
systemcontroller_ssh_host
systemcontroller_ssh_username
systemcontroller_ssh_password
bmo_info
file_server
ciq_file_path
ciq_file_list
golden_config_file_path
golden_config_file_list
-
Dsl definitions:
systemcontroller_ssh_config
deployment_config
-
Node Templates:
Subcloudcontroller
-
Removed the following capabilities
wrcp-os-user
wrcp-os-auth-url
wrcp-os-password
wrcp-os-cacert
wrcp-os-insecure
wrcp-os-region-name
openstack-ip
openstack-key
-
Changing the sysadmin password
Use this workflow to update the sysadmin user password on the RDC and associated subclouds in a secure and synchronized manner.
Prerequisites
- Ensure that RDC and all subclouds are online and in-sync
- Ensure that RDC and all subclouds are using same sysadmin password
Workflow Execution
-
Navigate to the deployment and click on Execute workflow.
-
select Sysadmin pwd change workflow.
- Input the new password in the new_pwd field and click Execute to launch the workflow.
Note: The underlying workflow is using the Linux password utility, so all restrictions from the utility apply to the password provided in the workflow.
- Final result of the workflow is displayed in workflow logs as a table. An example is shown below:
Workflow Internal Operations
- Start:
- Updates the StarlingX SSH password secret if it exists.
- Retrieves System Controller (RDC) runtime properties, including SSH configuration.
- RDC Password Update:
- Updates the sysadmin password on the System Controller (RDC) using SSH.
- Handles errors and logs detailed status messages.
- Raises a NonRecoverableError if the RDC update encounters issues, stopping the workflow.
- Subcloud Password Update:
- Proceeds to update the sysadmin password on each Subcloud.
- Compiles results into a table with information on deployment type, ID, status, and messages.
- Results and Cleanup:
- Logs the results table at the end of the workflow.
- Updates runtime properties with the new password.
- Workflow completion message.
Troubleshooting
- Failure at RDC itself: If failure occurs at RDC itself, the sysadmin password will remain unchanged for RDC and all Subclouds.
- Success at RDC but failures on Subcloud: If sysadmin password updates on RDC completes successfully, the workflow will attempt to update the sysadmin password on all Subclouds irrespective of any failures observed thereafter. Note: If a failure is encountered on any subcloud, the user needs to ensure that the subcloud is reachable from RDC and in-sync with RDC. Then users can verify whether the new sysadmin password was automatically updated on the subcloud. If not, the user will need to manually update the sysadmin password on the failed subcloud.