cluster-api-provider-vsphere

command module
v1.12.0-beta.1 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2024 License: Apache-2.0 Imports: 42 Imported by: 0

README

Kubernetes Cluster API Provider vSphere

Go Report Card

Powered by VMware vSphere

Kubernetes-native declarative infrastructure for vSphere.

What is the Cluster API Provider vSphere

The Cluster API brings declarative, Kubernetes-style APIs to cluster creation, configuration and management. Cluster API Provider for vSphere is a concrete implementation of Cluster API for vSphere.

The API itself is shared across multiple cloud providers allowing for true vSphere hybrid deployments of Kubernetes. It is built atop the lessons learned from previous cluster managers such as kops and kubicorn.

Launching a Kubernetes cluster on vSphere

Check out the getting started guide for launching a cluster on vSphere.

Features

  • Native Kubernetes manifests and API
  • Manages the bootstrapping of VMs on cluster.
  • Choice of Linux distribution between Ubuntu 18.04 and CentOS 7 using VM Templates based on OVA images.
  • Deploys Kubernetes control planes into provided clusters on vSphere.
  • Doesn't use SSH for bootstrapping nodes.
  • Installs only the minimal components to bootstrap a control plane and workers.

Compatibility with Cluster API and Kubernetes Versions

This provider's versions are compatible with the following versions of Cluster API:

Cluster API v1beta1 (v1.5) Cluster API v1beta1 (v1.6) Cluster API v1beta1 (v1.7) Cluster API v1beta1 (v1.8)
CAPV v1beta1 (v1.8)
CAPV v1beta1 (v1.9) x x
CAPV v1beta1 (v1.10) x x
CAPV v1beta1 (v1.11) x x

As CAPV doesn't dictate supported K8s versions, and it supports whatever CAPI supported, about the provider's compatibility with K8s versions, please refer to CAPI Supported Kubernetes Versions.

Basically:

  • 4 Kubernetes minor releases for the management cluster (N - N-3)
  • 6 Kubernetes minor releases for the workload cluster (N - N-5)

NOTES:

  • We aim to cut a CAPV minor release approximately one week after the corresponding CAPI minor release is out.
  • We aim to cut a CAPV minor or patch release with support for a new Kubernetes minor version approximately 3 business days after releases for CAPI and CPI that support the new Kubernetes version are available.

Kubernetes versions with published OVAs

Note: These OVAs are not updated for security fixes and it is recommended to always use the latest versions for distribution packages and patch version for the Kubernetes version you wish to run. For production-like environments, it is highly recommended to build and use your own custom images.

Note: We recently moved the OVAs from the community GCP project to Github releases. Going forward new OVAs will only be uploaded to a dedicated Github release with the name templates/<Kubernetes Version>.

Note: Big OVAs will be split into multiple parts. To use them please download all parts and use cat part1 part2 part3 > out.ova to join them again.

Kubernetes Ubuntu 18.04 Ubuntu 20.04 Ubuntu 22.04 Ubuntu 24.04 Photon 3 Photon 5 Flatcar Stable
v1.24.11
v1.25.7
v1.26.2
v1.27.3
v1.28.0
v1.29.0
v1.30.0
v1.31.0

A full list of the published machine images for CAPV can be found by searching for releases on the repository having the prefix templates/ and taking a look at the available assets.

Documentation

Further documentation is available in the /docs directory.

vSphere Custom Resource Definitions

Cluster API Custom Resource Definitions

Getting involved and contributing

Are you interested in contributing to cluster-api-provider-vsphere? We, the maintainers and community, would love your suggestions, contributions, and help! Also, the maintainers can be contacted at any time to learn more about how to get involved.

In the interest of getting more new people involved we tag issues with good first issue. These are typically issues that have smaller scope but are good ways to start to get acquainted with the codebase.

We also encourage ALL active community participants to act as if they are maintainers, even if you don't have "official" write permissions. This is a community effort, we are here to serve the Kubernetes community. If you have an active interest and you want to get involved, you have real power! Don't assume that the only people who can get things done around here are the "maintainers".

