title | url |
---|---|
Container Orchestrated Device Working Group Charter |
wgs/cod/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).
The Container Orchestrated Workging Group aims to improve the support of Devices in the cloud native space.
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).
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.
(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
Container Device Interface Slides
- TAG Runtime
- Every other Tuesday at 7am PST. Convert to your timezone.
- Link to Google Doc Notes
- Urvashi Mohnani (@umohnani8)
- Ed Bartosh
- Ukri Niemimuukko
- Marek Counts
- Mike Brown, IBM
- Mrunal Patel
- Kevin Klues (@klueska), NVIDIA
- Renaud Gaubert (@RenaudWasTaken), NVIDIA
#tag-runtime
https://lists.cncf.io/g/cncf-tag-runtime
- Container Device Interface Slides
- Networking Plumbing Working Group - NPWG