Conductor Documentation

Solution deployment without vendor files

This feature allows users to deploy WRCP by providing a list of Customer Information Questionnaires (CIQs) for each site, and then utilizing a deployment template (if provided). Successful installation is contingent upon the accuracy of the provided CIQ and deployment template.

The Master CIQ contains the deployment template details and information on different servers, such as embedded CIQ files, network configuration, and server details. Each server is associated with one or more embedded CIQ files.

For each Day0 installation (RDC, Simplex Subcloud, Duplex Subcloud), the deployment template file is mapped with the associated CIQs to generate a deployment config. For more information about Wind River Cloud Platform, see https://docs.windriver.com/.

For DayN workflow (Add_delete workflow), deployment parameters are parsed with the associated CIQs.

Key Features

Key features revolve around facilitating flexible deployment, empowering users to utilize distinct sets of embedded CIQ files for individual servers within a Master CIQ’s ‘server list.’ Furthermore, users can define a deployment template for each site within the Master CIQ.

Embedded CIQs are specifically referenced for various functionalities, such as interfaces, osds, ethernet, bond, and sriov, associated with each server. Additionally, a ‘global_parameters’ section and a ‘deployment_template’ parameter are available. If the ‘embedded_ciqs’ field is present in the CIQ file for each server, and a ‘deployment_template’ is defined under the ‘global_parameters’ section, the installation process uses this strategy.

Example Deployment Template

Getting Started

Prerequisites

Prior to initiating the process, ensure that the CIQ and deployment template configuration files are prepared and available on the file server.

Additionally, it is crucial to verify that the requisite plugins and blueprints have been successfully uploaded to the Conductor platform.

Installation/Activation

To activate this deployment option, define the Embedded CIQs (embedded_ciqs) and the deployment template file (global_parameters:deployment_template) within the Master CIQ.

In the event of a fallback strategy, confirm that the RDC deployment inputs align with the default CIQ files specified under the ciq_file_list parameter.

Additionally, verify that, in the RDC deployment inputs, the golden config file list parameter points to the default deployment template with the name RDCdeploymentConfig.

It is important to note that the installation process remains unchanged.

Using the Feature

This strategy employs multiple configuration files tailored to specific environmental requirements.

This feature facilitates seamless deployment of essential controllers and subclouds, DayN add a new worker and accommodates various customizations.

Upon validation of the accuracy of the Master CIQ and deployment file, the IB plugin is expected to leverage the appropriate configuration files corresponding to the respective vendor.

Example scenario:

If the embedded_ciqs are present in the server_list of the Master CIQ, along with deployment_template specified in the global_parameters' of the Master CIQ the installation process will use this deployment strategy by mapping the embedded_ciqs files to Master CIQ and then embedding the values in the CIQs (such as interfaces-ethernet, bond, sriov, osds).

It will then create a deployment configuration using the deployment template file referenced in the Master CIQ utilizing the embedded CIQ files.

Example Scenario Template

Backward Compatibility

For backward compatibility, confirm that the RDC deployment inputs align with the default CIQ file, which should not contain embedded CIQ files and the deployment template parameter.

Additionally, the golden config file list parameter, specifically RDCdeploymentConfig, should be directed to the default deployment template.

This practice ensures compatibility with previous configurations and processes, maintaining a seamless transition and operation within the existing framework.

If the embedded_ciqs are not present in all servers of server_list of Master CIQ along and the deployment_template is not present in global_parameters of Master CIQ, the installation process will use the default single CIQ file. Default functionality remains unchanged and will then create a deployment configuration with the deployment template mentioned in the RDC input using the CIQ file.

Example Backwards Compatibility

Unsupported Scenarios

Unsupported Scenario 1

Scenario: If the ‘embedded_ciqs’ are present in the ‘server_list’ of Master CIQ but the ‘deployment_template’ is not present in ‘global_parameters’ of Master CIQ.

Installation will halt and display NonRecoverableError “deployment template is missing in deployment template”.

In order to use this deployment strategy, the deployment template under global_parameters must be present if ‘embedded_ciqs’ are present in the Master CIQ.

Example Unsupported Scenario 1

Unsupported Scenario 2

