3 minute read  

Gardener Extension for vSphere provider

CI Build status Go Report Card

Overview

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.

Use Cases

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.

Supported Kubernetes versions

This extension controller supports the following Kubernetes versions:

VersionSupportConformance test results
Kubernetes 1.23untestednot yet available
Kubernetes 1.22untestednot yet available
Kubernetes 1.21untestednot yet available
Kubernetes 1.20untestednot yet available
Kubernetes 1.19untestednot yet available
Kubernetes 1.18untestednot yet available
Kubernetes 1.171.17.0+not yet available

Please take a look here to see which versions are supported by Gardener in general.


Deployment patterns

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

How to start using or developing this extension controller locally

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 Support

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).

Learn more!

Please find further resources about out project here:


Docs