We also would love to add more "official" maintainers, so show us what you can do!

This repository uses the Kubernetes bots. See a full list of the commands here.

Code of conduct

Participating in the project is governed by the Kubernetes code of conduct. Please take some time to read the code of conduct document.

Implementer office hours
  • Bi-weekly on Zoom on Wednesdays @ 02:30 PM Central European Time.
  • Previous meetings: [ notes ]
Other ways to communicate with the contributors

Please check in with us in the #cluster-api-vsphere channel on Slack or email us at our [mailing list][mailing_list]

Github issues

Bugs

If you think you have found a bug please follow the instructions below.

  • Please spend a small amount of time giving due diligence to the issue tracker. Your issue might be a duplicate.
  • Get the logs from the cluster controllers. Please paste this into your issue.
  • Follow the helpful tips provided in the troubleshooting document as needed.
  • Open a new issue.
  • Remember that users might be searching for your issue in the future, so please give it a meaningful title to help others.
  • Feel free to reach out to the cluster-api community on the kubernetes slack.
Tracking new features

We also use the issue tracker to track features. If you have an idea for a feature, or think you can help CAPV become even more awesome follow the steps below.

  • Open a new issue.
  • Remember that users might be searching for your issue in the future, so please give it a meaningful title to help others.
  • Clearly define the use case, using concrete examples. EG: I type this and cluster-api-provider-vsphere does that.
  • Some of our larger features will require some design. If you would like to include a technical design for your feature please include it in the issue.
  • After the new feature is well understood, and the design agreed upon, we can start coding the feature. We would love for you to code it. So please open up a WIP (work in progress) pull request, and happy coding.

Documentation

Overview

Package main is the main package for CAPV.

Directories

