Container Orchestrated Device Working Group Charter
COD, the Container Orchestrated
Device Working Group, is a small group formed by passionate Container Runtime
Maintainers and Device Vendors looking to solve many of the challenges Devices face in
the cloud native space.
In today’s cloud native space, the support for Third Party
Devices such as FPGAs, GPUs and others is fragmented, uneven and inconsistent. For
example:
Kubernetes supports Device Plugins
Nomad has its own concept of Device
Plugins
Docker has an in tree plugin mechanism
Podman has a concept of hooks
LXC has
its own concept of hooks
...
From a user's perspective, the support for devices is
widely different from one runtime to another and often requires painful setup and
configuration.
Users also face the fact that container orchestrators also implement
plugins for devices, leading to a different deployment story and level of support than
they have at the runtime level.
From a vendor’s perspective, each plugin mechanism has
a different set of capabilities leading plugin authors to either have to re-implement
their plugins (leading to maintainability hell), resort to hacks or simply not support
runtimes they should easily be able to support (e.g: Podman support but no Docker
support).
Goal
The Container Orchestrated Workging Group aims to improve the support of
Devices in the cloud native space.
Projects
The Container Device Interface (CDI) is the
first project the group focuses on and is a specification, for container runtimes, to
support third party devices through a commonly understood plugin system (based on the
CNI model).
Concrete Deliverables
The main deliverable for CDI is a specification that
runtimes can implement to enable containers to become device aware.
A secondary
deliverable is a golang interface, with a package that can be re-used to merge the
specification as well as a validation schema.
Target User Stories
(Consistent UX) As a
user, my experience across runtimes should be fairly consistent
(Standard Interface) As
a plugin author, I should be focusing on my plugin’s features not adding support for
similar runtimes
(Simple Model) As a cluster or system administrator, my experience
installing plugins should be simple (e.g: run a container, install a package, deploy a
pod, …)
(Ease of Deployment) Solve the difficulties faced by users in the cloud-native
space
(Consistency) As a user, my experience interacting with runtimes should be fairly
consistent
Slides
Container Device Interface Slides
General Information
Stakeholder
TAG
TAG Runtime
Meetings
Every other Tuesday at 7am PST. Convert to your timezone.
Link
to Google Doc Notes
WG Chairs
Alexander Kanevskiy (@kad), Intel
Evan Lezar (@elezar),
NVIDIA
WG Members
Urvashi Mohnani (@umohnani8)
Ed Bartosh
Ukri Niemimuukko
Marek
Counts
Mike Brown, IBM
Mrunal Patel
Kevin Klues (@klueska), NVIDIA
WG Emeretus
chair
Renaud Gaubert (@RenaudWasTaken), NVIDIA
Slack
#tag-runtime
Mailing
List
//lists.cncf.io/g/cncf-tag-runtime
Related Information