Kubernetes API server extension and controller managing the full lifecycle of conformant Kubernetes clusters (Shoots) as a service on AWS, Azure, GCP, and OpenStack.
Clone or download
rfranzke Merge pull request #667 from adracus/fix.cleanup-webhooks
Cleanup webhooks only if shoot api server is present
Latest commit b16c5e2 Jan 18, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.ci Rename controller manager config group Jan 18, 2019
.github Update pull_request_template.md Oct 5, 2018
charts Merge pull request #650 from gardener/feature/new-api-group Jan 18, 2019
cmd Move some packages to new controllermanager pkg Jan 18, 2019
docs Merge pull request #658 from rfranzke/feature/remove-monocular Jan 16, 2019
example Rename controller manager config group Jan 18, 2019
hack Add extensions.gardener.cloud API and client Jan 18, 2019
logo Initial version of gardener Jan 17, 2018
pkg Cleanup webhooks only if shoot api server is present Jan 18, 2019
plugin/pkg Validate network overlapping of shoot and seed Dec 2, 2018
vagrant Enable Ignition, shoot deletion Feb 26, 2018
vendor Rename controller manager config group Jan 18, 2019
.dockerignore Correct /version endpoint for Gardener API server Dec 21, 2018
.gitignore Logging stack for shoot control plane. Oct 23, 2018
CODEOWNERS Use @gardener/gardener-maintainers team for CODEOWNERS Oct 3, 2018
CONTRIBUTING.md Initial version of gardener Jan 17, 2018
Dockerfile Correct /version endpoint for Gardener API server Dec 21, 2018
Gopkg.lock Rename controller manager config group Jan 18, 2019
Gopkg.toml Upgrade k8s.io dependencies to kubernetes-1.13.1 Jan 9, 2019
LICENSE.md Clean `kubernetes.client`, add controller-runtime Jan 7, 2019
Makefile Correct /version endpoint for Gardener API server Dec 21, 2018
NOTICE.md Remove monocular addon Jan 16, 2019
README.md Update README.md Dec 16, 2018
VERSION Prepare next dev cycle 0.17.0-dev Jan 11, 2019



Gardener Logo

Go Report Card CII Best Practices

Gardener implements the automated management and operation of Kubernetes clusters as a service and provides support for multiple cloud providers (AWS, GCP, Azure, OpenStack). Its main principle is to leverage Kubernetes concepts for all of its tasks.

In essence, Gardener is an extension API server that comes along with a bundle of custom controllers. It introduces new API objects in an existing Kubernetes cluster (which is called garden cluster) in order to use them for the management of end-user Kubernetes clusters (which are called shoot clusters). These shoot clusters are described via declarative cluster specifications which are observed by the controllers. They will bring up the clusters, reconcile their state, perform automated updates and make sure they are always up and running.

To accomplish these tasks reliably and to offer a certain quality of service, Gardener requires to control the main components of a Kubernetes cluster (etcd, API server, controller manager, scheduler). These so-called control plane components are hosted in Kubernetes clusters themselves (which are called seed clusters). This is the main difference compared to many other OSS cluster provisioning tools: The shoot clusters do not have dedicated master VMs, instead, the control plane is deployed as native Kubernetes workload into the seeds. This does not only effectively reducing the total costs of ownership, it also allows easier implementations for "day-2 operations" (like cluster updates or robustness) by relying on all the mature Kubernetes features and capabilities.

Please find more information regarding the concepts and a detailed description of the architecture in our Gardener Wiki and our blog post on kubernetes.io.

To start using or developing the Gardener locally

See our documentation in the /docs repository, please find the index here.

Setting up your own Gardener landscape in the cloud

If you already have a Kubernetes cluster then please take a look at our Gardener Helm Chart. If you don't have a cluster into which you could deploy Gardener then play around with our landscape setup. This will bootstrap a fresh Kubernetes cluster, and it installs your own Gardener system into it (including our pre-configured Gardener Dashboard).

Feedback and Support

Feedback and contributions are always welcome. Please report bugs or suggestions about our Kubernetes clusters as such or the Gardener itself as GitHub issues or join our Slack channel #gardener (please invite yourself to the Kubernetes workspace here).

Learn more!

Please find further resources about out project here: