clastix / kamaji

Kamaji is the Hosted Control Plane Manager for Kubernetes.
https://kamaji.clastix.io
Apache License 2.0
934 stars 81 forks source link
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

Kamaji

#kamaji on Kubernetes Slack

Logo Logo

🤔 What is Kamaji?

Kamaji is a Kubernetes Control Plane Manager leveraging on the concept of Hosted Control Plane.

Kamaji's approach is based on running the Kubernetes Control Plane components in Pods instead of dedicated machines. This allows operating Kubernetes clusters at scale, with a fraction of the operational burden. Thanks to this approach, running multiple Control Planes can be cheaper and easier to deploy and operate.

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.

📖 How it works

Kamaji is extending the Kubernetes API capabilities thanks to Custom Resource Definitions.

By installing Kamaji, two pairs of new APIs will be available:

The TenantControlPlane (short-named as tcp) objects are Namespace-scoped and allows configuring every aspect of your desired Control Plane. Besides the Kubernetes configuration values, you can specify the Pod options such as limit, request, tolerations, node selector, etc., as well as how these should be exposed (e.g.: using a ClusterIP, a LoadBalancer, or a NodePort).

The TenantControlPlane is the stateless definition of the Control Plane allowing to set up the required components for a full-fledged Kubernetest cluster. The state is managed by the Datastore API, a cluster-scoped resource which can hold the data of one or more Kubernetes clusters.

For further information about the API specifications and all the available options, refer to the official API reference.

⭐️ Main features

🚀 Use cases

🤔 You'd like to do the same but don't know how? 💡 CLASTIX can help you with your needs!

🧑‍💻‍ Production grade

Kamaji is empowering several businesses, and it counts public adopters. Check out the adopters file to learn more.

🤗 If you're using Kamaji, share your love by opening a PR!

🍦 Vanilla Kubernetes clusters

Kamaji is not yet-another-Kubernetes distribution: you have full freedom on the technology stack to provide to end users. Kamaji is a perfect fit for Platform Engineering, hiding the complexity of the Control Plane management to developers and DevOps engineers.

The provided Kubernetes Control Planes are CNCF compliant clusters.

🐢 Cluster API support

Kamaji is not a Cluster API replacement, rather, it plays very well with it.

Since Kamaji is just focusing on the Control Plane a Kamaji's Cluster API Control Plane provider has been developed.

🛣️ Roadmap

🎥 Multimedia

🏷️ Versioning

Versioning adheres to the Semantic Versioning principles. A full list of the available releases is available in the GitHub repository's Release section.

📄 Documentation

Further documentation can be found on the official Kamaji documentation website.

🤝 Contributions

Contributions are highly appreciated and very welcomed!

In case of bugs, please, check if the issue has been already opened by checking the GitHub Issues section. In 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.

You can express your intention in working on the fix on your own. The commit messages are checked according to the described semantics. Commits are used to generate the changelog, and their author will be referenced in it.

In case of ✨ Feature Requests please use the Discussion's Feature Request section.

📝 License

The Kamaji Cluster API Control Plane provider is licensed under Apache 2.0. The code is provided as-is with no warranties.

🛟 Commercial Support

CLASTIX CLASTIX is the commercial company behind Kamaji and the Cluster API Control Plane provider.

If you're looking to run Kamaji in production and would like to learn more, CLASTIX can help by offering Open Source support plans, as well as providing a comprehensive Enterprise Platform named CLASTIX Enterprise Platform, built on top of the Kamaji and Capsule project (now donated to CNCF as a Sandbox project).

Feel free to get in touch with the provided Contact form.