This repository contains a Power Architecture resource driver for use with the Dynamic Resource Allocation (DRA) feature of Kubernetes.
The driver facilitates access to:
- Nest Accelerator unit (NX) compression and decompression co-processors: NX is a non-core part of the Power processor, which provides a DEFLATE compliant (RFC1950, 1951, 1952) compression accelerator. This feature has a device driver in userspace
/dev/crypto/nx-gzip
which is shared among logical-partitions on the same systems, and by proxy containers in the logical partition.
As additional features are made available, the driver is to be expanded.
This project is based on dra-example-driver. This project is licensed under the Apache 2.0 License.
On an OpenShift Container Platform cluster, one must enable the DynamicResourceAllocation
FeatureGate
. To setup, go into the Cluster UI, Administration
-> CustomResourceDefinitions
-> FeatureGate
-> Instances
-> cluster
add spec.featureSet: TechPreviewNoUpgrade
You must have Power10 or higher logical partitions that are part of your cluster. It will not allocate /dev/crypto/nx-gzip
access. The system must have licensed the Power system feature active_mem_expansion_capable
.
You should also be using an OpenShift Container Platform 4.19+.
To use the kind cluster in the power arch machine, run the script to create the kind cluster with single worker node.
ARCH=arm64 make dev-setup
To install the code, use:
helm install \
--create-namespace \
--namespace power-dra-driver \
power-dra-driver \
deployments/helm/power-dra-driver
To install the code, use:
helm upgrade \
-n power-dra-driver \
--namespace power-dra-driver \
power-dra-driver \
deployments/helm/power-dra-driver
To uninstall the code, use:
helm uninstall \
power-dra-driver \
-n power-dra-driver
To delete the kind cluster created , run the script to delete it.
ARCH=arm64 make dev-teardown
All source files must include a Copyright and License header. The SPDX license header is preferred because it can be easily scanned.
If you would like to see the detailed LICENSE click here.
/*
* Copyright 2025 - IBM Corporation. All rights reserved
* SPDX-License-Identifier: Apache-2.0
*/
- Kubernetes: Dynamic Resource Allocation
- Kubernetes: Dynamic Resource Allocation example
- OpenShift Feature Gate: DynamicResourceAllocation
Enables a new API for requesting and sharing resources between pods and containers. This is an internal feature that most users do not need to interact with. (DynamicResourceAllocation)
OpenShift Docs are specific to a use-case
This code repository is based on kubernetes-sigs/dra-example-driver and extends APIs used in the example driver.
Is this a Red Hat or IBM supported solution?
This solution is used to demonstrate accessing the co-processors part of the IBM Power systems. It is a demonstration at this time.