Input parameters for Local Repositories

  • Input all required values in input/software_config.json.

Parameters for Software Configuration

Parameter

Details

cluster_os_type

string

Required

  • The operating system running on the cluster (rhel, rocky, and ubuntu).

Default value: ubuntu.

cluster_os_version

string

Required

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

  • For RHEL, the accepted values are 8.6, 8.7, and 8.8.

  • For Rocky, the accepted values are 8.6, 8.7, and 8.8.

  • For Ubuntu, the accepted values are 20.04, 22.04.

  • Default value: 22.04

repo_config

string

Required

  • The type of offline configuration user needs.

  • When the value is set to always, Omnia creates a local repository/registry on the Control plane hosting all the packages/images required for the cluster.

  • When the value is set to partial, Omnia creates a local repository/registry on the Control plane hosting all the packages/images except those listed in the user_registry in input/local_repo_config.yml.

  • When the value is set to never, Omnia does not create a local repository/registry. All the packages/images are directly downloaded on the cluster.

Note

  • After local_repo.yml has run, the value of repo_config in input/software_config.json cannot be updated without running the control_plane_cleanup.yml script first.

  • Irrespective of the value of repo_config, all local repositories that are not available as images, debian packages, or RPMs will be downloaded and configured locally on the control plane. Additionally, AMD GPU drivers, ROCm drivers, CUDA, and OFED are downloaded by default.

  • Accepted values:

    • always

    • partial <- Default

    • never

softwares

JSON list

Required

  • A JSON list of required software and (optionally) the software revision.

  • The following software should be listed with a version in the list: BeeGFS, AMD GPU, Kubernetes, CUDA, OFED, BCM RoCE, UCX, and ROCm.

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

Note

The accepted names for software is taken from input/config/<cluster_os_type>/<cluster_os_version>/.

Below is a sample version of the file:

{
    "cluster_os_type": "ubuntu",
    "cluster_os_version": "22.04",
    "repo_config": "partial",
    "softwares": [
        {"name": "k8s", "version":"1.26.12"},
        {"name": "jupyter"},
        {"name": "openldap"},
        {"name": "kubeflow"},
        {"name": "beegfs", "version": "7.4.2"},
        {"name": "nfs"},
        {"name": "kserve"},
        {"name": "amdgpu", "version": "6.0"},
        {"name": "cuda", "version": "12.3.2"},
        {"name": "ofed", "version": "24.01-0.3.3.1"},
        {"name": "vllm"},
        {"name": "pytorch"},
        {"name": "tensorflow"},
        {"name": "bcm_roce", "version": "229.2.9.0"}
    ],

    "kserve": [
        {"name": "istio"},
        {"name": "cert_manager"},
        {"name": "knative"}
    ],
    "amdgpu": [
        {"name": "rocm", "version": "6.0" }
    ],
    "vllm": [
        {"name": "vllm_amd"},
        {"name": "vllm_nvidia"}
    ],
    "pytorch": [
        {"name": "pytorch_cpu"},
        {"name": "pytorch_amd"},
        {"name": "pytorch_nvidia"}
    ],
    "tensorflow": [
        {"name": "tensorflow_cpu"},
        {"name": "tensorflow_amd"},
        {"name": "tensorflow_nvidia"}
    ]

}

For a list of accepted values in softwares, go to input/config/<operating_system>/<operating_system_version> and view the list of JSON files available. The filenames present in this location (without the * .json extension) are a list of accepted software names. The repositories to be downloaded for each software are listed the corresponding JSON file. For example: For a cluster running Ubuntu 22.04, go to input/config/ubuntu/22.04/ and view the file list:

amdgpu.json
bcm_roce.json
beegfs.json
cuda.json
jupyter.json
k8s.json
kserve.json
kubeflow.json
nfs.json
ofed.json
openldap.json
pytorch.json
tensorflow.json
vllm.json

