Input Parameters for the Cluster

The service_k8s_cluster depends on the inputs provided in the following files:

  • /opt/omnia/input/project_default/omnia_config.yml

  • /opt/omnia/input/project_default/security_config.yml

  • /opt/omnia/input/project_default/storage_config.yml

  • /opt/omnia/input/project_default/high_availability_config.yml

Caution

Do not remove, edit, or comment any lines in the above mentioned input files.

/opt/omnia/input/project_default/omnia_config.yml

Parameters for kubernetes setup on service Kubernetes cluster

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 name available in storage_config.yml.

k8s_crio_storage_size

Mandatory

  • Type: String

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

etcd_on_local_disk

Optional

  • Type: Boolean

  • Determines whether ETCD is deployed on local disk or NFS storage.

  • Accepted values: true or false

  • Default value: false

  • When set to true, ETCD is deployed on local disk on all master nodes. The system prioritizes BOSS card if available, and falls back to SSD/SATA disks if BOSS is not present. The /var/lib/etcd directory is mounted on the selected local disk.

  • When set to false or omitted, ETCD storage is provisioned using NFS, and no local disk configuration is performed for ETCD.

  • Important: Migration from NFS to local disk is not supported during upgrades. This configuration is only applicable for fresh installations.

service_k8s_cluster:
   - cluster_name: service_cluster
     deployment: true
     etcd_on_local_disk: false
     k8s_cni: "calico"
     pod_external_ip_range: ""
     k8s_service_addresses: "10.233.0.0/18"
     k8s_pod_network_cidr: "10.233.64.0/18"
     nfs_storage_name: "nfs_k8s"
     csi_powerscale_driver_secret_file_path: ""
     csi_powerscale_driver_values_file_path: "
     k8s_crio_storage_size: "20G"
Parameters for slurm setup

Variables

Details

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 name.

vast_storage_name

string

Optional

  • Storage name corresponding to the VAST storage to be used by slurm cluster.

  • This should match exactly with an entry in storage_config.yml.

  • The following directories will be mounted on the VAST storage:

    • /scratch

    • /tmp

    • /home

    • /apps

    • /projects

config_sources

filepath or mapping

Optional

  • Indicates how the slurm configuration values are provided to the cluster.

  • <conf name> : <filepath> or <mapping>

    • The conf files supported by slurm are slurm, cgroup, gres, mpi, helpers, job_container, acct_gather, oci, and topology.

    • <filepath>: Supply the absolute path to a custom configuration file.

    • <mapping>: Supply the configuration values directly as a key–value map

skip_merge

boolean

Optional

  • Indicates whether a specific configuration file path under config_sources should be used without merging.

  • If skip_merge is set to true for a configuration source path, that configuration file is applied directly without merging with defaults or existing configurations.

See the following sample:

slurm_cluster:
- cluster_name: slurm_cluster
  nfs_storage_name: nfs_slurm
  vast_storage_name: vast_storage
  config_sources:
    slurm:
      SlurmctldTimeout: 60
      SlurmdTimeout: 150
    cgroup:
      CgroupPlugin: autodetect
      AllowedRAMSpace: 100

slurm_cluster:
- cluster_name: slurm_cluster
  nfs_storage_name: nfs_slurm
  config_sources:
   slurm: /path/to/custom_slurm.conf
   cgroup: /path/to/custom_cgroup.conf
   slurmdbd: /path/to/custom_slurmdbd.conf
   gres: /path/to/custom_gres.conf
Parameters for iDRAC setup

Variables

Details

node_discovery_mode

string

Mandatory

  • Indicates an efficient way to manage server requests by querying only one server per group of identical servers.

  • Heterogeneous: Omnia sends requests or operations to each node individually.

  • Homogeneous: Omnia applies the specifications to all the nodes sharing the same hardware within a group.

Example:

slurm_cluster:
 - cluster_name: slurm_cluster
   nfs_storage_name: nfs_slurm
  node_discovery_mode: "homogeneous"
  node_hardware_defaults:
      grp11:
        sockets: 5
        cores_per_socket: 6
        threads_per_core: 3
        real_memory: 117968
        gres: "gpu:4"  # optional

      grp12:
        sockets: 13
        cores_per_socket: 13
        threads_per_core: 13
        real_memory: 117913

/opt/omnia/input/project_default/security_config.yml

Parameters for OpenLDAP configuration

Parameter

Details

ldap_connection_type

string Required

For TLS connection, ensure port 389 is open.

Choices: * TLS <- Default

/opt/omnia/input/project_default/storage_config.yml

Parameters for Storage

Parameter

Details

mounts

List (dict)

Mandatory

