BuildStreaM Configuration Tables

This section contains the configuration tables referenced throughout the BuildStreaM documentation.

BuildStreaM Configuration

build_stream_config.yml

Parameter

Mandatory/Optional

Description

enable_build_stream

Mandatory

  • Enable or disable BuildStreaM pipeline.

  • Accepted values: boolean values (true or false) or (yes or no)

  • Default value: false

build_stream_host_ip

Mandatory

  • Optional: Build Stream API server host IP

  • Accepted values: The public IP address of OIM or admin IP of OIM. The public IP address should be reachable from the GitLab server.

  • Default value: The admin IP of OIM.

build_stream_port

Mandatory

  • BuildStreaM API server port.

  • Accepted values: valid port number (1-65535) which is free

  • Default value: 8010

aarch64_inventory_host_ip

Conditional Mandatory

  • Specify the aarch64 inventory host IP address for aarch64 builds.

  • Accepted values: The admin IP of aarch64 host where OS is installed.

  • Default value: None. If the inventory host IP address is not specified, the build images for aarch64 are not generated.

High Availability Configuration

high_availability_config.yml

Parameter

Details

cluster_name

  • Type: String

  • Captures the name of the service cluster on which HA will be set up. Default value: service_cluster

enable_k8s_ha

  • Type: Boolean

  • Possible values: true

  • Default value: true

  • Indicates whether to enable HA for the Kubernetes (K8s) service node or not. Set to true to enable.

virtual_ip_address

  • Type: String

  • This is a mandatory and user-configurable parameter.

  • Captures the virtual IP address for the K8s service node HA setup. Ensure that the virtual_ip_address does not belong to the dynamic_range or static_range mentioned in the network_spec.yml.

  • Default value: 172.16.107.1

Local Repository Configuration

local_repo_config.yml

Parameter

Mandatory/Optional

Details

user_registry

Optional

  • Type: JSON list

  • This variable accepts a list of user container registries from which additional container images can be downloaded and synchronized into the Omnia local repository.

  • Omnia connects to the specified registries, pulls the required images, and stores them in local repository. These images are then accessed by the cluster nodes from local repository.

  • host: Registry IP and port on which user registry is hosted. User registry can use both HTTP and HTTPS. To be strictly specified in the format IP:port.

  • cert_path: Path to the SSL certificate file. This field is required when the registry uses HTTPS and must point to a file with a .crt extension.

  • key_path: Path to the SSL private key file. This parameter is mandatory when the registry operates over HTTPS and must reference a file with a .key extension.

Note

User registry certificates and private keys specified in cert_path and key_path must already exist at the given locations, and these paths must be accessible from within the omnia_core container.

user_repo_url_x86_64

Optional

  • Type: JSON list

  • This variable accepts the x86_64 repository urls from which the software packages/images will be downloaded and accessed by the cluster.

  • Omnia downloads the software packages from the given list of URLs and stores them into a local Pulp container. These packages are then accessed by the cluster nodes from that Pulp container.

  • url The URL defines the base URL for the repository, and it should always point to the repodata directory of the repository.

  • gpgkey defines gpgkey for the repository. If gpgkey is omitted then gpgcheck=0 is set for that repository.

  • name defines the name of the software .rpm package.

  • If you are using SSL certificates for encryption, include the sslcacert, sslclientkey, and sslclientcert fields, and ensure each is populated with the correct certificate or key data. Omit these fields entirely if SSL is not in use.

  • Irrespective of the value set to repo_config in /opt/omnia/input/project_default/software_config.json, you can set policies (always, partial) for each user repository individually. To do so, add the policy key and provide the desired value while providing the repository URLs.

  • Enable or disable local caching of repository content in the Pulp container. true: Store packages locally to improve performance and reduce bandwidth. false : Always download fresh packages from the repository. Allowed values: true,false (OPTIONAL). Defaults to true if not provided.To do so, add the caching key and provide the desired value while providing the repository URLs.

  • Example: - { url: "https://download.docker.com/linux/centos/9/x86_64/stable", gpgkey: "https://download.docker.com/linux/centos/gpg", name: "docker-ce-repo", sslcacert: "", sslclientkey: "", sslclientcert: "", policy: "" }

Note

