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.
$ git clone https://github.com/cisco-open/cisco-virtual-kubelet.git
$ docker build -t <registry>/cisco-vk:dev .
$ helm install cvk ./charts/cisco-virtual-kubeletMake 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.
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.
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.
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
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 up15kubectl 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.
GitHub Repository
Star the repo, explore the code, and contribute to the project.
View Repository →Report Issues
Found a bug or have a feature request? Open an issue on GitHub.
Open Issue →Slack Community
Join the #virtual-kubelet channel in Kubernetes Slack for discussions.
Join Slack →Cisco DevNet
Access developer resources, documentation, and Cisco community support.
Visit DevNet →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.