{"id":26686417,"url":"https://github.com/anza-labs/kubelet-device-plugins","last_synced_at":"2026-02-24T12:16:27.002Z","repository":{"id":282866911,"uuid":"949885023","full_name":"anza-labs/kubelet-device-plugins","owner":"anza-labs","description":"Minimal device plugins integrating linux devices into Kubernetes.","archived":false,"fork":false,"pushed_at":"2026-02-12T23:43:41.000Z","size":297,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-13T01:49:40.776Z","etag":null,"topics":["hacktoberfest","kubelet","kvm","tap","tun"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anza-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-17T09:46:37.000Z","updated_at":"2026-02-12T18:07:48.000Z","dependencies_parsed_at":"2025-12-30T15:08:43.948Z","dependency_job_id":null,"html_url":"https://github.com/anza-labs/kubelet-device-plugins","commit_stats":null,"previous_names":["anza-labs/kubelet-device-plugins"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/anza-labs/kubelet-device-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anza-labs%2Fkubelet-device-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anza-labs%2Fkubelet-device-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anza-labs%2Fkubelet-device-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anza-labs%2Fkubelet-device-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anza-labs","download_url":"https://codeload.github.com/anza-labs/kubelet-device-plugins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anza-labs%2Fkubelet-device-plugins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29781952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T10:45:18.109Z","status":"ssl_error","status_checked_at":"2026-02-24T10:45:09.911Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","kubelet","kvm","tap","tun"],"created_at":"2025-03-26T11:18:28.290Z","updated_at":"2026-02-24T12:16:26.972Z","avatar_url":"https://github.com/anza-labs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kubelet-device-plugins\n\n[![GitHub License](https://img.shields.io/github/license/anza-labs/kubelet-device-plugins)][license]\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](code_of_conduct.md)\n[![GitHub issues](https://img.shields.io/github/issues/anza-labs/kubelet-device-plugins)](https://github.com/anza-labs/kubelet-device-plugins/issues)\n[![GitHub release](https://img.shields.io/github/release/anza-labs/kubelet-device-plugins)](https://GitHub.com/anza-labs/kubelet-device-plugins/releases/)\n[![Go Report Card](https://goreportcard.com/badge/github.com/anza-labs/kubelet-device-plugins)](https://goreportcard.com/report/github.com/anza-labs/kubelet-device-plugins)\n\n`kubelet-device-plugins` is a Kubernetes Device Plugin that manages access to Linux devices.\n\n- [kubelet-device-plugins](#kubelet-device-plugins)\n  - [Features](#features)\n  - [Installation](#installation)\n  - [Usage](#usage)\n    - [KVM](#kvm)\n    - [TUN](#tun)\n  - [How It Works](#how-it-works)\n  - [Compatibility](#compatibility)\n  - [License](#license)\n  - [Attributions](#attributions)\n\n## Features\n\n- Provides access to Linux devices for containers running in Kubernetes.\n- Implements the Kubernetes Device Plugin API to manage device allocation.\n- Ensures that only workloads explicitly requesting device access receive it.\n\n## Installation\n\nTo deploy the `kubelet-device-plugins`, apply the provided manifests:\n\n```sh\nLATEST=\"$(curl -s 'https://api.github.com/repos/anza-labs/kubelet-device-plugins/releases/latest' | jq -r '.tag_name')\"\nkubectl apply -k \"https://github.com/anza-labs/kubelet-device-plugins/?ref=${LATEST}\"\n```\n\n## Usage\n\n### KVM\n\nTo request access to `/dev/kvm` in a pod, specify the device resource in the `resources` section:\n\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n  name: kvm-checker\nspec:\n  restartPolicy: Never\n  containers:\n    - name: kvm-checker\n      image: busybox\n      command: [\"sh\", \"-c\", \"[ -e /dev/kvm ]\"]\n      resources:\n        requests:\n          devices.anza-labs.dev/kvm: '1' # Request KVM device\n        limits:\n          devices.anza-labs.dev/kvm: '1' # Limit KVM device\n```\n\n### TUN\n\nTo request access to `tun` in a pod, specify the device resource in the `resources` section:\n\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n  name: kvm-checker\nspec:\n  restartPolicy: Never\n  containers:\n    - name: kvm-checker\n      image: busybox\n      command: [\"sh\", \"-c\", \"[ -e /dev/net/tun ]\"]\n      resources:\n        requests:\n          devices.anza-labs.dev/tun: '1' # Request TUN device\n        limits:\n          devices.anza-labs.dev/tun: '1' # Limit TUN device\n```\n\n## How It Works\n\n1. The `kubelet-device-plugins` registers with the kubelet and advertises available KVM devices.\n2. When a pod requests the `devices.anza-labs.dev/kvm` resource, the device plugin assigns a `/dev/kvm` device to the container.\n3. The container is granted access to `/dev/kvm` for virtualization tasks.\n\n## Compatibility\n\n- Kubernetes 1.20+\n- Nodes must have KVM enabled (check with `lsmod | grep kvm`)\n\n## License\n\n`kubelet-device-plugins` are licensed under the [Apache-2.0][license].\n\n## Attributions\n\nThis codebase is inspired by:\n- [github.com/squat/generic-device-plugin](https://github.com/squat/generic-device-plugin)\n- [github.com/kubevirt/kubernetes-device-plugins](https://github.com/kubevirt/kubernetes-device-plugins)\n\n\u003c!-- Resources --\u003e\n\n[license]: https://github.com/anza-labs/kubelet-device-plugins/blob/main/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanza-labs%2Fkubelet-device-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanza-labs%2Fkubelet-device-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanza-labs%2Fkubelet-device-plugins/lists"}