Update the input parameters for discovering the nodes

Fill in all required parameters in /opt/omnia/input/project_default/provision_config.yml, /opt/omnia/input/project_default/omnia_config_credentials.yml, /opt/omnia/input/project_default/software_config.json, /opt/omnia/input/project_default/storage_config.yml, /opt/omnia/input/project_default/omnia_config.yml and /opt/omnia/input/project_default/network_spec.yml.

Caution

Do not remove or comment any lines in the above mentioned .yml files.

provision_config.yml

Parameter

Details

pxe_mapping_file_path

string

Optional

  • Enter the path where user has placed the PXE mapping CSV file that contains the node details for provisioning.

  • The file must follow the format: FUNCTIONAL_GROUP_NAME, GROUP_NAME, SERVICE_TAG, HOSTNAME, ADMIN_MAC, ADMIN_IP, BMC_MAC, BMC_IP

  • This variable is required to discover nodes using a mapping file.

  • Ensure that the admin IP addresses provided are within the admin_static_ranges.

  • The headers of the .csv file are SERVICE_TAG, ADMIN_MAC, HOSTNAME, ADMIN_IP, and BMC_IP

  • A sample file is provided here: omnia/examples/pxe_mapping_file.csv

timezone

string

Required

Timezone to be used during OS provisioning. Available timezones are provided here.

Choices:

  • GMT <- default

  • EST

  • CET

  • MST

  • CST6CDT

  • PST8PDT

language

string

Required

Language to be used during OS provisioning.

Default value: en-US

default_lease_time

integer

Required

Default lease time for IPs assigned by DHCP. Range: 21600-86400

Default value: 86400

Note

The /opt/omnia/input/project_default/omnia_config_credentials.yml file is encrypted on the first execution of the discovery.yml or local_repo.yml playbooks.

  • To view the encrypted parameters:

    ansible-vault view omnia_config_credentials.yml --vault-password-file .omnia_config_credentials_key
    
  • To edit the encrypted parameters:

    ansible-vault edit omnia_config_credentials.yml --vault-password-file .omnia_config_credentials_key
    
software_config.json

Parameter

Mandatory/Optional

Details

cluster_os_type

Mandatory

  • Type: string

  • Specify the operating system running on the OIM and the one to be provisioned on the compute nodes.

  • Accepted value: rhel

cluster_os_version

Mandatory

  • Type: string

  • The OS Version that will be provisioned on compute nodes.

  • Accepted value: 10.0.

repo_config

Mandatory

  • Type: string

  • Omnia sets up a local Pulp repository on the OIM and downloads all the necessary packages or images for the cluster into this repository. The behavior of the Pulp container varies depending on the value of the repo_config parameter.

  • In case of always, packages are downloaded and cached on OIM during local_repo.yml execution; compute nodes get the packages from OIM. Caching these packages allow them to be reused in future operations without needing to download them again.

  • In case of partial, packages are not pre-downloaded or cached. OIM downloads from upstream URLs when needed.

  • Accepted value: always, partial

  • Default value: always

Note

The following packages will always be downloaded from the local Pulp repository, regardless of the value of repo_config:

  • ISOs

  • pip modules

  • manifests

  • tarballs

  • container images

softwares

Mandatory

  • Type: JSON list

  • A JSON list of required software with the software version (optional) and architecture type aarch64, x86_64 or both. This field is mandatory.

  • The following software should be listed with a version in the list: OpenLDAP, NFS, Slurm, service_k8s, utils, ucx, openmpi.

  • A minimum of one software should be provided in the list for local_repo.yml to execute correctly.

  • The software_config.json will have the basic softwares present in it. To add additional software stacks, add the software under /opt/omnia/input/project_default/software_config.json.

  • For the list of all applicable softwares based on your <cluster_os_type>, refer the templates at examples/template_<os>_software_config.json. For example, /omnia/examples/rhel_software_config.json

Note

The accepted names for software are taken from /opt/omnia/input/project_default/config/<architecture>/<cluster_os_type>/<cluster_os_version>.

storage_config.yml

Variables

Details

nfs_client_params

JSON List

Required

  • This JSON list contains all parameters required to set up NFS.

  • server_ip—Provide the IP of the NFS server which is accessible to all the diskful and diskless nodes. Default value: 172.16.107.168

  • server_share_path—Provide server share path of the NFS Server. Default value: /mnt/share/omnia

  • client_share_path—Path where nfs server contents needs to be mounted. The default value is /opt/omnia. Default value: /share_omnia

  • client_mount_options—Provide the mount options. Possible values are: nosuid, rw, sync, hard, intr

  • nfs_name—Provide the name of the NFS share. Default value: nfs_slurm. Type: string

Sample:

nfs_client_params:
      {
            nfs_name: "nfs_storage_default"
            server_ip: "", # Provide the IP of the NFS server
            server_share_path: "", # Provide server share path of the NFS Server
            client_share_path: /opt/omnia,
            client_mount_options: "nosuid,rw,sync,hard,intr",
     }

