Open Source — Apache 2.0 Licensed

Deploy Containers to
Cisco Network Devices

A Virtual Kubelet provider that enables Kubernetes to schedule container workloads on Cisco Catalyst series switches and IOS-XE devices with App-Hosting capabilities.

Quick Install
$ git clone https://github.com/cisco-open/cisco-virtual-kubelet.git
$ docker build -t <registry>/cisco-vk:dev .
$ helm install cvk ./charts/cisco-virtual-kubelet

Make Edge Computing
Simple and Powerful

Built on the Virtual Kubelet framework, Cisco Virtual Kubelet brings cloud-native container orchestration to your network infrastructure.

Native Kubernetes Integration

Deploy containers to Cisco devices using standard kubectl commands. No new tools to learn — just your familiar Kubernetes workflow.

Driver-Based Architecture

Extensible driver pattern with IOS-XE (Catalyst 8000V, Catalyst 9000) available today. Add new device types through a clean driver interface.

Lifecycle & Recovery

Full pod lifecycle via RESTCONF with an automatic recovery loop that reprocesses stuck pods using exponential backoff.

Observability & Topology

Prometheus metrics for device and interface health, plus OpenTelemetry topology traces with CDP/OSPF neighbors and hosted apps.

Flexible Networking

DHCP or static allocation across VirtualPortGroup, AppGigabitEthernet (access and trunk with VLAN), and Management interfaces.

Secure by Design

Device credentials injected from Kubernetes Secrets via secretKeyRef. Passwords never touch ConfigMaps or etcd in plaintext.

How It Works

The provider bridges Kubernetes and Cisco network devices, enabling seamless container deployment via RESTCONF APIs.

Kubernetes API Server
Standard Kubernetes control plane
VK Provider
Device 1
VK Provider
Device 2
VK Provider
Device N
RESTCONF
RESTCONF
RESTCONF
Catalyst 8000V
Container
192.0.2.24
Catalyst 9000
Container
192.0.2.25
IOS-XE Device
Container
192.0.2.x
01

Schedule with kubectl

A CiscoDevice custom resource registers each device as a virtual node. Pods are scheduled there using standard kubectl — no new tools or workflows.

02

RESTCONF Reconciliation

The driver translates pod specs into IOS-XE app-hosting config and reconciles state via RESTCONF. A recovery loop reprocesses stuck pods automatically.

03

Observe at the Edge

Prometheus metrics, OpenTelemetry topology traces, and cisco.io/* node annotations surface device health, CDP/OSPF neighbors, and hosted apps.

Get Started

Deploy your first container to a Cisco device in minutes. Follow these steps to set up the Cisco Virtual Kubelet provider.

Prerequisites

Kubernetes 1.28+
Any distribution
Helm v3 + Docker
To install the chart and build the image
Container Registry
Reachable from the cluster
Cisco IOS-XE Device
Cat 8000V or Cat 9000
1# The image isn't on a public registry yet — build it locally.
2git clone https://github.com/cisco-open/cisco-virtual-kubelet.git
3cd cisco-virtual-kubelet
4
5docker build -t <your-registry>/cisco-vk:dev .
6docker push <your-registry>/cisco-vk:dev
7
8# Install the controller with Helm (chart lives in-repo)
9helm install cvk ./charts/cisco-virtual-kubelet \
10 --namespace cvk-system --create-namespace \
11 --set image.repository=<your-registry>/cisco-vk \
12 --set image.tag=dev
13
14# Verify the CRD and controller are up
15kubectl get crd ciscodevices.cisco.vk
16kubectl -n cvk-system get pods

Building the Community Together

Join the community and interact with maintainers and other users. Contributions are welcome — help shape the future of edge computing with Kubernetes.

Want to Contribute?

We welcome contributions of all kinds — whether it's new features, bug fixes, documentation improvements, or new driver implementations for additional Cisco device types.