Scenario: If the ‘embedded_ciqs’ are not present in the ‘server_list’ of Master CIQ but the ‘deployment_template’ is present in ‘global_parameters’ of Master CIQ.

Installation will use the default strategy, i.e. it will use the default single CIQ file. Default functionality will remain unchanged and will then create a deployment configuration with the deployment template mentioned in the RDC input using the CIQ file.

Example Unsupported Scenario 2

Unsupported Scenario 3

Scenario: If some servers ‘embedded_ciqs’ are missing in the ‘server_list’ of Master CIQ.

Installation will halt and display NonRecoverableError “Servers without embedded_ciqs: inconsistent_servers”

In order to use new strategy, all servers under server_list of Master CIQ should have a embedded_ciqs section with one or more embedded ciq files.

Example Unsupported Scenario 3

Embedded CIQs Configuration

Option 1: Interfaces can be configured in the embedded_ciqs in the following way:

For successful installation using this screnario, the path of interfaces embedded ciq file must be provided under the embedded_ciqs section of the Master CIQ

Interface configuration for particular server interfaces:

vlan: - {“name”: “oam0”, “lower”: “pxeboot0”, “dataNetworks”: [], “ptpRole”: “none”, “platformNetworks”: [“oam”], “vid”: 13} - {“name”: “mgmt0”, “lower”: “pxeboot0”, “dataNetworks”: [], “ptpRole”: “none”, “platformNetworks”: [“mgmt”], “vid”: 14} - {“name”: “cluster0”, “lower”: “pxeboot0”, “dataNetworks”: [], “ptpRole”: “none”, “platformNetworks”: [“cluster-host”], “vid”: 15} ethernet: - {“ptpRole”: “none”, “class”: “platform”, “name”: “pxeboot0”, “dataNetworks”: [], “platformNetworks”: [“pxeboot”] , “port_name”: “enp202s0f0”} - {“mtu”: 1500, “class”: “none”, “name”: “lo”, “dataNetworks”: [], “platformNetworks”: [] , “port_name”: “lo”, “ptpRole”: “none”}

bond: - {“class”: “platform”, “dataNetworks”: [], “bonded_interfaces”: [“NIC.Slot.2-1-1”, “NIC.Slot.2-2-1”], “bond_mode”: “802.3ad”, “transmitHashPolicy”: “layer2”, “name”: “apxeboot0”, “platformNetworks”: [“pxeboot”] }

Option 2: osds can be configured in the embedded_ciqs in the following way:

osd configuration for particular server

osds: - /dev/disk/by-path/pci-0000:31:00.0-nvme-1

Option 3: Bond can be configured in the embedded_ciqs in the following way:

Best Practices

Refer to ‘Using the Feature’ for all the supported scenarios. Also refer to ‘Unsupported Scenarios’.

Troubleshooting

Refer to ‘Unsupported Scenarios’.

Examples

Refer the examples below to understand how to apply the feature in different scenarios.

Multi Config CIQ Files

Example RDC .ymal file:

# This CIQ Template applies to a single Regional Datacenter (RDC)
# This section lists the servers to target for operations
# One server block is required for each server at this that is part of the solution

server_list:
- service_tag: "service_tag1"
  id: 0
  hostname: "controller-0"
  role: controller-std
    embedded_ciqs:
  # description - contain interfaces
  - vendor/dtib-embedded-interfaces-ctrl0v1.0.yaml
  # description - contain osds
  - vendor/dtib-embedded-osdsv1.0.yaml
  bmc_endpoint: "https://xx.xxx.xx.xx"
  main_interface: NIC.Slot.7-1-1
  boot_device: /dev/disk/by-path/xxxxxx

- service_tag: "service_tag2"
  id: 1
  hostname: "controller-1"
  role: controller-std
  embedded_ciqs:
  # description - contain interfaces
  - vendor/dtib-embedded-interfaces-ctrl1v1.0.yaml
  # description - contain osds
  - vendor/dtib-embedded-osdsv1.0.yaml
  bmc_endpoint: "https://xx.xxx.xx.xx"
  main_interface: NIC.Slot.7-1-1
  boot_device: /dev/disk/by-path/xxxxxx

- service_tag: "service_tag3"
  hostname: "compute-0"
  role: worker-std
  id: 0
  embedded_ciqs:
  # description - contain interfaces
  - vendor/dtib-embedded-interfaces-wkr0v1.0.yaml
  bmc_endpoint: "https://xx.xxx.xx.xx"
  main_interface: NIC.Slot.7-1-1
  # in case plugin fails to map main_interface to interface name and mac,
  # fall back to legacy way to provision bootstrap_interface or bootstrap_mac
  boot_device: /dev/disk/by-path/xxxxxx


global_parameters:
  deployment_template: "rdc_deployment_config.yaml.v4.jinja2"

# This section specifies the type of installation to perform
install_type: 1

# Bootstrapping details
bootstrap_dns_1: 192.168.13.212
bootstrap_dns_2: 10.239.52.212

initial_password: xxxxxxxx

# RDC Site Details
site_id: "h6"
site_name: "centralsite"
location: "franklin"
latitude: 37.7799
longitude: -122.2822
contact: Email ID
address: "Address"
city: City
state: State
country: Country
timezone: UTC

# BMO site details
bmo_remote_site_node_name: bmo-worker
bmo_remote_site_ip: xxx.xxx.xx.xx
bmo_remote_site_ip_netmask: xxx.xxx.xxx.xxx
description: "Central Site"

# Oam network configuration
oam_vlan: xx
external_oam_subnet: xxx.xxx.xx.x/xx
external_oam_gateway_address: xxx.xxx.xx.x
external_oam_floating_address: xxx.xxx.xx.xx
external_oam_node_0_address: xxx.xxx.xx.xx
external_oam_node_1_address: xxx.xxx.xx.xx

# Management network configuration
management_vlan: xx
management_multicast_vlan: xx
management_subnet: xxx.xxx.xx.xx/xx
management_start_address: xxx.xxx.xx.xx
management_end_address: xxx.xxx.xx.xx
management_gateway_address: xxx.xxx.xx.xxx
management_gateway_metric: x
management_multicast_subnet: xxx.xxx.xx.xx
management_dynamic_address_allocation: True

# Cluster network configuration
cluster_host_vlan: xx
cluster_host_subnet: xxx.xxx.xx.xx/xx
cluster_pod_subnet: xxx.xxx.xx.xx/xx
cluster_service_subnet: xxx.xxx.xx.xx/xx

Example Simplex Subcloud .yaml file:

# This CIQ Template applies to a single Cell Site
---
# This section lists the servers to target for operations
# One server block is required for each server at this site that is part of the solution
server_list:
- service_tag: "service_tag1"
  hostname: "controller-0"
  role: controller-aio-ll
  id: 0
  bmc_endpoint: "https://xxx.xxx.xx.xx"
  embedded_ciqs:
  # description - contain interfaces
  - samsung/dtib-embedded-interfaces-simplex17v1.0.yaml
  # description - contain osds
  - samsung/dtib-embedded-osds-simplex17v1.0.yaml
  main_interface: "NIC.Slot.3-1-1"
  boot_device: /dev/disk/by-path/xxxxxx

global_parameters:
  deployment_template: "simplex_subclouds_deployment_config.yaml.v4.jinja2"

# software_version: 21.12
install_type: 5

bootstrap_dns_1: xxx.xxx.xx.xxx
bootstrap_dns_2: xx.xxx.xx.xxx

# Cell Site Details 
site_id: simplexid
site_name: simplex17
rdc_site_name: centralsite
location: "location"
latitude: latitude
longitude: longitude
contact: Email ID
address: "Address"
city: City
state: State
country: Country
timezone: UTC

# Oam network configuration
oam_vlan: xx
external_oam_subnet: xxx.xxx.xx.x/xx
external_oam_gateway_address: xxx.xxx.xx.x
external_oam_floating_address: xxx.xxx.xx.xx


# Management network configuration
management_vlan: xx
management_multicast_vlan: xx
management_subnet: xxx.xxx.xx.xx/xx
management_start_address: xxx.xxx.xx.xx
management_end_address: xxx.xxx.xx.xx
management_gateway_address: xxx.xxx.xx.xxx

rdc_management_subnet: xxx.xxx.xx.xx/xx
rdc_management_gateway_address: xxx.xxx.xx.xxx

