gardener

module
v0.0.0-...-1764fb8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2019 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more

README

Gardener

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 (Alicloud, AWS, Azure, GCP, 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.


K8s conformance test coverage

Conformance test results of latest stable Gardener release, transparently visible at the CNCF testgrid:

Provider/K8s v1.14 v1.13 v1.12 v1.11 v1.10
GCP Gardener v1.14 Conformance Tests Gardener v1.13 Conformance Tests Gardener v1.12 Conformance Tests Gardener v1.11 Conformance Tests Gardener v1.10 Conformance Tests
AWS Gardener v1.14 Conformance Tests Gardener v1.13 Conformance Tests Gardener v1.12 Conformance Tests Gardener v1.11 Conformance Tests Gardener v1.10 Conformance Tests
OpenStack Gardener v1.14 Conformance Tests Gardener v1.13 Conformance Tests Gardener v1.12 Conformance Tests Gardener v1.11 Conformance Tests Gardener v1.10 Conformance Tests
Azure Gardener v1.14 Conformance Tests Gardener v1.13 Conformance Tests Gardener v1.12 Conformance Tests Gardener v1.11 Conformance Tests Gardener v1.10 Conformance Tests
Alicloud Gardener v1.14 Conformance Tests Gardener v1.13 Conformance Tests N/A N/A N/A
Packet1  

1 to be determined (PR #916)

Besides the conformance tests, many more e2e tests are executed on a daily basis. Access to results of these additional e2e tests, will be provided in the near future.

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

The quickest way to test drive Gardener is to install it virtually onto an existing Kubernetes cluster, just like you would install any other Kubernetes-ready application. Launch your automatic installer here

We also have a Gardener Helm Chart. Alternatively you can use our garden setup project to create a fully configured Gardener landscape which also includes our Gardener Dashboard.

Feedback and Support

Feedback and contributions are always welcome!

All channels for getting in touch or learning about our project are listed under the community section. We are cordially inviting interested parties to join our weekly meetings.

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:

Directories

Path Synopsis
cmd
pkg
api
apis/core
Package core is the internal version of the API.
Package core is the internal version of the API.
apis/core/v1alpha1
Package v1alpha1 is a version of the API.
Package v1alpha1 is a version of the API.
apis/extensions/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
apis/garden
Package garden is the internal version of the API.
Package garden is the internal version of the API.
apis/garden/v1beta1
Package v1beta1 is a version of the API.
Package v1beta1 is a version of the API.
client/core/clientset/internalversion
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/core/clientset/internalversion/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/core/clientset/internalversion/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/core/clientset/internalversion/typed/core/internalversion
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/core/clientset/internalversion/typed/core/internalversion/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/core/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/core/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/core/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/core/clientset/versioned/typed/core/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/core/clientset/versioned/typed/core/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/extensions/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/extensions/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/extensions/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/extensions/clientset/versioned/typed/extensions/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/extensions/clientset/versioned/typed/extensions/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/garden/clientset/internalversion
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/garden/clientset/internalversion/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/garden/clientset/internalversion/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/garden/clientset/internalversion/typed/garden/internalversion
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/garden/clientset/internalversion/typed/garden/internalversion/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/garden/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/garden/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/garden/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/garden/clientset/versioned/typed/garden/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/garden/clientset/versioned/typed/garden/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/machine/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/machine/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/machine/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/machine/clientset/versioned/typed/machine/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/machine/clientset/versioned/typed/machine/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
mock/client-go/core/v1
Package v1 is a generated GoMock package.
Package v1 is a generated GoMock package.
mock/client-go/discovery
Package discovery is a generated GoMock package.
Package discovery is a generated GoMock package.
mock/client-go/kubernetes
Package kubernetes is a generated GoMock package.
Package kubernetes is a generated GoMock package.
mock/client-go/listers/core/v1
Package v1 is a generated GoMock package.
Package v1 is a generated GoMock package.
mock/client-go/rest
Package rest is a generated GoMock package.
Package rest is a generated GoMock package.
mock/client-go/tools/record
Package record is a generated GoMock package.
Package record is a generated GoMock package.
mock/controller-runtime/client
Package client is a generated GoMock package.
Package client is a generated GoMock package.
mock/gardener/client/garden/clientset/versioned
Package versioned is a generated GoMock package.
Package versioned is a generated GoMock package.
mock/gardener/client/garden/clientset/versioned/typed/garden/v1beta1
Package v1beta1 is a generated GoMock package.
Package v1beta1 is a generated GoMock package.
mock/gardener/controllermanager/controller/shoot
Package shoot is a generated GoMock package.
Package shoot is a generated GoMock package.
mock/gardener/kubernetes
Package kubernetes is a generated GoMock package.
Package kubernetes is a generated GoMock package.
mock/gardener/listers/core/v1alpha1
Package v1alpha1 is a generated GoMock package.
Package v1alpha1 is a generated GoMock package.
mock/gardener/utils/context
Package context is a generated GoMock package.
Package context is a generated GoMock package.
mock/gardener/utils/flow
Package flow is a generated GoMock package.
Package flow is a generated GoMock package.
mock/gardener/utils/kubernetes
Package kubernetes is a generated GoMock package.
Package kubernetes is a generated GoMock package.
mock/gardener/utils/retry
Package retry is a generated GoMock package.
Package retry is a generated GoMock package.
mock/go/context
Package context is a generated GoMock package.
Package context is a generated GoMock package.
mock/go/io
Package io is a generated GoMock package.
Package io is a generated GoMock package.
mock/go/time
Package time is a generated GoMock package.
Package time is a generated GoMock package.
utils/flow
Package flow provides utilities to construct a directed acyclic computational graph that is then executed and monitored with maximum parallelism.
Package flow provides utilities to construct a directed acyclic computational graph that is then executed and monitored with maximum parallelism.
plugin
integration/framework/networkpolicies
Package networkpolicies contain all network policies for various providers.
Package networkpolicies contain all network policies for various providers.
integration/seeds/networkpolicies/alicloud
Package has auto-generated cloud-specific network policy tests.
Package has auto-generated cloud-specific network policy tests.
integration/seeds/networkpolicies/aws
Package has auto-generated cloud-specific network policy tests.
Package has auto-generated cloud-specific network policy tests.
integration/seeds/networkpolicies/azure
Package has auto-generated cloud-specific network policy tests.
Package has auto-generated cloud-specific network policy tests.
integration/seeds/networkpolicies/gcp
Package has auto-generated cloud-specific network policy tests.
Package has auto-generated cloud-specific network policy tests.
integration/seeds/networkpolicies/openstack
Package has auto-generated cloud-specific network policy tests.
Package has auto-generated cloud-specific network policy tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL