This repository has been archived and moved to a new location:
🔗 New location: https://github.com/rh-ecosystem-edge/openshift-dpf
Please use the new repository for the latest updates, issues, and contributions.
Complete automation for deploying and managing NVIDIA DPF (Data Processing Framework) on OpenShift clusters.
openshift-dpf/
├── Makefile # Main orchestration Makefile
├── .env # Environment variables configuration
├── manifests/ # Manifests for all components
│ ├── cluster-installation/ # OpenShift/OVN cluster manifests
│ ├── dpf-installation/ # DPF operator manifests
│ ├── post-installation/ # Post-install configurations
│ └── worker-perfomance-configurations/ # Worker node performance tuning
├── scripts/ # Automation scripts
│ ├── env.sh # Environment variable loading
│ ├── utils.sh # Common utility functions
│ ├── cluster.sh # Cluster management functions
│ ├── manifests.sh # Manifest management functions
│ ├── tools.sh # Tool installation functions
│ ├── dpf.sh # DPF deployment functions
│ └── vm.sh # VM management functions
├── configuration_templates/ # Templates for configuration
└── README.md # Main project documentation
- OpenShift CLI (
oc) - Assisted Installer CLI (
aicli) - Helm
- Go (for NFD operator deployment)
- jq (for JSON processing)
- Access to Red Hat Console
- NVIDIA DPU hardware
- Required pull secrets:
- OpenShift pull secret (
openshift_pull.json) - DPF pull secret (
pull-secret.txt)- https://catalog.ngc.nvidia.com -> Setup -> Generate API Key
echo "$oauthtoken:<nvapi-key>" | base64- write following format to pull-secret.txt:
{"auths":{"nvcr.io":{"username":"$oauthtoken","password":"<nvapi-key>","auth":"<base64 of ($oauthtoken:<nvapi-key>)>"}
- OpenShift pull secret (
- Openshift offline token
- Create token via https://cloud.redhat.com/openshift/token
- Write token to ~/.aicli/offlinetoken.txt
- Verify with
aicli list clusters
This automation provides:
- OpenShift cluster creation with assisted installer
- Support for single node or multi-node clusters
- OVN networking with NVIDIA configuration
- OpenShift cert-manager deployment
- Support for VM creation and management
- DPF operator deployment
- SR-IOV operator configuration
- Node Feature Discovery (NFD) support
- Component configuration and validation
- Kamaji-based DPU cluster (default)
- Hypershift-based DPU cluster (optional)
- Clone the repository:
git clone https://github.com/yourusername/openshift-dpf.git
cd openshift-dpf-
Configure your environment:
- Copy the example environment file:
cp .env.example .env - Edit
.envto set your desired configuration values - Place your OpenShift pull secret in
openshift_pull.json - Place your DPF pull secret in
pull-secret.txt
- Copy the example environment file:
-
Run complete installation:
make allAll configuration options are now managed through the .env file. This provides a centralized, consistent way to configure the deployment.
The .env file contains sections for:
- Cluster Configuration
- Directory Structure
- Helm Configuration
- NFD Configuration
- Hypershift Configuration
- Network Configuration
- VM Configuration
- And more...
To customize your deployment, simply edit the values in the .env file.
# Edit .env file to set these values
CLUSTER_NAME=my-cluster
BASE_DOMAIN=my.domain
OPENSHIFT_VERSION=4.18.4Default values:
- CLUSTER_NAME: doca-cluster
- BASE_DOMAIN: okoyl.xyz
- OPENSHIFT_VERSION: 4.19.0-ec.3
By default, the automation uses Kamaji as the cluster manager. To use Hypershift instead:
# Edit .env file to set
DPF_CLUSTER_TYPE=hypershiftTo explicitly specify Kamaji (default behavior):
# Edit .env file to set
DPF_CLUSTER_TYPE=kamajiTo deploy Node Feature Discovery separately:
make deploy-nfdThe automation includes many additional targets for fine-grained control:
# View all available targets and configuration options
make help
# Create just the OpenShift cluster without DPF
make create-cluster cluster-install
# Deploy only DPF components on an existing cluster
make deploy-dpf
# Install Hypershift operator and create a hosted cluster
make install-hypershift create-hypershift-cluster
# Clean up resources
make clean-all- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
For issues and feature requests, please open an issue in the GitHub repository.