# Cluster network configuration
cluster_host_vlan: xx
cluster_host_subnet: xxx.xxx.xx.xx/xx
cluster_pod_subnet: xxx.xxx.xx.xx/xx
cluster_service_subnet: xxx.xxx.xx.xx/xx

Example Duplex Subcloud .yaml file:

# This CIQ Template applies to a single Cell Site
---
# This section lists the servers to target for operations
# One server block is required for each server at this site that is part of the solution
server_list:  
- service_tag: "service_tag1"
  hostname: "controller-0"
  role: controller-aio-ll
  id: 0
  embedded_ciqs:
  # description - contain interfaces
  - samsung/dtib-embedded-interfaces-duplex-ct0v1.0.yaml
  # description - contain osds
  - samsung/dtib-embedded-osds-duplexv1.0.yaml
  bmc_endpoint: https://xxx.xxx.xx.xx
  main_interface: "NIC.Slot.3-1-1"
  boot_device: /dev/disk/by-path/xxxxxx

- service_tag: "service_tag2"
  hostname: "controller-1"
  role: controller-aio-ll
  id: 1
  embedded_ciqs:
  # description - contain interfaces
  - samsung/dtib-embedded-interfaces-duplex-ct1v1.0.yaml
  # description - contain osds
  - samsung/dtib-embedded-osds-duplexv1.0.yaml
  bmc_endpoint: https://xxx.xxx.xx.xx
  main_interface: "NIC.Slot.3-1-1"
  boot_device: /dev/disk/by-path/xxxxxx

- service_tag: "service_tag3"
  hostname: compute-0
  role: worker-ll
  id: 0
  embedded_ciqs:
  # description - contain interfaces
  - samsung/dtib-embedded-interfaces-duplex-workerv1.0.yaml
  bmc_endpoint: https://xxx.xxx.xx.xx
  main_interface: "NIC.Slot.2-1-1"
  boot_device: /dev/disk/by-path/xxxxxx

global_parameters:
  deployment_template: "duplex_subclouds_deployment_config.yaml.v4.jinja2"

# software_version: 21.12
install_type: 5

bootstrap_dns_1: xxx.xxx.xx.xxx
bootstrap_dns_2: xx.xxx.xx.xxx

# Cell Site Details
site_id: duplex-id
site_name: duplex
rdc_site_name: centralsite
location: "location"
latitude: latitude
longitude: longitude
contact: Email ID
address: "Address"
city: City
state: State
country: Country
timezone: UTC

# Oam network configuration
oam_vlan: xx
external_oam_subnet: xxx.xxx.xx.x/xx
external_oam_gateway_address: xxx.xxx.xx.x
external_oam_floating_address: xxx.xxx.xx.xx
external_oam_node_0_address: xxx.xxx.xx.xx
external_oam_node_1_address: xxx.xxx.xx.xx

# Management network configuration
management_vlan: xx
management_multicast_vlan: xx
management_subnet: xxx.xxx.xx.xx/xx
management_start_address: xxx.xxx.xx.xx
management_end_address: xxx.xxx.xx.xx
management_gateway_address: xxx.xxx.xx.xxx

rdc_management_subnet: xxx.xxx.xx.xx/xx
rdc_management_gateway_address: xxx.xxx.xx.xxx

# Cluster network configuration
cluster_host_vlan: xx
cluster_host_subnet: xxx.xxx.xx.xx/xx
cluster_pod_subnet: xxx.xxx.xx.xx/xx

Backward Compatibility CIQ Files (Default Functionality)

Example RDC .yaml file:

# This CIQ Template applies to a single Regional Datacenter (RDC)
# This section lists the servers to target for operations
# One server block is required for each server at this that is part of the solution

# note: replace dash with underscore for jinja2
server_list:
- service_tag: "service_tag1"
  hostname: "controller-0"
  role: controller-std
  id: 0
  bmc_endpoint: "https://xx.xxx.xx.xx"
  main_interface: NIC.Slot.7-1-1
  # in case plugin fails to map main_interface to interface name and mac,
  # fall back to legacy way to provision bootstrap_interface or bootstrap_mac

  boot_device: /dev/disk/by-path/xxxxxx
  osds:
  - /dev/disk/by-path/xxxxxx