Configure mount points compatible with cloud-init mounts module. Source must be known at boot time (NFS paths, UUIDs, local devices). For runtime-discovered sources (iSCSI/multipath), use powervault_config section.

Mandatory Fields:

  • name—Unique identifier for this mount entry. Pattern: [a-zA-Z0-9_-], length 1-64

  • source - Device or network path. Mandatory * For NFS: server_ip:/export/path (e.g., 192.168.1.100:/export/share, nfs-server.example.com:/home) * For local: /dev/sdc, UUID=xxx, LABEL=xxx * For CIFS: //server/share * Note: NFS paths must be resolvable at boot time (use IP or DNS-resolvable hostname)

  • mount_point - Absolute path for the mount point. Mandatory * Must be an absolute path starting with / (e.g., /home, /mnt/vast, /opt/data) * Avoid system directories (/etc, /sys, /proc, /boot, /root, /tmp) * Common patterns: /mnt/, /opt/, /home, /var/lib/* * Note: Path must be unique across all mount entries

Optional Fields:

  • fs_type—Filesystem type. Default: “auto”. Choices: auto, ext2, ext3, ext4, xfs, nfs, nfs4, cifs, tmpfs, cephfs, vfat, ntfs, none, fuse.s3fs. If specified, takes PRIORITY over mount_params profile

  • mnt_opts—Mount options string (e.g., defaults,noexec,nofail). If specified, takes PRIORITY over mount_params profile

  • dump_freq—Dump frequency. Default: “0”. Allowed values: “0”-“2”. If specified, takes PRIORITY over mount_params profile

  • fsck_pass—Fsck pass number. Default: “0”. Allowed values: “0”-“9”. If specified, takes PRIORITY over mount_params profile

  • mount_params—Name of a profile in mount_params section. Used ONLY for fields not explicitly specified in the mount entry

  • mount_on_oim—Boolean flag to mount on OIM (Omnia Image Management). Default: false. Ensure storage is network-accessible from OIM before enabling

  • permissions—Directory ownership and mode for the mount point (applied via chown + chmod after mount)
    • owner: User owner (name or numeric UID). Default: “root”

    • group: Group owner (name or numeric GID). Default: “root”

    • mode: Octal permission string (3-4 digits). Default: “0755”. Examples: “0755”, “1777”

Node-Specific Bind Mounts (paired parameters):

  • node_key—Per-node subdirectory isolation variable. Optional * Allowed values:

    • “local_hostname” - hostname of the node

    • “local_ipv4” - IPv4 address of the node

    • “instance_id” - instance ID of the node from cloud-init

    • Default: “local_hostname”

    • When set, node_mount_point is MANDATORY

    • Generates bind mounts: <mount_point>/<node_key_value>/<target> -> <target>

  • node_mount_point—List of bind mount target paths. Mandatory when node_key is set. Minimum 1 entry, values must be unique absolute paths. Pattern: <mount_point>/<node_key_value>/<target_stripped_slash> -> <target>

Node Targeting (exactly ONE is required - mutually exclusive):

  • functional_group_prefix—List of functional group name prefixes. All nodes whose group name starts with any listed prefix receive this mount. Example: [“slurm”] matches slurm_control_node, slurm_node, etc. MUTUALLY EXCLUSIVE with groups

  • groups—List of GROUP_NAME values from pxe_mapping_file.csv. Only nodes assigned to the listed PXE groups receive this mount. Example: [“grp1”, “grp2”] targets only nodes in those groups. MUTUALLY EXCLUSIVE with functional_group_prefix

mount_params

dict

Optional

Named default profiles for mount configurations. Profiles are referenced by name from mount entries via the mount_params field.

Mandatory Profile Fields:

  • fs_type—Default filesystem type. Choices: auto, ext2, ext3, ext4, xfs, nfs, nfs4, cifs, tmpfs, cephfs, vfat, ntfs, none, fuse.s3fs

  • mnt_opts—Default mount options string (comma-separated)

Optional Profile Fields:

  • dump_freq—Default dump frequency. Allowed values: “0”-“2”

  • fsck_pass—Default fsck pass number. Allowed values: “0”-“9”

Predefined Profiles:

  • nfs_default—Default NFS mount
    • fs_type: “nfs”

    • mnt_opts: “nosuid,rw,sync,hard”

    • dump_freq: “0”

    • fsck_pass: “0”

  • vast_rdma—VAST NFS with RDMA configuration over InfiniBand
    • fs_type: “nfs”

    • mnt_opts: “proto=rdma,nconnect=8,timeo=600,retrans=2,rsize=1048576,wsize=1048576,hard”

  • vast_tcp—VAST NFS storage with standard TCP configuration
    • fs_type: “nfs”

    • mnt_opts: “nosuid,rw,sync,hard”

powervault_config

List (dict)

Optional

PowerVault iSCSI storage configuration. Processed entirely via runcmd script (setup_iscsi_storage.sh). The device path (/dev/mapper/XXX) is only known after iSCSI login + multipath scan, so powervault mounts CANNOT use the cloud-init mounts module. The runcmd script handles: iscsid enable, initiator name, discovery, login, multipathd, volume_id matching, partitioning, formatting, mount, and bind mounts. NOTE: The groups field is NOT supported for powervault_config entries. Only functional_group_prefix is available for node targeting.

Mandatory Fields:

  • name—Unique identifier for this PowerVault entry. Pattern: [a-zA-Z0-9_-], length 1-64

  • ip—List of PowerVault controller IPv4 addresses for iSCSI discovery. Minimum 1 address, values must be unique

  • iscsi_initiator—iSCSI initiator IQN for the host. Pattern: iqn.<date>.<domain>:<identifier>

  • volume_id—Volume WWN/identifier for multipath device matching. Pattern: hex string [a-fA-F0-9]+

  • mount_point—Absolute path where the discovered device gets mounted

  • functional_group_prefix—List of oChaMI functional group name prefixes. All nodes whose group name starts with any listed prefix receive this entry

Optional Fields:

  • port—TCP port for iSCSI target service. Default: 3260. Range: 1-65535

  • fs_type—Filesystem type. Default: “xfs”. Choices: xfs, ext4, ext3, ext2, nfs, nfs4, cifs, ntfs, auto. If specified, takes PRIORITY over mount_params profile

  • mnt_opts—Mount options string. If specified, takes PRIORITY over mount_params profile

  • dump_freq—Dump frequency. Default: “0”. Allowed values: “0”-“2”

  • fsck_pass—Fsck pass number. Default: “0”. Allowed values: “0”-“9”

  • mount_params—Named profile key from mount_params section

Node-Specific Bind Mounts (paired parameters):

  • node_key—Per-node subdirectory isolation variable. Choices: “local_hostname”, “local_ipv4”, “instance_id”. Default: “local_hostname”. When set, node_mount_point is MANDATORY. When node_key is specified, fs_type is forced to “none” and mnt_opts is forced to “bind” regardless of user input

  • node_mount_point—List of bind mount target paths. Mandatory when node_key is set. Pattern: <mount_point>/<node_key_value>/<target_stripped_slash> -> <target>

Permissions (optional sub-object, applied via chown + chmod after mount):

  • permissions.owner—User owner (name or UID). Default: “root”

  • permissions.group—Group owner (name or GID). Default: “root”

  • permissions.mode—Octal permission string (3-4 digits). Default: “0755”

swap

List (dict)

Optional

Swap file configuration for cluster nodes. Swap files are created and enabled during node provisioning. NOTE: The groups field is NOT supported for swap entries. Only functional_group_prefix is available for node targeting.

Mandatory Fields:

  • filename—Path to the swap file to create. Pattern: /path/to/swapfile (absolute path)

  • size—Swap file size. Values: “auto”, a byte integer, or human-readable format (e.g., “2G”, “512M”)

  • functional_group_prefix—List of oChaMI functional group name prefixes. All nodes whose group name starts with any listed prefix receive this swap

Optional Fields:

  • maxsize—Maximum swap size (used only when size is “auto”). Format: byte integer or human-readable (e.g., “4G”)

s3_configurations

dict

Optional

Configures the S3-compatible storage backend for OpenCHAMI image repository.

Mandatory Fields:

  • provider—Selects which S3-compatible storage service to use * Choices: “powerscale” (Dell PowerScale as external S3 storage), “minio” (MinIO container deployed locally on OIM) * Default: “powerscale”

Optional Fields:

  • endpoint_url—S3 endpoint URL * Required when provider is “powerscale” (e.g., “https://10.43.1.11:9021”) * Leave empty (“”) when provider is “minio” (auto-configured to local MinIO) * Default: “” (empty)

Credentials:

  • s3_access_id—S3 access key ID * For “minio” provider: defaults to “admin” (not prompted) * For “powerscale” provider: prompted as conditional mandatory during prepare_oim credential setup

  • s3_secret_key—S3 secret access key * Prompted during prepare_oim credential setup for both providers

/opt/omnia/input/project_default/high_availability_config.yml

See the following sample:

service_k8s_cluster_ha:
  - cluster_name: service_cluster
    enable_k8s_ha: true
    virtual_ip_address: "172.16.107.1"
Parameters for Service Cluster HA

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

Caution

Ensure that the external NFS is accessible by all the nodes intended to be booted and is reachable by the admin network.

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