Kubermatic Kubernetes Platform is in an open source project to centrally manage the global automation of thousands of Kubernetes clusters across multicloud, on-prem and edge with unparalleled density and resilience.
All user documentation is available at the Kubermatic Kubernetes Platform docs website.
There are two editions of Kubermatic Kubernetes Platform:
Kubermatic Kubernetes Platform Community Edition (CE) is available freely under the Apache License, Version 2.0. Kubermatic Kubernetes Platform Enterprise Edition (EE) includes premium features that are most useful for organizations with large-scale Kubernetes installations with more than 50 clusters. To access the Enterprise Edition and get official support please become a subscriber.
See the LICENSE file for licensing information as it pertains to files in this repository.
We strongly recommend that you use an official release of Kubermatic Kubernetes Platform. Follow the instructions under the Installation section of our documentation to get started.
The code and sample YAML files in the master branch of the kubermatic repository are under active development and are not guaranteed to be stable. Use them at your own risk!
The documentation provides a getting started guide, plus information about building from source, architecture, extending kubermatic, and more.
Please use the version selector at the top of the site to ensure you are using the appropriate documentation for your version of kubermatic.
If you encounter issues file an issue or talk to us on the #kubermatic channel on the Kubermatic Community Slack (click here to join).
Thanks for taking the time to join our community and start contributing!
- Please familiarize yourself with the Code of Conduct before contributing.
- See CONTRIBUTING.md for instructions on the developer certificate of origin that we require.
- Read how we're using ZenHub for project and roadmap planning
├── addons # Default Kubernetes addons
├── charts # The Helm charts we use to deploy
├── cmd # Various Kubermatic binaries for the API, controller-managers etc.
├── codegen # Helper programs to generate Go code and Helm charts
├── docs # Some basic developer-oriented documentation
├── hack # scripts for development and CI
└── pkg # most of the actual codebase
git clone git@github.com:kubermatic/kubermatic.git
cd kubermatic
There are a couple of scripts in the hacks
directory to aid in running the components locally
for testing purposes.
In order to instrument the seed-controller to allow for a local user-cluster-controller-manager, you need to add a worker-name
label with your local machine's name as its value. Additionally, you need to scale down the already running deployment.
# Using a kubeconfig, which points to the seed-cluster
export cluster_id="<id-of-your-user-cluster>"
kubectl label cluster ${cluster_id} worker-name=$(uname -n)
kubectl scale deployment -n cluster-${cluster_id} usercluster-controller --replicas=0
Afterwards, you can start your local user-cluster-controller-manager.
# Using a kubeconfig, which points to the seed-cluster
./hack/run-user-cluster-controller-manager.sh
./hack/run-api.sh
./hack/run-seed-controller-manager.sh
./hack/run-master-controller-manager.sh
Before every push, make sure you run:
make lint
make test
The Kubernetes code-generator tool does not work outside of GOPATH
(upstream issue), so the script
below will automatically run the code generation in a Docker container.
hack/update-codegen.sh
- We welcome pull requests. Feel free to dig through the issues and jump in.
See the list of releases to find out about feature changes.