- service_tag: "service_tag2"
  hostname: "controller-1"
  role: controller-std
  id: 1
  bmc_endpoint: "https://xx.xxx.xx.xx"
  main_interface: NIC.Slot.7-1-1
  # in case plugin fails to map main_interface to interface name and mac,
  # fall back to legacy way to provision bootstrap_interface or bootstrap_mac

  boot_device: /dev/disk/by-path/xxxxxx
  osds:
  - /dev/disk/by-path/xxxxxx

- service_tag: "service_tag3"
  hostname: "compute-0"
  role: worker-std
  id: 0
  bmc_endpoint: "https://xx.xxx.xx.xx"
  main_interface: NIC.Slot.7-1-1
  # in case plugin fails to map main_interface to interface name and mac,
  # fall back to legacy way to provision bootstrap_interface or bootstrap_mac

  boot_device: /dev/disk/by-path/xxxxxx

- service_tag: "service_tag4"
  hostname: "abcd-1"
  role: worker-std
  id: 1
  bmc_endpoint: "https://xx.xxx.xx.xx"
  main_interface: NIC.Slot.7-1-1
  # in case plugin fails to map main_interface to interface name and mac,
  # fall back to legacy way to provision bootstrap_interface or bootstrap_mac

  boot_device: /dev/disk/by-path/xxxxxx

# This section specifies the type of installation to perform
install_type: 1

bootstrap_dns_1: xxx.xxx.xx.xxx
bootstrap_dns_2: xx.xxx.xx.xxx

initial_password: xxxxxxxx

# RDC Site Details
site_id: "h6"
site_name: "centralsite"
location: "franklin"
latitude: 37.7799
longitude: -122.2822
contact: Email ID
address: "Address"
city: City
state: State
country: Country
timezone: UTC

# Oam network configuration
oam_vlan: xx
external_oam_subnet: xxx.xxx.xx.x/xx
external_oam_gateway_address: xxx.xxx.xx.x
external_oam_floating_address: xxx.xxx.xx.xx
external_oam_node_0_address: xxx.xxx.xx.xx
external_oam_node_1_address: xxx.xxx.xx.xx

# Management network configuration
management_vlan: xx
management_multicast_vlan: xx
management_subnet: xxx.xxx.xx.xx/xx
management_start_address: xxx.xxx.xx.xx
management_end_address: xxx.xxx.xx.xx
management_gateway_address: xxx.xxx.xx.xxx
management_gateway_metric: x
management_multicast_subnet: xxx.xxx.xx.xx
management_dynamic_address_allocation: True

# Cluster network configuration
cluster_host_vlan: xx
cluster_host_subnet: xxx.xxx.xx.xx/xx
cluster_pod_subnet: xxx.xxx.xx.xx/xx
cluster_service_subnet: xxx.xxx.xx.xx/xx

# BMO site details
bmo_remote_site_node_name: bmo-worker
bmo_remote_site_ip: xxx.xxx.xx.xx
bmo_remote_site_ip_netmask: xxx.xxx.xxx.xxx
description: "Central Site"

Example Simplex Subcloud .yaml file:

# This CIQ Template applies to a single Cell Site
---
# This section lists the servers to target for operations
# One server block is required for each server at this site that is part of the solution
server_list:
- service_tag: "service_tag1"
  hostname: "controller-0"
  role: controller-aio-ll
  id: 0
  bmc_endpoint: "https://xxx.xxx.xx.xx"

  main_interface: "NIC.Slot.3-1-1"
  boot_device: /dev/disk/by-path/xxxxxx
  osds:
  - /dev/disk/by-path/xxxxxx
  - /dev/disk/by-path/xxxxxx

# software_version: 21.12
install_type: 5

bootstrap_dns_1: xxx.xxx.xx.xxx
bootstrap_dns_2: xx.xxx.xx.xxx

# Cell Site Details 
site_id: simplexid
site_name: simplex17
rdc_site_name: centralsite
location: "location"
latitude: latitude
longitude: longitude
contact: Email ID
address: "Address"
city: City
state: State
country: Country
timezone: UTC