All SSL related certificates must be kept in /opt/omnia/user-repo-certs/<user_repo_name>. The certificate files are encrypted post local_repo.yml playbook execution. Execute the ansible-vault decrypt <certificate_file> --vault-password-file /opt/omnia/input/project_default/.local_repo_credentials_key command to decrypt the files.

user_repo_url_aarch64

Optional

  • Type: JSON list

  • This variable accepts the aarch64 repository urls from which the software packages/images will be downloaded and accessed by the cluster.

  • Omnia downloads the software packages from the given list of URLs and stores them into a local Pulp container. These packages are then accessed by the cluster nodes from that Pulp container.

  • url The URL defines the base URL for the repository, and it should always point to the repodata directory of the repository.

  • gpgkey defines gpgkey for the repository. If gpgkey is omitted then gpgcheck=0 is set for that repository.

  • name defines the name of the software .rpm package.

  • If you are using SSL certificates for encryption, include the sslcacert, sslclientkey, and sslclientcert fields, and ensure each is populated with the correct certificate or key data. Omit these fields entirely if SSL is not in use.

  • Irrespective of the value set to repo_config in /opt/omnia/input/project_default/software_config.json, you can set policies (always, partial) for each user repository individually. To do so, add the policy key and provide the desired value while providing the repository URLs.

  • Enable or disable local caching of repository content in the Pulp container. true: Store packages locally to improve performance and reduce bandwidth. false : Always download fresh packages from the repository. Allowed values: true,false (OPTIONAL). Defaults to true if not provided.To do so, add the caching key and provide the desired value while providing the repository URLs.

  • Example: - { url: "https://download.docker.com/linux/centos/9/aarch64/stable", gpgkey: "https://download.docker.com/linux/centos/gpg", name: "docker-ce-repo", sslcacert: "", sslclientkey: "", sslclientcert: "", policy: "" }

Note

All SSL related certificates must be kept in /opt/omnia/user-repo-certs/<user_repo_name>. The certificate files are encrypted post local_repo.yml playbook execution. Execute the ansible-vault decrypt <certificate_file> --vault-password-file /opt/omnia/input/project_default/.local_repo_credentials_key command to decrypt the files.

rhel_os_url_x86_64

Mandatory

  • Type: string

  • Mandatory when cluster_os_type is rhel in /opt/omnia/input/project_default/software_config.json and the RHEL subscription is not registered.

  • For RHEL systems without a subscription, the repository URLs for x86_64_codeready-builder, x86_64_appstream, and x86_64_baseos are mandatory.

  • Additional packages required for the cluster are downloaded from the provided rhel_os_url and stored in the Pulp container.

  • url defines the baseurl for the repository where the OS package is hosted.

  • gpgkey defines the x86_64_gpgkey for the repository. If gpgkey is omitted, then gpgcheck=0 is set for that repository.

  • name defines the name of the OS package.

  • If you are using SSL certificates for encryption, include the sslcacert, sslclientkey, and sslclientcert fields, and ensure each is populated with the correct certificate or key data. Omit these fields entirely if SSL is not in use.

  • Irrespective of the value set to repo_config in /opt/omnia/input/project_default/software_config.json, you can set an individual policy (always, partial) for the rhel_os_url. To do so, add the policy key and provide the desired value while providing the repository URLs.

  • Enable or disable local caching of repository content in the Pulp container. true: Store packages locally to improve performance and reduce bandwidth. false : Always download fresh packages from the repository. Allowed values: true,false (OPTIONAL). Defaults to true if not provided.To do so, add the caching key and provide the desired value while providing the repository URLs.

  • Example: If cluster_os_type is rhel, rhel_os_url might be - { url: "http://crb.com/CRB/x86_64/os/", gpgkey: "http://crb.com/CRB/x86_64/os/RPM-GPG-KEY", sslcacert: "", sslclientkey: "", sslclientcert: "", name: "x86_64_codeready-builder"}

Note

All SSL related certificates must be kept in /opt/omnia/rhel-repo-certs/<rhel_repo_name>. The certificate files are encrypted post local_repo.yml playbook execution. Execute the ansible-vault decrypt <certificate_file> --vault-password-file /opt/omnia/input/project_default/.local_repo_credentials_key command to decrypt the files.

rhel_os_url_aarch64