For a list of repositories (and their types) configured for amdgpu, view the amdgpu.json` file:

{
  "amdgpu": {
    "cluster": [
        {"package": "linux-headers-$(uname -r)", "type": "deb", "repo_name": "jammy"},
        {"package": "linux-modules-extra-$(uname -r)", "type": "deb", "repo_name": "jammy"},
        {"package": "amdgpu-dkms", "type": "deb", "repo_name": "amdgpu"}
    ]
  },
  "rocm": {
    "cluster": [
      {"package": "rocm-hip-sdk{{ rocm_version }}*", "type": "deb", "repo_name": "rocm"}
    ]
  }
}

Note

To configure a locally available repository that does not have a pre-defined json file, click here.

  • Input the required values in input/local_repo_config.yml.

Parameters for Local Repository Configuration

Parameter

Details

repo_store_path

string

Required

  • The intended file path for offline repository data.

  • Ensure the disk partition has enough space.

Default value: "/omnia_repo"

user_repo_url

JSON List

Optional

  • This variable accepts the repository urls of the user which contains the packages required for the cluster.

  • When repo_config is always, the given list will be configured on the control plane and packages required for cluster will be downloaded into a local repository.

  • When repo_config is partial, a local repository is created on the control plane containing packages that are not part of the user’s repository.

  • When repo_config is never, no local repository is created and packages are downloaded on all cluster nodes.

  • ‘url’ defines the baseurl for the repository.

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

  • Sample value: - {url: "http://crb.com/CRB/x86_64/os/",gpgkey: "http://crb.com/CRB/x86_64/os/RPM-GPG-KEY"}

user_registry

JSON List

Optional

  • This variable accepts the registry url along with port of the user which contains the images required for cluster.

  • When repo_config is always, the list given in user_registry will be configured on the control plane and packages required for cluster will be downloaded into a local repository. If the same repository is available in both the user_repo_url and the user_registry, the repository will be configured using the values in user_registry.

  • When repo_config is partial, a local registry is created on the control plane containing packages that are not part of the user_registry. Images listed in user_registry are directly configured as a mirror on compute nodes. Compute nodes are expected to connect to the URLs in the user_registry via http_proxy.

  • When repo_config is never, no local registry is created and packages/images are downloaded on all cluster nodes.

  • ‘host’ defines the URL and path to the registry.

  • ‘cert_path’ defines the absolute path where the security certificates for each registry. If this path is not provided, insecure registries are configured.

  • Sample value:

    - { host: 10.11.0.100:5001, cert_path: "/home/ca.crt" }
    - { host: registryhostname.registry.test, cert_path: "" }
    

os_repo_url

string

Optional

  • URL to a list of repositories to be configured for Ubuntu clusters. This value is required on Ubuntu clusters but ignored when the cluster runs RHEL or Rocky.

  • When the value of repo_config in input/local_repo_config.yml is set to always, the given os_repo_url will be mirrored on the control plane.

  • When the value of repo_config in input/local_repo_config.yml is set to partial or never, the given os_repo_url is configured via proxy on the compute nodes.

  • Sample value: http://in.archive.ubuntu.com/ubuntu

omnia_repo_url_rhel

JSON List

Required

  • A list of all the repo urls from where rpms will be downloaded for Omnia features on RHEL clusters.

  • ‘url’ defines the baseurl for the repository.

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

  • This value is not validated by Omnia. Any errors can cause Omnia to fail.

  • Ensure that all URLs listed below are reachable to the control plane.

Default value:

- { url: "https://download.docker.com/linux/centos/$releasever/$basearch/stable", gpgkey: "https://download.docker.com/linux/centos/gpg" }
- { url: "https://repo.radeon.com/rocm/rhel8/{{ rocm_version }}/main", gpgkey: "https://repo.radeon.com/rocm/rocm.gpg.key" }
- { url: "https://download.fedoraproject.org/pub/epel/8/Everything/$basearch", gpgkey: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8" }
- { url: "https://repo.radeon.com/amdgpu/{{ amdgpu_version }}/rhel/{{ cluster_os_version }}/main/x86_64", gpgkey: "https://repo.radeon.com/rocm/rocm.gpg.key" }
- { url: "https://www.beegfs.io/release/beegfs_{{beegfs_version}}/dists/rhel8", gpgkey: "https://www.beegfs.io/release/beegfs_{{beegfs_version}}/gpg/GPG-KEY-beegfs" }
- { url: "https://yum.repos.intel.com/oneapi", gpgkey: "https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB" }
- { url: "https://ltb-project.org/rpm/openldap25/$releasever/$basearch", gpgkey: ""}

omnia_repo_url_rocky

JSON List

Required

  • A list of all the repo urls from where rpms will be downloaded for Omnia features on Rocky clusters.

  • ‘url’ defines the baseurl for the repository.

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

  • This value is not validated by Omnia. Any errors can cause Omnia to fail.

  • Ensure that all URLs listed below are reachable to the control plane.

Default value:

- { url: "https://download.docker.com/linux/centos/$releasever/$basearch/stable", gpgkey: "https://download.docker.com/linux/centos/gpg" }
- { url: "https://repo.radeon.com/rocm/rhel8/{{ rocm_version }}/main", gpgkey: "https://repo.radeon.com/rocm/rocm.gpg.key" }
- { url: "https://download.fedoraproject.org/pub/epel/8/Everything/$basearch", gpgkey: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8" }
- { url: "https://repo.radeon.com/amdgpu/{{ amdgpu_version }}/rhel/{{ cluster_os_version }}/main/x86_64", gpgkey: "https://repo.radeon.com/rocm/rocm.gpg.key" }
- { url: "https://www.beegfs.io/release/beegfs_{{beegfs_version}}/dists/rhel8", gpgkey: "https://www.beegfs.io/release/beegfs_{{beegfs_version}}/gpg/GPG-KEY-beegfs" }
- { url: "https://yum.repos.intel.com/oneapi", gpgkey: "https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB" }
- { url: "https://ltb-project.org/rpm/openldap25/$releasever/$basearch", gpgkey: ""}
- { url: "http://dl.rockylinux.org/$contentdir/$releasever/PowerTools/$basearch/os/", gpgkey: ""}

omnia_repo_url_ubuntu

JSON List

Required

  • A list of all the repo urls from where rpms will be downloaded for Omnia features on Ubuntu clusters.

  • ‘url’ defines the baseurl for the repository.

  • ‘gpgkey’ defines gpgkey for the repository. If ‘gpgkey’ is omitted, the repository will be marked as “trusted”.

  • On clusters running Ubuntu, if gpgkeys are not available, public keys are accepted in place of gpgkeys. However, the field public key cannot be left blank.

  • This value is not validated by Omnia. Any errors can cause Omnia to fail.

  • Ensure that all URLs listed below are reachable to the control plane.

Default value:

- { url: "https://download.docker.com/linux/ubuntu {{ os_release }} stable", gpgkey: "https://download.docker.com/linux/ubuntu/gpg" }
- { url: "https://repo.radeon.com/rocm/apt/{{ rocm_version }} {{ os_release }} main", gpgkey: "https://repo.radeon.com/rocm/rocm.gpg.key" }
- { url: "https://www.beegfs.io/release/beegfs_{{beegfs_version}} {{ os_release }} non-free", gpgkey: "https://www.beegfs.io/release/beegfs_{{beegfs_version}}/gpg/GPG-KEY-beegfs" }
- { url: "https://repo.radeon.com/amdgpu/{{ amdgpu_version }}/ubuntu {{ os_release }} main", gpgkey: "https://repo.radeon.com/rocm/rocm.gpg.key" }
- { url: "https://ltb-project.org/debian/openldap25/jammy jammy main", publickey: "https://ltb-project.org/documentation/_static/RPM-GPG-KEY-LTB-project" }
- { url: "https://nvidia.github.io/libnvidia-container/stable/deb/amd64 /", gpgkey: "https://nvidia.github.io/libnvidia-container/gpgkey" }
- { url: "http://ppa.launchpad.net/deadsnakes/ppa/ubuntu {{ os_release }} main", gpgkey: "" }
- { url: "https://a2o.github.io/snoopy-packages/repo/ubuntu {{ os_release }} stable", publickey: "https://a2o.github.io/snoopy-packages/snoopy-packages-key.pub" }
  • Input docker_username and docker_password in input/provision_config_credentials.yml to avoid image pullback errors.

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