Skip to content

Releases: intel/intel-device-plugins-for-kubernetes

Intel Device Plugins for Kubernetes v0.24.1

17 Oct 04:41
aec8aa2
Compare
Choose a tag to compare

Release notes

SGX

In #850 we dropped the deprecated /dev/sgx/ hostpath mount which made the udev created symlinks to /dev/sgx_* device nodes available to containers. v0.25.0 will be the first release without the automatic backwards compatibility. In #1141 we workarounded a kubelet issue with the SGX plugin when TopologyManager was enabled. v0.24.1 is released with #1141 backported for users who cannot jump to v0.25.0.

Intel Device Plugins for Kubernetes v0.24.0

09 May 13:38
52e87db
Compare
Choose a tag to compare

Release notes

Highlights

The release adds new plugin for Intel Analytics Accelerator (IAA) device. The functionality is on part with other plugins: kustomize and IaaDevicePlugin controller based deployments, and sample Dockerfiles.

Added annotations parameter to the NewDeviceInfo() API. This is a breaking change for users using pkg/deviceplugin (#873).

Generic

  • Upgraded Kubernetes API to v1.24 level (#995).

Images

  • Updated Golang build images to Go 1.18 (#923).
  • Added intel-iaa-plugin and intel-qat-initcontainer images.

Operator

  • Added support for seamless upgrades (#857).
  • Harmonized nodeSelector constraints usage in controllers (#871).
  • Implemented Helm chart to install the operator (#981).

GPU

  • Added gpu-numbers label to support nodes with large number of GPUs (#854).
  • Added pci-groups label to group GPUs based on their PCI addresses for group level control (#854).
  • Added numa-gpu-map label to indicate GPU's NUMA zone (#937).
  • Added support for GAS' container-tiles annotation to dedicate tiles to containers via env variable (#935).
  • Changed allocation logic to leverage GetPreferredAllocation when resource manager is enabled ((#935).

SGX

  • No updates.

DSA

  • Improved support for configuring DSA work-queues using accel-config (#819).

IAA

  • New intel-iaa-plugin and IaaDevicePlugin CRD (#911).
  • Improved support for configuring IAA work-queues using accel-config (#819).

FPGA

  • Fixed FPGA admissionwebook to be idempotent (#863).
  • Updated opae-nlb-demo to use libjson-c 5.0 (#904).

QAT

  • Added initImage to QatDevicePlugin CRD and intel-qat-initcontainer image to enable SR-IOV (#898).
  • Implemented preferredAllocation policies for QAT device selection (#884).
  • Split qat.intel.com/generic resources to separate crypto and compression resources on QAT Gen4 platforms (#700).
  • Disabled -mode kernel usage on QAT Gen4 platforms (#980).

VPU

  • No updates.

DLB

  • No updates.

Intel Device Plugins for Kubernetes v0.23.0

23 Dec 16:57
cdf4905
Compare
Choose a tag to compare

Release notes

Highlights

The release adds new plugin for Intel Dynamic LoadBalancer device. The functionality is on part with other plugins: kustomize and DlbDevicePlugin controller based deployments, e2e tests and sample Dockerfiles.

The release also adds improved DSA device provisioning. With an opt-in initContainer cluster admins can setup per-node DSA device configurations using accel-config tool and json templates via ConfigMaps.

Generic

  • Upgraded Kubernetes API to v1.23 level (#788)
  • Added wsl linter along with code fixes for the findings (#807)
  • Moved to Kubernetes custom resource definition (CRD) v1 API only (#730)

Images

  • Updated Golang build images to Go 1.17 (#724)
  • Added intel-dlb-plugin and intel-idxd-config-initcontainer images.

Operator

  • Moved to go:embed to generate controller DaemonSet objects (#747)
  • Harmonized nodeSelector constraints usage in controllers (#764)

GPU

  • Implemented preferredAllocation policies for GPU device selection (#742)
  • Updated GPU labels in NFD hook to adapt to the latest DRM changes (#802)
  • Documented a workaround with QSV and VA-API libraries in multi-GPU scenarios (#798)

SGX

  • Fixed SGX admission webhook mutations when aesmd volumeMounts were already present in pods(#810, #813)
  • Fixed SGX feature labeling when SGX CPUID bits were present but SGX was not enabled in BIOS (#766)

DSA

  • Improved support for configuring DSA work-queues using accel-config from an InitContainer with configMaps (#761)

FPGA

  • No updates.

QAT

  • Reworked device binding to address issues with the latest kernels (#809)
  • Updated default deployment flags (#754)

VPU

  • Added support for 4fc0 and 4fc1 PCI devices (#752)

DLB

  • Added new plugin for Intel Dynamic Load Balancer device (#733)
  • Added DlbDevicePlugin controller to operator (#753)
  • Added envtest and e2e tests for DLB (#760, #770))

Intel Device Plugins for Kubernetes v0.22.0

01 Oct 13:54
5840daf
Compare
Choose a tag to compare

Release notes

Generic

  • Upgraded Kubernetes API to v1.22 level
  • Updated/added new Go linters along with code fixes for the findings: revive, goerr113, govet/fieldalignment (#678, #685, #709)
  • Added NewDeviceInfoWithTopologyHints() API to device plugins framework (pkg/deviceplugin) to create DeviceInfo with custom topology hints (#679)

Images

  • Moved opae-nlb-demo and intel-vpu-plugin images to use Debian unstable (#696, #717)
  • Changed image builds to verify SHA256 sums integrity for downloaded .tar.gz. files ((#701)
  • Updated Golang build images from buster to bullseye (#718)

Operator

  • Changed QAT controller to copy CR annotations to DaemonSet/PodSpec annotations. (#710)

GPU

  • Updated NFD hook's GPU memory reading logic (#707)

SGX

  • Added e2e tests for SGX admission webhook (#682)

DSA

  • Added initial support for configuring DSA work-queues using accel-config from an InitContainer (both via kustomize and via DsaDevicePlugin CR with the operator).

FPGA

  • Updated mappings collection and improved documentation (#669, #675)

QAT

  • Enabled 4xxvf by default (#714)

VPU

  • No updates

Limitations

  • DSA work-queue provisioning uses a hard-coded "balanced" default configuration. Future work (#704) will make it easier to provide custom work-queue configuration files.

Intel Device Plugins for Kubernetes v0.21.0

16 Jun 13:46
9a5c995
Compare
Choose a tag to compare

Release notes

Generic

  • Upgraded Kubernetes API to v1.21 level
  • Moved to Go 1.16 and cleaned-up io/util which is now deprecated starting with Go 1.16 (#630)
  • Added Allocate interface to device plugins framework (pkg/deviceplugin) to allow individual plugins to implement their own Allocate logic
  • Moved device plugin container images to use distroless/static base image and made Go builds static. (#635, #636)

Operator

  • Added a configuration option to allow watching only selected devices' CRDs. (#599)

GPU

  • Optional fractional resource management support for k8s extended resources (#638)
  • Optional monitoring resource which allows access to all GPUs of the node (#622, #628)
  • Basic SR-IOV support (skips PF if VF is present for the GPU)

SGX

  • Added a separate SGX admission webhook image (#603)

DSA

  • No updates

FPGA

  • Dropped the check for 0x8086 vendor to allow non-Intel devices that are Intel FPGA based use the plugin (#621)

QAT

  • Renamed wrong c4xxvf to c4xxxvf in plugin parameters and QatDevicePlugin CRD (#647)

VPU

  • Added support for Keem Bay (#634)

Bug fixes

  • Fixed image name validation failure for QAT when registry hostname:port is specified (#605)
  • Fixed driver (un)binding failure when the QAT VF device was not bound to any driver (#644)

Intel Device Plugins for Kubernetes v0.20.0

31 Mar 16:06
8e6fe41
Compare
Choose a tag to compare

Release notes

Generic

  • Upgraded Kubernetes API to v1.20 level and klog v2.4.0
  • Cleaned up inclusive language and renamed default branch from master to main
  • Moved all admission|admissionregistration|apiextensions|rbac.authorization.k8s.io to v1 kubernetes APIs (#489)
  • Added getPreferredAllocation support to device plugins framework (pkg/deviceplugin) (#535, #538)
  • Documented "new device plugins checklist" for developers (#520)

Operator

  • Moved xDevicePlugin custom resource definitions (CRDs) to cluster scope (#557)
  • Added DsaDevicePlugin CRD and controller (#553)
  • Released Intel Device Plugin Operator to operatorhub.io

GPU

  • Added tile count label to NFD source hook (#596)

SGX

  • Added implementation of EPC extended resource advertiser and NFD-less deployment (#550)
  • Updated SGX SDK/DCAP versions (#569)

DSA

  • Added new device plugin for Intel Data Streaming Accelerator (DSA) device (#494)

FPGA

  • Moved GetAPIVersion call out of NewPort and NewFME (#497)

QAT

  • Added support for 4xxx (Gen4) and c4xxx devices (#451)
  • Documented vfio-pci setup for QAT 1.x devices (#517)

VPU

  • No updates

Bug fixes

  • Fixed image name validation failure when registry hostname:port is specified (#605)

Intel Device Plugins for Kubernetes v0.19.0

20 Nov 16:08
2edd51e
Compare
Choose a tag to compare

Release Notes

Generic

  • Finalized Intel Device Plugin Operator. The operator watches plugin/device specific CRDs and controls the plugins' daemonset deployments. GpuDevicePlugin, FpgaDevicePlugin, SgxDevicePlugin and QatDevicePlugin are released as v1 APIs using k8s CRD v1 API.
  • Upgraded Kubernetes API to v1.19 level (#493)
  • Added tooling to publish HTML documentation on Github Pages (#468)
  • Enabled more golangci-lint linters: exportloopref, prealloc, scopelint, errcheck, and staticcheck.

SGX

  • Added an SGX device plugin, SGX EPC extended resource registration, and a mutating webhook that mutates and validates Pod specifications to simplify user API to add the right settings for attestation and Kata containers SGX based sandboxes.
  • Added SGX e2e selftests.
  • Added SGX SDK and SGX DCAP sample Dockerfiles and a demo screencast that runs SGX DCAP ECDSA Quote Generation in Kubernetes

FPGA

  • Added support for FPGA SR-IOV
  • Added Operator for FPGA
  • Upgraded OPAE release to 1.5.0-2 (#459)

GPU

  • Added an initContainer that installs a node-feature-discovery GPU feature source
  • Optimized TopologyHint calculation for shared devices

QAT:

  • Added a kustomization overlay to enable QAT SR-IOV in an InitContainer (#455 )
  • Upgraded QAT and QAT Engine releases to their latest versions

VPU

  • Updated gousb dependency to v1.1.0

Bug fixes

  • FPGA SRIO-V is not supported by the FPGA device plugin (#372)
  • crypto-perf image fails on kernels with CVE-2020-12888 (#415)

Intel Device Plugins for Kubernetes v0.18.0

03 Jul 11:14
0e8bea8
Compare
Choose a tag to compare

Release Notes

Generic

  • Added the first version of the device Operator. The operator watches plugin/device specific CRDs and controls the plugins' daemonset deployments. Initially, only GpuDevicePlugin and QatDevicePlugin are implemented with other devices to follow
    in the following releases.
  • Upgraded Kubernetes API to v1.18 level (#317)
  • Moved to Kubernetes klog based logging (#323)
  • Improved Go unit test coverage to 80+% in all plugins
  • Moved golangci-lint linter checks

FPGA

  • Refactored FPGA admission webhook to be "modeless" to serve heterogeneous FPGA plugins mode (af/region) configuration. Previously, the webhook's mode needed to match to the mode the FPGA plugin was running in (#301)
  • Modified AcceleratedFunction CRDs (v2 API) to contain info on the hardware the accelerated function is intended to run on (interface ID) and the required mode of the FPGA plugin.
  • Finalized kustomization changes for FPGA deployments. With the changes, it is possible to deploy FPGA using kubectl apply directly without needing to clone the repository to run setup scripts.
  • Implemented e2e tests for FPGA.

QAT

  • Added a kustomization overlay to deploy QAT plugin without Apparmor profile (#381)
  • Fixed UIO mounts (#351)

GPU

  • no changes

VPU

  • no changes

Known issues

  • crypto-perf image fails on kernels with CVE-2020-12888 (#415)
  • FPGA SRIO-V is not supportted by the FPGA device plugin (#372)

Intel Device Plugins for Kubernetes v0.17.0

06 Mar 09:51
8267074
Compare
Choose a tag to compare

Release Notes

Generic

  • Added Kubernetes Topology Manager hints from all plugins (#250)
  • Added automated testing based on Kubernetes e2e framework (#253)
  • Added Kustomization to all plugin deployments (#254)
  • Upgraded Kubernetes API to v1.17 level
  • Updated container images in Intel DockerHub (0.17.0 tag)
  • Revisited all documentation to improve user experience

GPU

  • Fixed error handling in cases where i915 hardware was not present or the driver was not available (#230, #260)

FPGA

  • Updated to OPAE 1.4.0 release (#252)

VPU

  • Added new VPU device plugin to support Intel VCAC-A and Mustang V-100 devices
  • Added an OpenVINO sample application that runs inference jobs using VPU plugin resources

Intel Device Plugins for Kubernetes v0.15.0

11 Sep 16:53
@kad kad
bfbf398
Compare
Choose a tag to compare

Release Notes

Generic

  • Switched to "go mod" and Go 1.12+
  • Upgraded Kubernetes API to v1.15 level
  • Device plugin components and some of the demos with corresponding container images are now published to Intel DockerHub

GPU

  • Inform user that plugin is running on the host without Intel GPUs

FPGA

  • Support for upstream DFL FPGA drivers (Linux 5.2+) and out-of-tree Intel FPGA kernel drivers
  • Dropped dependency on OPAE tools for bitstream and FPGA handling
  • Dropped dependency on RTE tarball in FPGA OCI hook init container: simplified deployments
  • Fixed support for multiple FPGA cards on the same node
  • OPAE demo upgraded to OPAE SDK 1.3.2-1
  • Updated example mappings with firmware IDs for Intel PAC with Intel Arria® 10 GX FPGA and Intel FPGA PAC D5005

QAT

  • Validated on Linux upstream (Linux 5.x) QAT/VFIO-PCI drivers
  • DPDK crypto-perf/compress-perf test cases with kustomize based deployments
  • Improved documentation