Mandatory

  • Type: string

  • Mandatory when cluster_os_type is rhel in /opt/omnia/input/project_default/software_config.json and the RHEL subscription is not registered.

  • For RHEL systems without a subscription, the repository URLs for aarch64_codeready-builder, aarch64_appstream, and aarch64_baseos are mandatory.

  • Additional packages required for the cluster are downloaded from the provided rhel_os_url and stored in the Pulp container.

  • url defines the baseurl for the repository where the OS package is hosted.

  • gpgkey defines the aarch64_gpgkey for the repository. If gpgkey is omitted, then gpgcheck=0 is set for that repository.

  • name defines the name of the OS package.

  • If you are using SSL certificates for encryption, include the sslcacert, sslclientkey, and sslclientcert fields, and ensure each is populated with the correct certificate or key data. Omit these fields entirely if SSL is not in use.

  • Irrespective of the value set to repo_config in /opt/omnia/input/project_default/software_config.json, you can set an individual policy (always, partial) for the rhel_os_url. To do so, add the policy key and provide the desired value while providing the repository URLs.

  • Enable or disable local caching of repository content in the Pulp container. true: Store packages locally to improve performance and reduce bandwidth. false : Always download fresh packages from the repository. Allowed values: true,false (OPTIONAL). Defaults to true if not provided.To do so, add the caching key and provide the desired value while providing the repository URLs.

  • Example: If cluster_os_type is rhel, rhel_os_url might be - { url: "http://crb.com/CRB/aarch64/os/", gpgkey: "http://crb.com/CRB/aarch64/os/RPM-GPG-KEY", sslcacert: "", sslclientkey: "", sslclientcert: "", name: "aarch64_codeready-builder" }

Note

All SSL related certificates must be kept in /opt/omnia/rhel-repo-certs/<rhel_repo_name>. The certificate files are encrypted post local_repo.yml playbook execution. Execute the ansible-vault decrypt <certificate_file> --vault-password-file /opt/omnia/input/project_default/.local_repo_credentials_key command to decrypt the files.

rhel_subscription_repo_config_x86_64

