software_config.json Reference¶
File path: /opt/omnia/input/project_default/software_config.json
This file defines which software packages are installed on each functional group of nodes. It is a JSON array where each element maps a functional group to a list of software packages.
Schema¶
software_config.json is a JSON array of objects. Each object represents
one functional group and specifies the software packages to install on nodes
belonging to that group.
[
{
"functional_group_name": "<group_name>",
"software": [
{
"name": "<package_name>",
"version": "<version>"
}
]
}
]
Field reference¶
|
Parameter |
Details |
|---|---|
|
cluster_os_type string / required |
Specify the operating system running on the OIM and the one to be provisioned on the compute nodes. Accepted value: rhel. |
|
cluster_os_version string / required |
The OS version that will be provisioned on compute nodes. Accepted value: 10.0. |
|
repo_config string / required |
Controls how Omnia sets up and manages the local Pulp repository. In case of 'always', packages are downloaded and cached on OIM during local_repo.yml execution. In case of 'partial', packages are not pre-downloaded; OIM downloads from upstream URLs when needed. Accepted values: always, partial. Default: always. |
|
softwares list / elements=dict / required |
Array of software packages to be configured. |
|
name string / required |
Name of the software package to be configured./p> |
|
version string |
Specific version of the software package. If omitted, the default version is used. |
|
arch list / elements=string / required |
List of architectures for which this software package is applicable. Accepted values: x86_64, aarch64. |
|
slurm_custom list / elements=dict |
List of Slurm custom role names. Defines the roles used in Slurm cluster deployment. |
|
name string / required |
Role name. Accepted values: slurm_control_node, slurm_node, login_node, login_compiler_node. |
|
service_k8s list / elements=dict |
List of service Kubernetes role names. Defines the roles used in service K8s cluster deployment. |
|
name string / required |
Role name. Accepted values: service_kube_control_plane_first, service_kube_control_plane, service_kube_node. |
|
additional_packages list / elements=dict |
List of roles that receive additional packages. Combines both Slurm and K8s roles plus the base OS role. |
|
name string / required |
Role name. Accepted values: service_kube_control_plane_first, service_kube_control_plane, service_kube_node, slurm_control_node, slurm_node, login_node, login_compiler_node, os. |
Usage example¶
See Software Config Json for complete annotated examples covering Slurm-only, Slurm + K8s, and K8s-only scenarios.
{
"cluster_os_type": "rhel",
"cluster_os_version": "10.0",
"repo_config": "partial",
"softwares": [
{"name": "default_packages", "arch": ["x86_64","aarch64"]},
{"name": "admin_debug_packages", "arch": ["x86_64","aarch64"]},
{"name": "openldap", "arch": ["x86_64","aarch64"]},
{"name": "service_k8s","version": "1.35.1", "arch": ["x86_64"]},
{"name": "slurm_custom", "arch": ["x86_64","aarch64"]},
{"name": "csi_driver_powerscale", "version":"v2.17.0", "arch": ["x86_64"]},
{"name": "ldms", "arch": ["x86_64","aarch64"]},
{"name": "additional_packages", "arch": ["x86_64","aarch64"]}
],
"slurm_custom": [
{"name": "slurm_control_node"},
{"name": "slurm_node"},
{"name": "login_node"},
{"name": "login_compiler_node"}
],
"service_k8s": [
{"name": "service_kube_control_plane_first"},
{"name": "service_kube_control_plane"},
{"name": "service_kube_node"}
],
"additional_packages":[
{"name": "service_kube_control_plane_first"},
{"name": "service_kube_control_plane"},
{"name": "service_kube_node"},
{"name": "slurm_control_node"},
{"name": "slurm_node"},
{"name": "login_node"},
{"name": "login_compiler_node"},
{"name": "os"}
]
}
Note
- The
functional_group_namemust exactly match the value in theFUNCTIONAL_GROUP_NAMEcolumn of the PXE mapping CSV.
Info
- Software Config Json -- Complete sample files for different scenarios.
- PXE Mapping File -- PXE mapping CSV that defines functional groups.
- Local Repo Config -- Repository sources for these packages.