Add Additional Packages
To download and deploy additional software packages and container images using Omnia local repositories, update the required Omnia input files and execute the playbooks.
Configure Additional Container Images from User Registry to Local Repository
Omnia supports configuring additional container images from specified user registries to Omnia Local Repository, so that these images are available and can be pulled by Service Kubernetes Cluster nodes as per requirement. User registries may be hosted either on OIM or on an external server, and both HTTP and HTTPS registries are supported.
To view the steps to set up an HTTP user registry, see Set Up an HTTP User Registry.
To view the steps to prepare an HTTPS user registry, see Set Up an HTTPS User Registry.
After the registry is ready, mention the inputs in local_repo_config.yml, see Input Parameters for Local Repositories.
Update software_config.json
Parameter |
Mandatory/Optional |
Details |
|---|---|---|
cluster_os_type |
Mandatory |
|
cluster_os_version |
Mandatory |
|
repo_config |
Mandatory |
Note The following packages will always be downloaded from the local Pulp repository, regardless of the value of
|
softwares |
Mandatory |
Note The accepted names for software are taken from |
slurm_custom |
Mandatory |
Specify the functional roles of the Slurm nodes, login and login compiler on which basic software packages must be deployed. |
service_k8s |
Mandatory |
Specify the functional roles of the Service Kubernetes Cluster nodes on which basic software packages must be deployed. |
additional_packages |
Optional |
Specify the functional roles of the cluster nodes on which additional software packages must be deployed. |
Open
/opt/omnia/input/project_default/software_config.json.Under
softwares, add theadditional_packagesentry. Ensure the architecture list matches your cluster:{"name": "additional_packages", "arch": ["x86_64","aarch64"]}
Save the file.
The following is a sample software_config.json snippet with additional_packages enabled:
{
"cluster_os_type": "rhel",
"cluster_os_version": "10.0",
"repo_config": "always",
"softwares": [
{"name": "default_packages", "arch": ["x86_64","aarch64"]},
{"name": "additional_packages", "arch": ["x86_64","aarch64"]}
],
"additional_packages": [
{"name": "slurm_control_node"},
{"name": "slurm_node"},
{"name": "login_node"},
{"name": "login_compiler_node"},
{"name": "service_kube_control_plane"},
{"name": "service_kube_node"}
]
}
Update additional_packages.json
Parameter |
Details |
Supported Package Type |
|---|---|---|
additional_packages |
|
|
service_kube_control_plane |
|
|
service_kube_node |
|
|
slurm_control_node |
|
|
slurm_node |
|
|
login_node |
|
|
login_compiler_node |
|
|
Note
All container images specified in additional_packages.json under any given subgroup are configured in Omnia local repository and can be pulled on all Service Kubernetes Cluster nodes.
Update the
additional_packages.jsonfile available at/opt/omnia/input/project_default/config/<architecture>/rhel/10.0/with the required packages/images.Ensure you provide the correct package type (
rpmorimage) and the repository name/tag/digest, based on your requirement.
The following is a sample additional_packages.json file:
{
"additional_packages": {
"cluster": [
{ "package": "fuse-overlayfs", "type": "rpm", "repo_name": "x86_64_appstream" },
{ "package": "python3-PyMySQL", "type": "rpm", "repo_name": "x86_64_appstream" },
{ "package": "sssd", "type": "rpm", "repo_name": "x86_64_baseos" },
{ "package": "oddjob-mkhomedir", "type": "rpm", "repo_name": "x86_64_appstream" },
{ "package": "quay.io/strimzi/kafka-bridge", "type": "image", "tag": "0.33.1" },
{ "package": "registry.k8s.io/pause", "type": "image", "digest": "sha256:7031c1b283388c2c47cc389c74e7a6a1f91e3c23f7f9c2d9e25f7c8b1a2d3e4f" }
{ "package": "172.16.0.254:7000/ubuntu/squid", "type": "image", "tag": "latest" }
]
}
}
Architecture Support Guidelines
Note
The additional_packages feature has architecture-specific functional group support. Users must configure both software_config.json and the architecture-specific additional_packages.json files according to the supported groups for their target architecture.
Supported Functional Groups by Architecture:
x86_64:
slurm_control_node,slurm_node,login_node,login_compiler_node,service_kube_control_plane,service_kube_control_plane_first,service_kube_nodeaarch64:
slurm_node,login_node,login_compiler_node
Configuration Steps:
Edit ``software_config.json``: Define the
additional_packagesentry with the desired functional groups and specify the appropriate architecture(s) in thearchfield.Edit architecture-specific JSON files: Update the corresponding architecture-specific JSON files located at:
/opt/omnia/input/<project_name>/config/x86_64/rhel/<version>/additional_packages.json/opt/omnia/input/<project_name>/config/aarch64/rhel/<version>/additional_packages.json
Ensure these files contain only the functional groups that are supported for that architecture.
Kubernetes-related functional groups (
service_kube_*) andslurm_control_nodeare only supported on x86_64 architecture.The architecture-specific
additional_packages.jsonfiles must include anadditional_packagesparent key and contain only supported functional groups for that architecture.Declare only supported functional groups for each architecture in both
software_config.jsonand the architecture-specific JSON files.Validation logs warnings (not errors) for unsupported groups and continues execution.
Review validation logs at
/opt/omnia/log/core/playbooks/validation_omnia_<project_name>.logfor configuration warnings.
Download packages/images to the Pulp container
After updating the input files, execute the local_repo.yml playbook from inside the omnia_core container to download packages and container images to the Pulp container:
ssh omnia_core
cd /omnia/local_repo
ansible-playbook local_repo.yml
For more information about executing the playbook, see Execute the Local Repo Playbook.
If you have any feedback about Omnia documentation, please reach out at omnia.readme@dell.com.