Optional

  • Type: JSON list

  • Optional configuration for overriding policy and caching settings for RHEL subscription-based repositories on x86_64 architecture. When subscription is enabled, this config takes precedence over dynamically generated URLs for matching repositories and adds any additional repositories.

  • Matching is done by repository name (e.g., x86_64_appstream) and Non-matching repositories are added as additional repos.

  • Additional packages required for the cluster are downloaded from the provided rhel_subscription_repo_config_x86_64 and stored in the Pulp container.

  • url defines the baseurl for the repository where the OS package is hosted.

  • gpgkey defines the aarch64_gpgkey for the repository. If gpgkey is omitted, then gpgcheck=0 is set for that repository.

  • name defines the name of the OS package.

  • If you are using SSL certificates for encryption, include the sslcacert, sslclientkey, and sslclientcert fields, and ensure each is populated with the correct certificate or key data. Omit these fields entirely if SSL is not in use.

  • Irrespective of the value set to repo_config in /opt/omnia/input/project_default/software_config.json, you can set an individual policy (always, partial) for the rhel_subscription_repo_config_x86_64. To do so, add the policy key and provide the desired value while providing the repository URLs.

  • Enable or disable local caching of repository content in the Pulp container. true: Store packages locally to improve performance and reduce bandwidth. false : Always download fresh packages from the repository. Allowed values: true,false (OPTIONAL). Defaults to true if not provided.To do so, add the caching key and provide the desired value while providing the repository URLs.

  • Example: - { url: "https://example.com/appstream", gpgkey: "", sslcacert: "", sslclientkey: "", sslclientcert: "", name: "x86_64_appstream", policy: "always", caching: true } - { url: "https://cdn.redhat.com/content/dist/rhel10/10.0/x86_64/supplementary/os/", gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release", sslcacert: "", sslclientkey: "", sslclientcert: "", name: "x86_64_supplementary", policy: "always", caching: false }

Note

All SSL related certificates must be kept in /opt/omnia/rhel-repo-certs/<rhel_repo_name>. The certificate files are encrypted post local_repo.yml playbook execution. Execute the ansible-vault decrypt <certificate_file> --vault-password-file /opt/omnia/input/project_default/.local_repo_credentials_key command to decrypt the files.

rhel_subscription_repo_config_aarch64

Optional

  • Type: JSON list

  • Optional configuration for overriding policy and caching settings for RHEL subscription-based repositories on x86_64 architecture. When subscription is enabled, this config takes precedence over dynamically generated URLs for matching repositories and adds any additional repositories.

  • Matching is done by repository name (e.g., x86_64_appstream) and Non-matching repositories are added as additional repos.

  • Additional packages required for the cluster are downloaded from the provided rhel_subscription_repo_config_aarch64 and stored in the Pulp container.

  • url defines the baseurl for the repository where the OS package is hosted.

  • gpgkey defines the aarch64_gpgkey for the repository. If gpgkey is omitted, then gpgcheck=0 is set for that repository.

  • name defines the name of the OS package.

  • If you are using SSL certificates for encryption, include the sslcacert, sslclientkey, and sslclientcert fields, and ensure each is populated with the correct certificate or key data. Omit these fields entirely if SSL is not in use.

  • Irrespective of the value set to repo_config in /opt/omnia/input/project_default/software_config.json, you can set an individual policy (always, partial) for the rhel_subscription_repo_config_aarch64. To do so, add the policy key and provide the desired value while providing the repository URLs.

  • Enable or disable local caching of repository content in the Pulp container. true: Store packages locally to improve performance and reduce bandwidth. false : Always download fresh packages from the repository. Allowed values: true,false (OPTIONAL). Defaults to true if not provided.To do so, add the caching key and provide the desired value while providing the repository URLs.

  • Example: - { url: "https://example.com/appstream", gpgkey: "", sslcacert: "", sslclientkey: "", sslclientcert: "", name: "aarch64_appstream", policy: "always", caching: true } - { url: "https://cdn.redhat.com/content/dist/rhel10/10.0/aarch64/supplementary/os/", gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release", sslcacert: "", sslclientkey: "", sslclientcert: "", name: "aarch64_supplementary", policy: "always", caching: false }

Note

All SSL related certificates must be kept in /opt/omnia/rhel-repo-certs/<rhel_repo_name>. The certificate files are encrypted post local_repo.yml playbook execution. Execute the ansible-vault decrypt <certificate_file> --vault-password-file /opt/omnia/input/project_default/.local_repo_credentials_key command to decrypt the files.

omnia_repo_url_rhel_x86_64

Mandatory

  • Type: JSON list

  • This variable accepts a list of all the x86_64 repo urls from where .rpm packages will be downloaded for RHEL clusters.

  • url defines the baseurl for the repository where the package is hosted.

  • gpgkey defines the gpgkey for the repository. If gpgkey is omitted, then gpgcheck=0 is set for that repository.

  • name defines the name of the software .rpm package.

  • Irrespective of the value set to repo_config in /opt/omnia/input/project_default/software_config.json, you can set individual policies (always, partial) for the repository URLs. To do so, add the policy key and provide the desired value while providing the repository URLs.

  • Enable or disable local caching of repository content in the Pulp container. true: Store packages locally to improve performance and reduce bandwidth. false : Always download fresh packages from the repository. Allowed values: true,false (OPTIONAL). Defaults to true if not provided.To do so, add the caching key and provide the desired value while providing the repository URLs.

  • Default value:

Note

  • These inputs are not validated by Omnia. Incorrect values provided to this variable can lead to unexpected failures during Omnia’s deployment.

  • Ensure that all the listed URLs are reachable from the OIM.

omnia_repo_url_rhel_aarch64

Mandatory

  • Type: JSON list

  • This variable accepts a list of all the aarch64 repo urls from where .rpm packages will be downloaded for RHEL clusters.

  • url defines the baseurl for the repository where the package is hosted.

  • gpgkey defines the gpgkey for the repository. If gpgkey is omitted, then gpgcheck=0 is set for that repository.

  • name defines the name of the software .rpm package.

  • Irrespective of the value set to repo_config in /opt/omnia/input/project_default/software_config.json, you can set individual policies (always, partial) for the repository URLs. To do so, add the policy key and provide the desired value while providing the repository URLs.

  • Enable or disable local caching of repository content in the Pulp container. true: Store packages locally to improve performance and reduce bandwidth. false : Always download fresh packages from the repository. Allowed values: true,false (OPTIONAL). Defaults to true if not provided.To do so, add the caching key and provide the desired value while providing the repository URLs.

  • Default value:

Note

  • These inputs are not validated by Omnia. Incorrect values provided to this variable can lead to unexpected failures during Omnia’s deployment.

  • Ensure that all the listed URLs are reachable from the OIM.

additional_repos_x86_64

Optional

  • Type: JSON list

  • Each repository entry must include:

    • url: Repository base URL.

    • name: Unique repository name.

    • gpgkey: URL to the repository GPG key, or empty string (“”) if you are not using GPG.

Example:

yaml additional_repos_x86_64:

additional_repos_aarch64

Optional

  • Type: JSON list

  • Each repository entry must include:

    • url: Repository base URL.

    • name: Unique repository name.

    • gpgkey: URL to the repository GPG key, or empty string (“”) if you are not using GPG.

Example:

yaml additional_repos_aarch64:

Network Configuration

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.

ib_network

Note

This network is used for the InfiniBand (IB) interface configuration. Provide the subnet and netmask only if IB configuration is desirable.

Subnet

IP address

Mandatory

The subnet address for the InfiniBand network. Default value: 192.168.0.0

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

  • Netmask bits of ib_network should match the netmask bits of the admin network.

Omnia Configuration

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.

  • Ensure that the pod_external_ip_range defined in the omnia_config.yml file is reachable from the OpenManage Enterprise appliance and the SFM network.

  • 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"

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.

k8s_crio_storage_size

Mandatory

  • Type: String

  • Specifies the disk size allocated for CRI-O container storage.

Provisioning Configuration

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, PARENT_SERVICE_TAG, HOSTNAME, ADMIN_MAC, ADMIN_IP, BMC_MAC, BMC_IP

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

  • The headers of the .csv file are are FUNCTIONAL_GROUP_NAME, GROUP_NAME, SERVICE_TAG, PARENT_SERVICE_TAG, HOSTNAME, ADMIN_MAC, ADMIN_IP, BMC_MAC, 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.UTF-8

default_lease_time

integer

Required

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

Default value: 86400

Security Configuration

security_config.yml

Parameter

Details

domain_name

string

Required

  • Sets the intended domain name.

  • If dc=omnia,dc=test, provide omnia.test

  • If dc=dell,dc=omnia,dc=com, provide dell.omnia.com

    Default values: omnia.test

Storage Configuration

storage_config.yml

Variables

Details

nfs_client_params

List (dict)

Required

  • This is a list of dictionaries.

  • nfs_name—Provide the name of the NFS share which is referred by slurm and service kubernetes.

  • server_ip—Provide the IP or hostname of the NFS server which is accessible to all the diskful and diskless nodes.

  • server_share_path—Provide the full path of the directory in the NFS Server.

  • client_share_path—Provide the full path where nfs server contents needs to be mounted.

  • client_mount_options—Provide the mount options as a comma-separated value. Possible values are: nosuid, rw, sync, hard, intr

Sample:

nfs_client_params:
- server_ip: "172.16.107.168" # Provide the IP of the NFS server
  server_share_path: "/mnt/share/omnia" # Provide server share path of the NFS Server
  client_share_path: /share_omnia
  client_mount_options: "nosuid,rw,sync,hard,intr"
  nfs_name: nfs_slurm

- server_ip: "172.16.107.121" # Provide the IP of the NFS server
  server_share_path: "/mnt/share/omnia_k8s" # Provide server share path of the NFS Server
  client_share_path: /share_omnia_k8s
  client_mount_options: "nosuid,rw,sync,hard,intr"
  nfs_name: nfs_k8s

powervault_config

dict

Optional

  • The PowerVault storage integration provides persistent external storage for critical Slurm components, ensuring high availability and data durability across node reboots or reimaging.

    • Slurm State Save Location (StateSaveLocation): Preserves Slurm controller state, job checkpoints, and scheduler data, enabling seamless recovery after controller restarts.

    • Slurm Database Storage (/var/lib/mysql): Houses the SlurmDBD (Slurm Database Daemon) MySQL/MariaDB data, maintaining job accounting records, user associations, and cluster usage history.

  • ip—A list of PowerVault iscsi target IP addresses used for iSCSI target discovery.

  • port—Defines the TCP port for the iSCSI target service. This is an optional parameter and if not provided, the default value is 3260.

  • iscsi_initiator—Specifies the InitiatorName used by the host when connecting to the iSCSI target.

  • volume_id—This is the unique WWN/serial-identifier for the specific volume that should be used for persistent storage.

Note

  • Powervault storage is not replacement for the NFS storage used by slurm cluster.

  • Validation of the ip, iscsi_initiator, or volume_id is not handled, ensure accurate values are provided.

Sample:

powervault_config:
    ip: - 172.1.2.3
    port: 3260
    iscsi_initiator: iqn.2025-01.com.dell:scontrol-node
    volume_id: 00c0ff4343f1f1f1001c8c4e6901000000

Telemetry Configuration

telemetry_config.yml

Parameter

Mandatory/Optional

Details

idrac_telemetry_support

Mandatory

  • Type: Boolean

  • If you want iDRAC telemetry support on your service cluster, set this variable to true before executing telemetry.yml and discovery.yml playbooks.

  • Accepted values: true or false

  • Default value: true

Note

If idrac_telemetry_support is set to true,``mysqldb_user``, mysqldb_password, and mysqldb_root_password parameters in the omnia_config_credentials.yml file becomes mandatory.

Note

If you want to deploy only Slurm clusters (slurm_custom), idrac_telemetry_support must be set to false.

idrac_telemetry_collection_type

Mandatory

  • Specify where to store iDRAC telemetry data.

  • Supported values:
    • victoria: Store in VictoriaMetrics only

    • Kafka: Store in Kafka only

    • victoria,kafka : Store in both (recommended)

  • Default: victoria,kafka

victoria_configurations > deployment_mode

Mandatory

  • Supported values:
    • single-node: Simple deployment (1 pod, suitable for dev/test)

    • cluster: High-availability deployment (7 pods, recommended for production)

  • Default: cluster

  • Cluster Mode Benefits:
    • High availability (no single point of failure)

    • Horizontal scalability (scale components independently)

    • Better performance (4x ingestion, 2x query speed)

    • Production-ready architecture

  • Single-Node Benefits:
    • Simple setup (fewer resources)

    • Suitable for small deployments (<10 nodes)

    • Lower resource usage (~4Gi memory vs ~10Gi for cluster)

victoria_configurations > persistence_size

Conditional Mandatory

  • The amount of storage allocated for each VictoriaMetrics persistent volume.

  • Important: Total VictoriaMetrics storage depends on deployment mode:
    • Single-node mode: Total storage = persistence_size * 1 pod

    • Cluster mode: Total storage = persistence_size * 3 vmstorage pods

  • Example (cluster): 8Gi *  3 = 24Gi total VictoriaMetrics storage

  • Accepted values: Must be specified in the form of X[Ki|Mi|Gi|Ti|Pi|Ei]

  • Default value: 8Gi (results in 24Gi total storage for cluster mode)

victoria_configurations > retention_period

Conditional Mandatory

  • Specify the number of hours to retain victoria logs before they are deleted.

  • Default: 168 (7 days)

kafka_configurations > persistence_size

Conditional Mandatory

  • The amount of storage allocated for each Kafka persistent volume.

  • Important: Total Kafka storage = persistence_size * 6 pods * 3 Kafka brokers (each gets persistence_size storage) * 3 Kafka controllers (each gets persistence_size storage)

  • Example: 8Gi * 6 = 48Gi total Kafka storage

  • Accepted values: Must be specified in the form of X[Ki|Mi|Gi|Ti|Pi|Ei]

  • Default value: 8Gi (results in 48Gi total storage)

  • The default 8Gi size is suitable for small clusters (typically fewer than 5 nodes). For larger clusters, you should increase the persistent size and adjust log_retention_hours and log_retention_bytes based on expected data volume and cluster size.

Caution

Ensure that the Kafka broker settings persistence_size, log_retention_hours, and log_retention_bytes are configured based on your data retention requirements. If the persistent volume reaches its capacity before logs are deleted according to the log retention period configured, Kafka brokers may run out of disk space. For more details on managing Kafka log retention and cleanup policies, see Managing Kafka logs with delete and compact policies.

kafka_configurations > log_retention_hours

Conditional Mandatory

  • Specify the number of hours to retain Kafka logs before they are deleted.

  • Default: 168 (7 days)

kafka_configurations > log_retention_bytes

Conditional Mandatory

  • Specify the maximum size of Kafka logs (in bytes) before they are deleted.

  • Default: -1 (unlimited)

kafka_configurations > log_segment_bytes

Conditional Mandatory

  • Specify the maximum size of Kafka log segments (in bytes) before they are deleted.

  • Default: 1073741824 (1 GB)

kafka_configurations > topic_partitions

Conditional Mandatory

  • Specify the partition counts for the following topics: * idrac * ldms * ome

  • Default partition counts: idrac=1, ldms=2, ome=1

  • Example:

    topic_partitions:

    name: “idrac”

    partitions: 1

    name: “ldms”

    partitions: 2

LDMS port configurations > ldms_agg_port

Conditional Mandatory

  • Specify the aggregator port to be used on the service k8s cluster.

  • Valid range: 6001-6100

  • Default: 6001

LDMS port configurations > ldms_store_port

Conditional Mandatory

  • Specify the store daemon port to be used on the service k8s cluster

  • The port can be the same as LDMS aggregator port specified for ldms_agg_port

  • Valid range: 6001-6100

  • Default: 6001

LDMS port configurations > ldms_sampler_port

Conditional Mandatory

  • Specify the sampler port to be used on the compute nodes.

  • Valid range: 10001-10100

  • Default: 10001

ldms_sampler_configurations > meminfo

Mandatory

  • Collects memory usage statistics (free, used, buffers, cached, etc.).

  • plugin_name: meminfo

  • config_parameters ""

  • activation_parameters:interval=1000000 indicates memory data metrics collected every 1 second.

  • The interval unit is microseconds

ldms_sampler_configurations > procstat2

Mandatory

  • Collects process statistics (CPU, memory, I/O per process).

  • plugin_name: procstat2

  • config_parameters ""

  • activation_parameters: interval=1000000

  • The interval unit is microseconds

ldms_sampler_configurations > vmstat

Mandatory

  • Collects virtual memory statistics (paging, swapping, memory pressure).

  • plugin_name: vmstat

  • config_parameters ""

  • activation_parameters: interval=1000000

  • The interval unit is microseconds

ldms_sampler_configurations > loadavg

Mandatory

  • Collects system load average (1, 5, and 15 minute averages).

  • plugin_name: loadavg

  • config_parameters: ""

  • activation_parameters interval=1000000

  • The interval unit is microseconds

ldms_sampler_configurations > procnetdev2

Mandatory

  • Collects network interface statistics (bytes, packets, errors, drops per interface)

  • The possible config parameters are:
    • ifaces=eth0,eth1: Specific interfaces to monitor

    • If not specified, all network interfaces will be monitored

  • plugin_name: procnetdev2

  • config_parameters: “”

  • activation_parameters: interval=1000000 offset=0

  • The interval unit is microseconds

GitLab Configuration

gitlab_config.yml

Parameter

Mandatory/Optional

Description

gitlab_host

Mandatory

  • IP address of the target host where GitLab will be deployed.

  • Must be accessible from the OIM server.

  • The GitLab host IP address must be different from the Omnia Infrastructure Manager (OIM) IP address.

gitlab_project_name

Mandatory

  • Name of the GitLab project that Omnia creates or manage.

  • Default value: omnia-catalog

  • This project is created automatically if it does not exist.

gitlab_project_visibility

Mandatory

  • Visibility options that you can set for the GitLab project.

  • Possible Values:

    • private: Project access must be granted explicitly for each user

    • internal: The project can be cloned by any logged‑in user

    • public: The project can be cloned without any authentication

gitlab_default_branch

Mandatory

  • The default branch used for repository and API operations

  • Default value: main

  • This branch is used as the default for all operations

gitlab_https_port

Mandatory

  • HTTPS port exposed via GitLab NGINX

  • Default value: 443

  • Must be between 1-65535

  • Must not conflict with other services

gitlab_min_storage_gb

Mandatory

  • Free disk space validated before install

  • Default value: 20

  • GitLab requires at least 20GB of free disk space

gitlab_min_cpu_cores

Mandatory

  • Minimum CPU core count validated before install

  • Default value: 2

  • More cores may be needed for production workloads

gitlab_puma_workers

Mandatory

  • Number of worker processes

  • Default value: 2

  • Scale with CPU cores (recommended: 1-2 workers per CPU core)

gitlab_sidekiq_concurrency

Mandatory

  • Background job concurrency

  • Default value: 10

  • Adjust based on available memory and workload

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