The following table lists the parameters that must be configured in omnia_config.yml for slurm cluster.

omnia_config.yml

Variables

Details

installation_type

string

Optional

  • Indicates the slurm installation supports configless.

    Choices:

    • configless <- default

Note

nfs_share mode is not implemented.

restart_slurm_services

boolean

Optional

  • Accepted value: true

  • Starts the slurm services after every OS deployment.

cluster_name

string

Mandatory

  • Indicates the name of the cluster.

nfs_storage_name

string

Mandatory

  • Indicates the NFS storage name for the NFS storage to be used by this slurm cluster.

  • This is defined in storage_config.yml as nfs_name.

The following table lists the parameters that must be configured in omnia_config.yml for service Kubernetes cluster.

omnia_config.yml

Variables

Mandatory/Optional

Details

cluster_name

Mandatory

  • Type: String

  • Name of the cluster on which you want to deploy Kubernetes.

  • This input is case-sensitive. Do not add any special characters except _ (underscore) in the cluster name.

deployment

Mandatory

  • Type: Boolean

  • Indicates if Kubernetes will be deployed or not.

  • Accepted values: true or false

k8s_cni

Mandatory

  • Type: String

  • Kubernetes SDN network.

  • Accepted values: calico

  • Default value: calico

pod_external_ip_range

Mandatory

  • Type: String

  • These addresses will be used by the loadbalancer for assigning external IPs to Kubernetes services.

  • Ensure that the IP range provided is not assigned to any node in the cluster.

  • Sample values: 172.16.107.170-172.16.107.200

k8s_service_addresses

Optional

  • Type: String

  • Kubernetes internal network for services.

  • This network must be unused in your network infrastructure.

  • Default value: "10.233.0.0/18"

k8s_pod_network_cidr

Optional

  • Type: String

  • Kubernetes pod network CIDR for internal network. When used, it will assign IP addresses from this range to individual pods.

  • This network must be unused in your network infrastructure.

  • Default value: "10.233.64.0/18"

topology_manager_policy

Optional

  • Type: String

  • Kubernetes Topology manager policies.

  • Accepted values: none, best-effort, restricted, or single-numa-node.

  • Default value: none

  • Example: topology_manager_policy: "none"

topology_manager_scope

Optional

  • Type: String

  • Kubernetes Topology manager scope.

  • Accepted values are container or pod.

  • Default value: container

  • Example: topology_manager_scope: "container"

k8s_offline_install

Optional

  • Accepted value: true

  • With the variable set to true, all packages and images necessary to set up a Kubernetes cluster are pulled from the OIM local repository.

csi_powerscale_driver_secret_file_path

Optional

  • Type: File path

  • If you want to deploy the CSI driver for PowerScale on your service cluster, add the file path of the secrets.yaml file to this variable.

csi_powerscale_driver_values_file_path

Optional

  • Type: File path

  • If you want to deploy the CSI driver for PowerScale on your service cluster, add the file path of the values.yaml file to this variable.

nfs_storage_name

Mandatory

  • Type: String

  • Use same name as mentioned in each of the nfs_name available in storage_config.yml.

network_spec.yml

Network Name

Parameters for the network

Parameter details

admin_network

Note

This name cannot be modified. This is mandatory for discovery and provisioning of the cluster nodes.

oim_nic_name

string

Mandatory

The name of the NIC on which the administrative network is accessible to the OIM. Default value: eno1

netmask_bits

integer

Mandatory

The 32-bit “mask” used to divide an IP address into subnets and specify the network’s available hosts. Default value: 24

primary_oim_admin_ip

IP address

Mandatory

The admin IP address of the OIM server. Default value: 172.16.107.254

primary_oim_bmc_ip

IP address

Conditional mandatory

  • The iDRAC IP address of the OIM server

  • Mandatory only if idrac_telemetry is set to true and telemetry data needs to be collected.

  • This field can be omitted if iDRAC telemetry is not required.

dynamic_range

IP address range

Mandatory

The dynamic range of IPs to be provisioned on target nodes. Default value: 172.16.107.201-172.16.107.250

dns

IP address

Optional

External DNS server IP addresses for the admin network.

Caution

  • All provided network ranges and NIC IP addresses should be distinct with no overlap in the /opt/omnia/input/project_default/network_spec.yml.

  • Ensure that all the iDRACs are reachable from the OIM.

A sample of the /opt/omnia/input/project_default/network_spec.yml where nodes are discovered using a mapping file is provided below:

Networks:
- admin_network:
   oim_nic_name: "eno1"
   netmask_bits: "24"
   primary_oim_admin_ip: "172.16.107.254"
   primary_oim_bmc_ip: ""
   dynamic_range: "172.16.107.201-172.16.107.250"
   dns: []

If you have any feedback about Omnia documentation, please reach out at omnia.readme@dell.com.