The Gardener Extension for vSphere is a GEP-1 provider implementation that allows Gardener to leverage vSphere clusters for machine provisioning.
vSphere is an undeniable class leader for commercially supported virtual machine orchestration. The Gardener extension for vSphere provider compliments this leadership by allowing Gardener to create Kubernetes nodes within vSphere.
Like other Gardener provider extensions, the vSphere provider pairs with a provider-specific Machine Controller Manager providing node services to Kubernetes clusters. This extension provides complimentary APIs to Gardener. A Gardener-hosted Kubernetes cluster does not know anything about it's environment (such as bare metal vs. public cloud or within a hyperscaler vs. standalone), only that the MCM abstraction can manage requests such as cluster autoscaling.
An example for a ControllerRegistration
resource that can be used to register this controller to Gardener can be found here.
Please find more information regarding the extensibility concepts and the architecture details in the GEP-1 proposal.
The primary use case for this extension is organizations who wish to deploy a substantial Gardener landscape and use vSphere for data center fleet management. We intentionally sidestep prescribing any particular extension as this is an intimately local determination and the benefits of different solutions are more than adequately debated in industry literature.
While we may inadvertently duplicate some documentation in the mainline Gardener documentation, it is only to reduce tedium as new evaluators and developers come up-to-speed with the concepts relevant to successful deployment. We refer directly to the mainline Gardener documentation for the most up-to-date information.
This extension controller supports the following Kubernetes versions:
Version | Support | Conformance test results |
---|---|---|
Kubernetes 1.24 | untested | not yet available |
Kubernetes 1.23 | untested | not yet available |
Kubernetes 1.22 | untested | not yet available |
Kubernetes 1.21 | untested | not yet available |
Kubernetes 1.20 | untested | not yet available |
Kubernetes 1.19 | untested | not yet available |
Kubernetes 1.18 | untested | not yet available |
Kubernetes 1.17 | 1.17.0+ | not yet available |
Please take a look here to see which versions are supported by Gardener in general.
As with any production software, deployment of Gardener and this extension should be considered in the context of both lifecycle and automation. Orgs should aspire to have apply
You can run the controller locally on your machine by executing make start
.
Static code checks and tests can be executed by running make verify
. We are using Go modules for Golang package dependency management and Ginkgo/Gomega for testing.
Feedback and contributions are always welcome. Please report bugs or suggestions as GitHub issues or join our Slack channel #gardener (please invite yourself to the Kubernetes workspace here).
Please find further resources about out project here:
- Our landing page gardener.cloud
- "Gardener, the Kubernetes Botanist" blog on kubernetes.io
- "Gardener Project Update" blog on kubernetes.io
- GEP-1 (Gardener Enhancement Proposal) on extensibility
- GEP-4 (New
core.gardener.cloud/v1alpha1
API) - Extensibility API documentation
- Gardener Extensions Golang library
- Gardener API Reference