Skip to content

IBM/power-dra-driver

Repository files navigation

Power Dynamic Resource Allocation Driver

This repository contains a Power Architecture resource driver for use with the Dynamic Resource Allocation (DRA) feature of Kubernetes.

The driver facilitates access to:

  1. 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.

Pre-Requisites

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+.

Kind cluster

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

Install

To install the code, use:

helm install \
  --create-namespace \
  --namespace power-dra-driver \
  power-dra-driver \
  deployments/helm/power-dra-driver

Upgrade

To install the code, use:

helm upgrade \
  -n power-dra-driver \
  --namespace power-dra-driver \
  power-dra-driver \
  deployments/helm/power-dra-driver

Uninstall

To uninstall the code, use:

helm uninstall \
    power-dra-driver \
    -n power-dra-driver

Delete the kind cluster

To delete the kind cluster created , run the script to delete it.

ARCH=arm64 make dev-teardown

License

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
 */

References

  1. Kubernetes: Dynamic Resource Allocation
  2. Kubernetes: Dynamic Resource Allocation example
  3. 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.

Support

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.

About

Power Dynamic Resource Driver provides access to Power Architecture features

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Contributors 6