Build Omnia core container images for deployment.
Build the Omnia core container:
./build_images.sh core core_tag=2.1 omnia_branch=v2.1.0.0That's it! The image will be available locally as omnia_core:2.1.
Podman must be installed.
Install Podman: podman.io/getting-started/installation
Note: Script supports Podman and Docker build tools (default: Podman)
# Build with specific Omnia tag (recommended)
./build_images.sh core omnia_branch=v2.1.0.0
# Build with release candidate (same core tag)
./build_images.sh core omnia_branch=v2.1.0.0-rc2
# Previous RC1 command (for reference)
# ./build_images.sh core core_tag=1.1 omnia_branch=v2.1.0.0-rc1
# Note: RC2 now also uses core_tag=2.1
# Build with specific Omnia branch and default tag
./build_images.sh core omnia_branch=main
# Build with default settings (uses main branch and core tag 2.1)
./build_images.sh coreRequired for core:
core_tag=<version>- Container image tag (default:2.1)- Rule: Use first 2 digits of Omnia version (e.g., v2.1.0.0 → core_tag=2.1)
omnia_branch=<tag|branch>- Omnia repo tag or branch name- Tag example:
v2.1.0.0(recommended for production) - Branch example:
main,pub/q1_dev,staging - Default:
main(if not specified)
- Tag example:
Find available versions:
- Omnia tags: https://github.com/dell/omnia/tags
- Omnia branches: https://github.com/dell/omnia/branches
Optional:
build_action=<load|push>- Load locally (default:load)build_tool=<podman|docker>- Build tool (default:podman)
After building, verify the image:
podman images | grep omnia_core
# Output: omnia_core 2.1 ...Then download and run omnia.sh to deploy:
# For tagged releases
wget https://raw.githubusercontent.com/dell/omnia/refs/tags/v2.1.0.0/omnia.sh
chmod +x omnia.sh
./omnia.sh --install
# For branches (e.g., main, pub/q1_dev)
wget https://raw.githubusercontent.com/dell/omnia/refs/heads/main/omnia.sh
chmod +x omnia.sh
./omnia.sh --installFor advanced usage (auth, telemetry, build-stream), see:
- ADVANCED_USAGE.md - Build multiple containers and advanced options
- TELEMETRY_CONTAINERS.md - iDRAC telemetry containers
Issue: Warning about default branch
⚠️ Warning: omnia_branch not specified, using default branch: main
Solution: Always specify omnia_branch for production builds.
Issue: Build fails Solution: Ensure Podman/Docker is running and you have internet access to pull base images.
The build_rpm.sh script creates LDMS producer RPM packages for HPC monitoring. It clones the OVIS repository and builds RPM packages in a Rocky Linux 10 container. Supports both x86_64 and aarch64 architectures - run on the respective platform to build for that architecture.
Ensure EPEL and AppStream repositories are configured and the following packages are installed:
sudo dnf install -y python3-devel python3-Cython./build_rpm.sh -v <LDMS_VERSION> -u <SLURM_REPO_URL> -n <SLURM_REPO_NAME>
# Or positional arguments:
./build_rpm.sh <SLURM_REPO_URL> <SLURM_REPO_NAME>-v, --version <version>- LDMS version to build (default:4.5.1)-u, --url <url>- SLURM repository URL for dependencies-n, --name <name>- SLURM repository name for RPM packaging-h, --help- Show help message
Build with default LDMS version (4.5.1):
./build_rpm.shBuild with specific LDMS version:
./build_rpm.sh -v 4.5.1Build with SLURM repository support:
./build_rpm.sh -v 4.5.1 -u https://example.com/slurm-repo -n x86_64_slurm_customBuild with positional arguments:
./build_rpm.sh https://example.com/slurm-repo x86_64_slurm_custom- Clones OVIS repository from GitHub (https://github.com/ovis-hpc/ovis.git)
- Uses specified LDMS version tag (default: v4.5.1)
- Sets
LDMS_REPOenvironment variable - Builds RPM in
RpmFile/ldms/build/directory - Runs
start_build_container.rockylinux10.bashin container
- SLURM repository parameters are optional but recommended for SLURM metrics
- Without SLURM repo, warning is shown but build continues
- Built RPMs are available in
RpmFile/ldms/build/directory - Requires Docker/Podman for container-based build
- Supports both x86_64 and aarch64 architectures
- Run this script on the respective platform to build for that architecture
For this project, uv is used for container Python package management. To update Python packages and the uv.lock file:
- Install uv:
pip install uv - Update pyproject.toml: Navigate to the container folder and update the pyproject.toml
- Update the lock file: From the same directory run
uv lock
For issues or questions, refer to the Omnia documentation.