{"id":13509317,"url":"https://github.com/clastix/kamaji","last_synced_at":"2026-04-27T11:01:09.937Z","repository":{"id":37087842,"uuid":"439021003","full_name":"clastix/kamaji","owner":"clastix","description":"Kamaji is the Hosted Control Plane Manager for Kubernetes.","archived":false,"fork":false,"pushed_at":"2026-04-20T09:08:07.000Z","size":8248,"stargazers_count":1922,"open_issues_count":10,"forks_count":190,"subscribers_count":12,"default_branch":"master","last_synced_at":"2026-04-20T11:41:15.292Z","etag":null,"topics":["aws","azure","baremetal","cloud-native","cluster","gcp","hard-multitenancy","k8s","kubernetes","kubernetes-cluster","kubernetes-in-kubernetes","kubernetes-multitenancy","managed-kubernetes","multi-cluster","multi-tenancy","openstack","virtual-cluster"],"latest_commit_sha":null,"homepage":"https://kamaji.clastix.io","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/clastix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-12-16T14:35:38.000Z","updated_at":"2026-04-19T18:46:35.000Z","dependencies_parsed_at":"2023-09-29T11:16:11.051Z","dependency_job_id":"7b92ebd1-4957-46ed-bdb6-77e4addc0561","html_url":"https://github.com/clastix/kamaji","commit_stats":{"total_commits":718,"total_committers":46,"mean_commits":"15.608695652173912","dds":"0.28551532033426186","last_synced_commit":"7824b29df872ebbdd431e4e62a123f318b3820ad"},"previous_names":[],"tags_count":119,"template":false,"template_full_name":null,"purl":"pkg:github/clastix/kamaji","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clastix%2Fkamaji","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clastix%2Fkamaji/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clastix%2Fkamaji/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clastix%2Fkamaji/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clastix","download_url":"https://codeload.github.com/clastix/kamaji/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clastix%2Fkamaji/sbom","scorecard":{"id":285327,"data":{"date":"2025-08-11","repo":{"name":"github.com/clastix/kamaji","commit":"5394ec6ca3f7eaa1e96342dfd120175cabbc07d4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.5,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":2,"reason":"Found 6/22 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yaml:1","Warn: no topLevel permission defined: .github/workflows/e2e.yaml:1","Warn: no topLevel permission defined: .github/workflows/helm.yaml:1","Warn: no topLevel permission defined: .github/workflows/ko-build.yml:1","Warn: no topLevel permission defined: .github/workflows/pr.yaml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/release.yml:9","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/ci.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/e2e.yaml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/e2e.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/e2e.yaml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/e2e.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/helm.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/helm.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/helm.yaml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/helm.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/helm.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/helm.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/helm.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/helm.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/helm.yaml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/helm.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ko-build.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/ko-build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ko-build.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/ko-build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr.yaml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/pr.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/clastix/kamaji/release.yml/master?enable=pin","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2025-3829","Warn: Project is vulnerable to: GO-2025-3764","Warn: Project is vulnerable to: GO-2025-3787 / GHSA-fv92-fjc5-jj9h","Warn: Project is vulnerable to: GO-2025-3521","Warn: Project is vulnerable to: GO-2025-3547"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T17:06:04.228Z","repository_id":37087842,"created_at":"2025-08-17T17:06:04.228Z","updated_at":"2025-08-17T17:06:04.228Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32333199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["aws","azure","baremetal","cloud-native","cluster","gcp","hard-multitenancy","k8s","kubernetes","kubernetes-cluster","kubernetes-in-kubernetes","kubernetes-multitenancy","managed-kubernetes","multi-cluster","multi-tenancy","openstack","virtual-cluster"],"created_at":"2024-08-01T02:01:06.111Z","updated_at":"2026-04-27T11:01:09.916Z","avatar_url":"https://github.com/clastix.png","language":"Go","funding_links":[],"categories":["Go","kubernetes","azure","\u003ca name=\"Go\"\u003e\u003c/a\u003eGo"],"sub_categories":[],"readme":"# Kamaji\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/clastix/kamaji\"/\u003e\n  \u003cimg src=\"https://img.shields.io/github/go-mod/go-version/clastix/kamaji\"/\u003e\n  \u003ca href=\"https://github.com/clastix/kamaji/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/clastix/kamaji\"/\u003e\u003c/a\u003e\n  \u003cimg src=\"https://goreportcard.com/badge/github.com/clastix/kamaji\"\u003e\n  \u003ca href=\"https://kubernetes.slack.com/archives/C03GLTTMWNN\"\u003e\u003cimg alt=\"#kamaji on Kubernetes Slack\" src=\"https://img.shields.io/badge/slack-@kubernetes/kamaji-blue.svg?logo=slack\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n![Logo](assets/logo-black.png#gh-light-mode-only)\n![Logo](assets/logo-white.png#gh-dark-mode-only)\n\n### 🤔 What is Kamaji?\n\n**Kamaji** is the **Kubernetes Control Plane Manager** leveraging on the concept of [**Hosted Control Plane**](https://clastix.io/post/the-raise-of-hosted-control-plane-in-kubernetes/).\n\nKamaji's approach is based on running the Kubernetes Control Plane components in Pods instead of dedicated machines.\nThis allows operating Kubernetes clusters at scale, with a fraction of the operational burden.\nThanks to this approach, running multiple Control Planes can be cheaper and easier to deploy and operate.\n\n_Kamaji is like a fleet of Site Reliability Engineers with expertise codified into its logic, working 24/7 to keep up and running your Control Planes._\n\n\u003cimg src=\"docs/content/images/architecture.png\"  width=\"600\" style=\"display: block; margin: 0 auto\"\u003e\n\n### 📖 How it works\n\nKamaji is extending the Kubernetes API capabilities thanks to [Custom Resource Definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions).\n\nBy installing Kamaji, two pairs of new APIs will be available:\n\n- `TenantControlPlane`, the instance definition of your desired Kubernetes Control Plane\n- `Datastore`, the backing store used by one (or more) `TenantControlPlane`\n\nThe `TenantControlPlane` (short-named as `tcp`) objects are Namespace-scoped and allows configuring every aspect of your desired Control Plane.\nBesides the Kubernetes configuration values, you can specify the Pod options such as limit, request, tolerations, node selector, etc.,\nas well as how these should be exposed (e.g.: using a `ClusterIP`, a `LoadBalancer`, or a `NodePort`).\n\nThe `TenantControlPlane` is the stateless definition of the Control Plane allowing to set up the required components for a full-fledged Kubernetest cluster.\nThe state is managed by the `Datastore` API, a cluster-scoped resource which can hold the data of one or more Kubernetes clusters.\n\n\u003e For further information about the API specifications and all the available options,\n\u003e refer to the official [API reference](https://kamaji.clastix.io/reference/api/#tenantcontrolplane).\n\n### ⭐️ Main features\n\n- **Fast provisioning time**: depending on the infrastructure, Tenant Control Planes are up and ready to serve traffic in **16 seconds**.\n- **Streamlined update**: the rollout to a new Kubernetes version for a given Tenant Control Plane takes just **10 seconds**, with a Blue/Green deployment to avoid serving mixed Kubernetes versions.\n- **Resource optimization**: thanks to the Datastore decoupling, there's no need of odd number instances (e.g.: RAFT consensus) by allowing to save up to 60% of HW resources.\n- **Scale from zero to the moon**: scale down the instance when there's no usage, or automatically scale to support the traffic spikes reusing the Kubernetes patterns.\n- **Declarative approach, constant reconciliation**: thanks to the Operator pattern, drift detection happens in real-time, maintaining the desired state.\n- **Automated certificates management**: Kamaji leverages on `kubeadm` and the certificates are automatically created and rotated for you.\n- **Managing core addons**: Kamaji allows configuring automatically `kube-proxy`, `CoreDNS`, and `konnectivity`, with automatic remediation in case of user errors (e.g.: deleting the `CoreDNS` deployment).\n- **Auto Healing**: the `TenantControlPlane` objects in the management cluster are tracked by Kamaji, in case of deletion of those, everything is created in an idempotent way.\n- **Datastore multi-tenancy**: optionally, Kamaji allows running multiple Control Planes on the same _Datastore_ instance leveraging on the multi-tenancy of each driver, decreasing operations and optimizing costs.\n- **Overcoming `etcd` limitations**: optionally, Kamaji allows using a different _Datastore_ thanks to [`kine`](https://github.com/k3s-io/kine) by supporting `MySQL`, `PostgreSQL`, or `NATS` as an alternative.\n- **Simplifying mixed-networks setup**: thanks to [`Konnectivity`](https://kubernetes.io/docs/tasks/extend-kubernetes/setup-konnectivity/),\n  the Tenant Control Plane is connected to the worker nodes hosted in a different network, overcoming the no-NAT availability when dealing with nodes with a non routable IP address\n  (e.g.: worker nodes in a different infrastructure).\n\n### 🚀 Use cases\n\n- [**Creating a private Managed Kubernetes Service**](https://clastix.io/post/netsons-builds-a-managed-kubernetes-service-with-kamaji-and-open-stack/)\n- [**Building a Platform as a Service**](https://aenix.io/cozystack/)\n- [**Overcoming public Managed Kubernetes Services**](https://clastix.io/post/overcoming-eks-limitations-with-kamaji-on-aws/) such as EKS\n- [**Hybrid infrastructures**](https://clastix.io/post/bridging-the-gap-hybrid-kubernetes-clusters-with-remote-control-planes/):\n  host the Control Plane on the Cloud and worker nodes on prem or vice-versa, according to your needs.\n- [**Kubernetes at the edge**](https://clastix.io/post/edgevolution-unleashing-the-power-of-kubernetes-clusters-for-a-revolutionary-edge-computing-experience/):\n  take full advantage of the _Kubernetes API Server as a service_ paradigm.\n- **Kubernetes Control Plane as a Service:** centrally manage multiple Kubernetes clusters from a single management point (_Multi-Cluster management_). \n- **High-density Control Plane:** place multiple control planes on the same infrastructure, instead of having dedicated machines for each control plane.\n- **Strong Multi-tenancy:** leave users to access the control plane with admin permissions while keeping them isolated at the infrastructure level.\n- **Kubernetes Inception:** use Kubernetes to manage Kubernetes with automation, high-availability, fault tolerance, and autoscaling out of the box. \n- **Bring Your Own Device:** keep the control plane isolated from data plane. Worker nodes can join and run consistently from everywhere: cloud, edge, and data-center.\n- **Full CNCF compliant:** all clusters are built with upstream Kubernetes binaries, resulting in full CNCF compliant Kubernetes clusters.\n\n\u003e 🤔 You'd like to do the same but don't know how?\n\u003e 💡 [CLASTIX](https://clastix.io/) can help you with your needs!\n\n### 🧑‍💻‍ Production grade\n\nKamaji is empowering several businesses, and it counts public adopters.\nCheck out the [adopters](./ADOPTERS.md) file to learn more.\n\n\u003e 🤗 If you're using Kamaji, share your love by opening a PR!\n\n### 🍦 Vanilla Kubernetes clusters\n\nKamaji is **not** yet-another-Kubernetes distribution: you have full freedom on the technology stack to provide to end users.\nKamaji is a perfect fit for Platform Engineering, hiding the complexity of the Control Plane management to developers and DevOps engineers.\n\nThe provided Kubernetes Control Planes are [CNCF compliant clusters](https://kamaji.clastix.io/reference/conformance/).\n\n\u003cimg src=\"https://raw.githubusercontent.com/cncf/artwork/master/projects/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png\" style=\"display: block; width: 75px; margin: 0 auto\"\u003e\n\n### 🐢 Cluster API support\n\nKamaji is **not** a [Cluster API](https://cluster-api.sigs.k8s.io/) replacement, rather, it plays very well with it.\n\nSince Kamaji is just focusing on the Control Plane a [Kamaji's Cluster API Control Plane provider](https://github.com/clastix/cluster-api-control-plane-provider-kamaji) has been developed.\n\n### 🛣️ Roadmap\n\n- [x] Dynamic address on Load Balancer\n- [x] Zero Downtime Tenant Control Plane upgrade\n- [x] [Join worker nodes from anywhere thanks to Konnectivity](https://kamaji.clastix.io/concepts/#konnectivity)\n- [x] [Alternative datastore MySQL, PostgreSQL, NATS](https://kamaji.clastix.io/guides/alternative-datastore/)\n- [x] [Pool of multiple datastores](https://kamaji.clastix.io/concepts/#datastores)\n- [x] [Seamless migration between datastores](https://kamaji.clastix.io/guides/datastore-migration/)\n- [ ] Automatic assignment to a datastore\n- [ ] Autoscaling of Tenant Control Plane\n- [x] [Provisioning through Cluster APIs](https://github.com/clastix/cluster-api-control-plane-provider-kamaji)\n- [ ] Terraform provider\n- [ ] Custom Prometheus metrics\n\n### 🎥 Multimedia\n\n- Playlist ▶️ [Tutorials and How-Tos by Dario Tranchitella, CLASTIX](https://www.youtube.com/playlist?list=PLjiUjoV4Ws_3pNsUpTXI-KKk731nD2MQY)\n- YouTube ▶️ [Metal³ provisioning with Kamaji Hosted Control Planes by Huy Mai, Ericsson](https://youtu.be/u9sbURj6jXY?t=10536)\n- YouTube ▶️ [Hands-on introduction to Kamaji](https://www.youtube.com/watch?v=HhevxwQWQ88)\n- YouTube ▶️ [Scaling Kubernetes up to 1,000 Control Planes](https://www.youtube.com/watch?v=W_HXRXJh96U)\n- YouTube ▶️ [Equinix, Kamaji, and Cluster API](https://www.youtube.com/watch?v=TLBTqROj_wA)\n- YouTube ▶️ [Rancher \u0026 Kamaji: solving multitenancy challenges in the Kubernetes world](https://www.youtube.com/watch?v=VXHNrMmlF8U)\n- YouTube ▶️ [Enabling Self-Service Kubernetes clusters with Kamaji and Paralus](https://www.youtube.com/watch?v=JWA2LwZazM0)\n- YouTube ▶️ [Hosted Control Plane on Kubernetes (HPC) with Kamaji and K0mostron by Hervé Leclerc, ALTER WAY](https://www.youtube.com/watch?v=vmRdE2ngn78)\n- Medium 📖 [Set up Virtual Control Planes with Kamaji on Minikube, by Ben Soer](https://medium.com/@bensoer/set-up-virtual-control-planes-with-kamaji-on-minikube-a540be0275aa)\n- Hands-On tutorial 📖 [How to build your own managed Kubernetes service on Hetzner Cloud, by Hans Jörg Wieland](https://wieland.tech/blog/kamaji-cluster-api-and-etcd)\n\n### 🏷️ Versioning\n\nVersioning adheres to the [Semantic Versioning](http://semver.org/) principles.\nA full list of the available releases is available in the GitHub repository's [**Release** section](https://github.com/clastix/kamaji/releases).\n\n### 📄 Documentation\n\nFurther documentation can be found on the official [Kamaji documentation website](https://kamaji.clastix.io/).\n\n### 🤝 Contributions\n\nContributions are highly appreciated and very welcomed!\n\nIn case of bugs, please, check if the issue has been already opened by checking the [GitHub Issues](https://github.com/clastix/kamaji/issues) section.\nIn case it isn't, you can open a new one: a detailed report will help us to replicate it, assess it, and work on a fix.\n\nYou can express your intention in working on the fix on your own.\nThe commit messages are checked according to the described [semantics](https://github.com/projectcapsule/capsule/blob/main/CONTRIBUTING.md#semantics).\nCommits are used to generate the changelog, and their author will be referenced in it.\n\nIn case of **✨ Feature Requests** please use the [Discussion's Feature Request section](https://github.com/clastix/kamaji/discussions/categories/feature-requests).\n\n### 📝 License\n\nKamaji is licensed under Apache 2.0.\nThe code is provided as-is with no warranties.\n\n### 🛟 Commercial Support\n\n![CLASTIX](https://avatars.githubusercontent.com/u/39170129?s=50\u0026v=4) [CLASTIX](https://clastix.io/) is the commercial company behind Kamaji and the Cluster API Control Plane provider.\n\nIf you're looking to run Kamaji in production and would like to learn more, **CLASTIX** can help by offering [Open Source support plans](https://clastix.io/support),\nas well as providing a comprehensive Enterprise Platform named [CLASTIX Enterprise Platform](https://clastix.cloud/), built on top of the Kamaji and [Capsule](https://capsule.clastix.io/) project (now donated to CNCF as a Sandbox project).\n\nFeel free to get in touch with the provided [Contact form](https://clastix.io/contact).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclastix%2Fkamaji","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclastix%2Fkamaji","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclastix%2Fkamaji/lists"}