# Oam network configuration
oam_vlan: xx
external_oam_subnet: xxx.xxx.xx.x/xx
external_oam_gateway_address: xxx.xxx.xx.x
external_oam_floating_address: xxx.xxx.xx.xx


# Management network configuration
management_vlan: xx
management_multicast_vlan: xx
management_subnet: xxx.xxx.xx.xx/xx
management_start_address: xxx.xxx.xx.xx
management_end_address: xxx.xxx.xx.xx
management_gateway_address: xxx.xxx.xx.xxx

rdc_management_subnet: xxx.xxx.xx.xx/xx
rdc_management_gateway_address: xxx.xxx.xx.xxx

# Cluster network configuration
cluster_host_vlan: xx
cluster_host_subnet: xxx.xxx.xx.xx/xx
cluster_pod_subnet: xxx.xxx.xx.xx/xx
cluster_service_subnet: xxx.xxx.xx.xx/xx

Example Duplex Subcloud .yaml file:

# This CIQ Template applies to a single Cell Site
---
# This section lists the servers to target for operations
# One server block is required for each server at this site that is part of the solution
server_list:  
- service_tag: "service_tag1"
  hostname: "controller-0"
  role: controller-aio-ll
  id: 0
  bmc_endpoint: https://xxx.xxx.xx.xx
  main_interface: "NIC.Slot.3-1-1"
  boot_device: /dev/disk/by-path/xxxxxx
  osds:
  - /dev/disk/by-path/xxxxxx

- service_tag: "service_tag2"
  hostname: "controller-1"
  role: controller-aio-ll
  id: 1
  bmc_endpoint: https://xxx.xxx.xx.xx
  main_interface: "NIC.Slot.3-1-1"
  boot_device: /dev/disk/by-path/xxxxxx
  osds:
  - /dev/disk/by-path/xxxxxx
 

# software_version: 21.12
install_type: 5

bootstrap_dns_1: xxx.xxx.xx.xxx
bootstrap_dns_2: xx.xxx.xx.xxx

# Cell Site Details
site_id: duplex-id
site_name: duplex
rdc_site_name: centralsite
location: "location"
latitude: latitude
longitude: longitude
contact: Email ID
address: "Address"
city: City
state: State
country: Country
timezone: UTC

# Oam network configuration
oam_vlan: xx
external_oam_subnet: xxx.xxx.xx.x/xx
external_oam_gateway_address: xxx.xxx.xx.x
external_oam_floating_address: xxx.xxx.xx.xx
external_oam_node_0_address: xxx.xxx.xx.xx
external_oam_node_1_address: xxx.xxx.xx.xx

# Management network configuration
management_vlan: xx
management_multicast_vlan: xx
management_subnet: xxx.xxx.xx.xx/xx
management_start_address: xxx.xxx.xx.xx
management_end_address: xxx.xxx.xx.xx
management_gateway_address: xxx.xxx.xx.xxx

rdc_management_subnet: xxx.xxx.xx.xx/xx
rdc_management_gateway_address: xxx.xxx.xx.xxx

# Cluster network configuration
cluster_host_vlan: xx
cluster_host_subnet: xxx.xxx.xx.xx/xx
cluster_pod_subnet: xxx.xxx.xx.xx/xx

Points to Remember

  1. Mixed Presence of embedded_ciqs: In scenarios where embedded_ciqs are present for some servers and absent for others within the ‘server_list,’ a failure will occur, as discussed in ‘Unsupported Scenario 3.’

  2. Precedence of osds in embedded_ciqs: If the ‘server_list’ section includes osds, and the ‘embedded_ciqs’ section also contains an embedded CIQ file for osds, the osds specified in the ‘embedded_ciqs’ section will take precedence.

  3. BMOM Cleanup: It’s important to note that BMOM (presumably referring to some form of resource management or orchestration system) lacks cleanup flexibility. In the event of using ‘Unsupported Scenarios’ or providing incorrect inputs, manual cleanup of BMOM resources is required.

  4. Referencing embedded ciq files: To reference embedded CIQ files under ‘embedded_ciqs,’ the path of the embedded CIQ files can be provided. This ensures that the system correctly identifies and utilizes the specified embedded CIQ files during the installation process.