Path Synopsis
apis
v1alpha3
Package v1alpha3 contains API Schema definitions for the infrastructure v1alpha3 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-vsphere/apis/v1beta1
Package v1alpha3 contains API Schema definitions for the infrastructure v1alpha3 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-vsphere/apis/v1beta1
v1alpha4
Package v1alpha4 contains API Schema definitions for the infrastructure v1alpha4 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-vsphere/apis/v1beta1
Package v1alpha4 contains API Schema definitions for the infrastructure v1alpha4 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-vsphere/apis/v1beta1
v1beta1
Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
vmware/v1beta1
Package v1beta1 contains API Schema definitions for the vmware.infrastructure v1beta1 API group +k8s:openapi-gen=true +kubebuilder:object:generate=true +groupName=vmware.infrastructure.cluster.x-k8s.io
Package v1beta1 contains API Schema definitions for the vmware.infrastructure v1beta1 API group +k8s:openapi-gen=true +kubebuilder:object:generate=true +groupName=vmware.infrastructure.cluster.x-k8s.io
Package controllers contains controllers for CAPV objects.
Package controllers contains controllers for CAPV objects.
vmware
Package vmware contains the VSphereCluster reconciler.
Package vmware contains the VSphereCluster reconciler.
Package feature handles feature gates.
Package feature handles feature gates.
hack
boilerplate/test
Package test contains test boilerplate.
Package test contains test boilerplate.
tools/boskosctl
Package main is the main package for capv-janitor.
Package main is the main package for capv-janitor.
tools/janitor
Package main is the main package for capv-janitor.
Package main is the main package for capv-janitor.
tools/pkg/boskos
Package boskos implements a boskos client.
Package boskos implements a boskos client.
tools/pkg/janitor
Package janitor implements a janitor for vSphere.
Package janitor implements a janitor for vSphere.
internal
apis/topology/v1alpha1
Package v1alpha1 contains API Schema definitions for vSphere topology APIs.
Package v1alpha1 contains API Schema definitions for vSphere topology APIs.
clusterclass
Package clusterclass provides the shared functions for creating clusterclasses.
Package clusterclass provides the shared functions for creating clusterclasses.
kubevip
Package kubevip provides the files required to run kube-vip in a cluster.
Package kubevip provides the files required to run kube-vip in a cluster.
test/helpers
Package helpers contains helpers for creating a test environment.
Package helpers contains helpers for creating a test environment.
test/helpers/vcsim
Package vcsim contains tools for running a VCenter simulator.
Package vcsim contains tools for running a VCenter simulator.
test/helpers/vmware
Package vmware contains context objects for testing.
Package vmware contains context objects for testing.
webhooks
Package webhooks contains webhooks for the infrastructure v1beta1 API group.
Package webhooks contains webhooks for the infrastructure v1beta1 API group.
webhooks/vmware
Package vmware is the package for webhooks of vmware resources.
Package vmware is the package for webhooks of vmware resources.
packaging module
pkg
clustermodule
Package clustermodule contains tools for handling ClusterModules.
Package clustermodule contains tools for handling ClusterModules.
clustermodule/fake
Package fake implements a fake ClusterModuleService for testing.
Package fake implements a fake ClusterModuleService for testing.
constants
Package constants contains constants used in CAPV.
Package constants contains constants used in CAPV.
context
Package context defines context objects for controllers.
Package context defines context objects for controllers.
context/fake
Package fake contains fake context objects for testing.
Package fake contains fake context objects for testing.
context/vmware
Package vmware contains fake contexts used for testing.
Package vmware contains fake contexts used for testing.
identity
Package identity contains tools for managing secrets used to access the VCenter API.
Package identity contains tools for managing secrets used to access the VCenter API.
manager
Package manager contains tools to create the CAPV controller manager.
Package manager contains tools to create the CAPV controller manager.
services
Package services contains tools for handling VSphere services.
Package services contains tools for handling VSphere services.
services/fake
Package fake implements a fake VMService for testing.
Package fake implements a fake VMService for testing.
services/govmomi
Package govmomi contains tools for interacting with vSphere APIs.
Package govmomi contains tools for interacting with vSphere APIs.
services/govmomi/cluster
Package cluster contains tools for managing ComputeClusters.
Package cluster contains tools for managing ComputeClusters.
services/govmomi/clustermodules
Package clustermodules contains tools for handling Cluster Modules.
Package clustermodules contains tools for handling Cluster Modules.
services/govmomi/extra
Package extra contains config with a VM's guestInfo RPC interface.
Package extra contains config with a VM's guestInfo RPC interface.
services/govmomi/find
Package find is used to find VCenter objects based for failure domain handling.
Package find is used to find VCenter objects based for failure domain handling.
services/govmomi/ipam
Package ipam contains tools for to deal with CAPI IPAddress and related types.
Package ipam contains tools for to deal with CAPI IPAddress and related types.
services/govmomi/metadata
Package metadata contains tools to manage metadata tags on VCenter objects.
Package metadata contains tools to manage metadata tags on VCenter objects.
services/govmomi/net
Package net contains tools for handling VM networks.
Package net contains tools for handling VM networks.
services/govmomi/pci
Package pci contains tools for PCI devices.
Package pci contains tools for PCI devices.
services/govmomi/template
Package template has tools for finding VM templates.
Package template has tools for finding VM templates.
services/govmomi/vcenter
Package vcenter has tools for cloning virtual machines in vcenter.
Package vcenter has tools for cloning virtual machines in vcenter.
services/network
Package network contains code for configuring network services.
Package network contains code for configuring network services.
services/vmoperator
Package vmoperator contains reconcilers and related functions for VM Operator based VSphereMachines.
Package vmoperator contains reconcilers and related functions for VM Operator based VSphereMachines.
session
Package session contains tools to create and retrieve a VCenter session.
Package session contains tools to create and retrieve a VCenter session.
taggable
Package taggable handles tagging objects in VSphere.
Package taggable handles tagging objects in VSphere.
util
Package util contains utils.
Package util contains utils.
version
Package version implements version handling code.
Package version implements version handling code.
test module

Jump to

Keyboard shortcuts

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