{"id":38059969,"url":"https://github.com/23technologies/gardener-extension-runtime-kata","last_synced_at":"2026-01-16T20:28:48.442Z","repository":{"id":64304045,"uuid":"498347439","full_name":"23technologies/gardener-extension-runtime-kata","owner":"23technologies","description":"Gardener Extension for Use of Katacontainers in Shoot Clusters","archived":false,"fork":false,"pushed_at":"2023-03-07T03:27:09.000Z","size":11132,"stargazers_count":4,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-20T07:57:42.013Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/23technologies.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-31T13:26:49.000Z","updated_at":"2022-08-06T11:31:40.000Z","dependencies_parsed_at":"2024-06-20T06:57:53.726Z","dependency_job_id":"2e7a506e-8e36-4fc0-8b86-d598551d9fc3","html_url":"https://github.com/23technologies/gardener-extension-runtime-kata","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/23technologies/gardener-extension-runtime-kata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/23technologies%2Fgardener-extension-runtime-kata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/23technologies%2Fgardener-extension-runtime-kata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/23technologies%2Fgardener-extension-runtime-kata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/23technologies%2Fgardener-extension-runtime-kata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/23technologies","download_url":"https://codeload.github.com/23technologies/gardener-extension-runtime-kata/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/23technologies%2Fgardener-extension-runtime-kata/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28482267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: 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":[],"created_at":"2026-01-16T20:28:48.304Z","updated_at":"2026-01-16T20:28:48.432Z","avatar_url":"https://github.com/23technologies.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gardener Extension for Katacontainers\n\n[![reuse compliant](https://reuse.software/badge/reuse-compliant.svg)](https://reuse.software/)\n\n[Project Gardener](https://github.com/gardener/gardener) implements the automated management and operation of [Kubernetes](https://kubernetes.io/) clusters as a service.\nIts main principle is to leverage Kubernetes concepts for all of its tasks.\n\nThis controller implements Gardener's extension contract for the `kata` ContainerRuntime.\nThe latest release's `ControllerRegistration` resource that can be used to register this controller to Gardener can be found [here](https://github.com/23technologies/gardener-extension-runtime-kata/releases/latest/download/controller-registration.yaml).\n\nPlease find more information regarding the extensibility concepts and a detailed proposal [here](https://github.com/gardener/gardener/blob/master/docs/proposals/01-extensibility.md).\n\n\n\u003c!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --\u003e\n**Table of Contents**\n\n- [Gardener Extension for Katacontainers](#gardener-extension-for-katacontainers)\n- [What does this package provide?](#what-does-this-package-provide)\n- [Wait! How does this differ from kata-deploy?](#wait-how-does-this-differ-from-kata-deploy)\n- [Current limitations](#current-limitations)\n- [How to...](#how-to)\n\t- [Enable the extension as a gardener operator](#enable-the-extension-as-a-gardener-operator)\n\t- [Use it as end user](#use-it-as-end-user)\n\n\u003c!-- markdown-toc end --\u003e\n\n# What does this package provide?\nGenerally, this extension should enable using [katacontainers](https://katacontainers.io/) as container runtime within `Shoot` clusters.\nThus, you can isolate your workload easily into [qemu](https://www.qemu.org/) / [firecracker](https://firecracker-microvm.github.io/) / [cloudhypervisor](https://www.cloudhypervisor.org/) VMs on the nodes, when this extension is installed.\n\n# Wait! How does this differ from kata-deploy?\nActually, it doesn't.\nInternally, the extension is using the same mechanism as provided by [kata-deploy](https://github.com/kata-containers/kata-containers/tree/main/tools/packaging/kata-deploy).\nHowever, when it comes to using katacontainers in combination with firecracker VMs, the machine image needs to be tweaked a bit.\nSee also this [how-to](https://github.com/kata-containers/kata-containers/blob/main/docs/how-to/how-to-use-kata-containers-with-firecracker.md) to get an idea of what needs to be configured for the usage of katacontainers with firecracker.\nThis configuration overhead is handled by this extension.\nFor this, the extension controller modifies the `OperatingSystemConfiguration` via a `mutatingWebhookConfiguration` so that the preparation of the nodes is performed.\nMore precisely, an additional script for the devmapper setup is provided and executed by an additional systemd service unit.\nMoreover, the controller deploys some helm-charts containing the configuration and the daemonset provided by kata-deploy.\n\n# Current limitations\nGenerally, the limitations are two-fold.\nFirst, the cloud service provider your `Shoot` is running on needs to support nested virtualization for katacontainers to work properly.\nOn the Azure cloud, nested virtualization is enabled for various [machine types](https://docs.microsoft.com/en-us/azure/virtual-machines/acu).\nAs our development and testing environment was limited to `Shoots` hosted on Azure, the extension controller will only do something meaningful, when `Shoots` are spawned on Azure.\nSecond, the implementation was only tested for Ubuntu as machine image.\nThus, the controller will idle, when other machine images are selected.\nOf course, the support for other machine images can be implemented.\nHowever, this is a future topic, and this package should be considered as proof of concept.\n\n# How to...\n\n## Enable the extension as a gardener operator\nOf course, you need to apply the `controller-registration` resources to the garden cluster first.\nYou can find the corresponding yaml-files in our [releases](https://github.com/23technologies/gardener-extension-runtime-kata/releases).\nMoreover, you will need to modify your Azure-cloudprofile so that it contains the following configuration:\n``` yaml\n...\n  machineImages:\n  - name: ubuntu\n    versions:\n    - cri:\n      - containerRuntimes:\n        - type: kata\n        name: containerd\n      - name: docker\n      version: 18.4.20210415\n...\n```\n\n## Use it as end user\nIf you have access rights to the garden cluster, go ahead and follow the instructions in [Enable the extension as a gardener operator](#enable-the-extension-as-a-gardener-operator).\nOtherwise, ask your gardener operator to do so.\nOnce the extension is installed, you should be able to select `kata` as additional runtime from the Gardener dashboard during shoot creation or simply specify the corresponding container runtime in your `Shoot.Spec`.\nTo run some example workload in your `Shoot` cluster you can use the  [sample workloads](https://github.com/kata-containers/kata-containers/blob/main/tools/packaging/kata-deploy/README.md#run-a-sample-workload) from kata-deploy.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F23technologies%2Fgardener-extension-runtime-kata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F23technologies%2Fgardener-extension-runtime-kata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F23technologies%2Fgardener-extension-runtime-kata/lists"}