Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ Add Nutanix Provider #6378

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions cmd/clusterctl/client/config/providers_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ const (
IBMCloudProviderName = "ibmcloud"
Metal3ProviderName = "metal3"
NestedProviderName = "nested"
NutanixProviderName = "nutanix"
OCIProviderName = "oci"
OpenStackProviderName = "openstack"
PacketProviderName = "packet"
Expand Down Expand Up @@ -196,6 +197,11 @@ func (p *providersClient) defaults() []Provider {
url: "https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/releases/latest/infrastructure-components.yaml",
providerType: clusterctlv1.InfrastructureProviderType,
},
&provider{
name: NutanixProviderName,
url: "https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/latest/infrastructure-components.yaml",
providerType: clusterctlv1.InfrastructureProviderType,
},

// Bootstrap providers
&provider{
Expand Down
2 changes: 2 additions & 0 deletions cmd/clusterctl/client/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
config.MAASProviderName,
config.Metal3ProviderName,
config.NestedProviderName,
config.NutanixProviderName,
config.OCIProviderName,
config.OpenStackProviderName,
config.PacketProviderName,
Expand Down Expand Up @@ -109,6 +110,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
config.MAASProviderName,
config.Metal3ProviderName,
config.NestedProviderName,
config.NutanixProviderName,
config.OCIProviderName,
config.OpenStackProviderName,
config.PacketProviderName,
Expand Down
5 changes: 5 additions & 0 deletions cmd/clusterctl/cmd/config_repositories_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ maas InfrastructureProvider https://github.com/spectrocloud/clu
metal3 InfrastructureProvider https://github.com/metal3-io/cluster-api-provider-metal3/releases/latest/ infrastructure-components.yaml
my-infra-provider InfrastructureProvider /home/.cluster-api/overrides/infrastructure-docker/latest/ infrastructure-components.yaml
nested InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-nested/releases/latest/ infrastructure-components.yaml
nutanix InfrastructureProvider https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/latest/ infrastructure-components.yaml
oci InfrastructureProvider https://github.com/oracle/cluster-api-provider-oci/releases/latest/ infrastructure-components.yaml
openstack InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-openstack/releases/latest/ infrastructure-components.yaml
packet InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-packet/releases/latest/ infrastructure-components.yaml
Expand Down Expand Up @@ -212,6 +213,10 @@ var expectedOutputYaml = `- File: core_components.yaml
Name: nested
ProviderType: InfrastructureProvider
URL: https://github.com/kubernetes-sigs/cluster-api-provider-nested/releases/latest/
- File: infrastructure-components.yaml
Name: nutanix
ProviderType: InfrastructureProvider
URL: https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/latest/
- File: infrastructure-components.yaml
Name: oci
ProviderType: InfrastructureProvider
Expand Down
1 change: 1 addition & 0 deletions docs/book/src/clusterctl/provider-contract.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@ providers.
|CAPO | cluster.x-k8s.io/provider=infrastructure-openstack |
|CAPDO | cluster.x-k8s.io/provider=infrastructure-digitalocean |
|CAPG | cluster.x-k8s.io/provider=infrastructure-gcp |
|CAPX | cluster.x-k8s.io/provider=infrastructure-nutanix |

### Workload cluster templates

Expand Down
3 changes: 3 additions & 0 deletions docs/book/src/reference/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ Cluster API Provider IBM Cloud
### CAPN
Cluster API Provider Nested

### CAPX
Cluster API Provider Nutanix

### CAPO
Cluster API Provider OpenStack

Expand Down
1 change: 1 addition & 0 deletions docs/book/src/reference/providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ updated info about which API version they are supporting.
- [KubeVirt](https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt)
- [MAAS](https://github.com/spectrocloud/cluster-api-provider-maas)
- [Nested](https://github.com/kubernetes-sigs/cluster-api-provider-nested)
- [Nutanix](https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix)
- [OpenStack](https://github.com/kubernetes-sigs/cluster-api-provider-openstack)
- [Equinix Metal (formerly Packet)](https://github.com/kubernetes-sigs/cluster-api-provider-packet)
- [Sidero](https://github.com/siderolabs/sidero)
Expand Down
25 changes: 21 additions & 4 deletions docs/book/src/user/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ Additional documentation about experimental features can be found in [Experiment
Depending on the infrastructure provider you are planning to use, some additional prerequisites should be satisfied
before getting started with Cluster API. See below for the expected settings for common providers.

{{#tabs name:"tab-installation-infrastructure" tabs:"AWS,Azure,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,Metal3,OCI,OpenStack,vSphere"}}
{{#tabs name:"tab-installation-infrastructure" tabs:"AWS,Azure,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,Metal3,Nutanix,OCI,OpenStack,vSphere"}}
{{#tab AWS}}

Download the latest binary of `clusterawsadm` from the [AWS provider releases] and make sure to place it in your path.
Expand Down Expand Up @@ -312,6 +312,11 @@ Please visit the [Hetzner project][Hetzner provider].

Please visit the [Metal3 project][Metal3 provider].

{{#/tab }}
{{#tab Nutanix}}

Please follow the Cluster API Provider for [Nutanix Getting Started Guide](https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/blob/main/docs/getting_started.md)

{{#/tab }}
{{#tab OCI}}

Expand Down Expand Up @@ -412,7 +417,7 @@ before configuring a cluster with Cluster API. Instructions are provided for com
Otherwise, you can look at the `clusterctl generate cluster` [command][clusterctl generate cluster] documentation for details about how to
discover the list of variables required by a cluster templates.

{{#tabs name:"tab-configuration-infrastructure" tabs:"AWS,Azure,DigitalOcean,Docker,Equinix Metal,GCP,Metal3,OpenStack,vSphere"}}
{{#tabs name:"tab-configuration-infrastructure" tabs:"AWS,Azure,DigitalOcean,Docker,Equinix Metal,GCP,Metal3,Nutanix,OpenStack,vSphere"}}
{{#tab AWS}}

```bash
Expand Down Expand Up @@ -558,6 +563,18 @@ export IRONIC_INSPECTOR_NO_BASIC_AUTH=true

Please visit the [Metal3 getting started guide] for more details.

{{#/tab }}
{{#tab Nutanix}}

A ClusterAPI compatible image must be available in your Nutanix image library. For instructions on how to build a compatible image
see [image-builder](https://image-builder.sigs.k8s.io/capi/capi.html).

To see all required Nutanix environment variables execute:
```bash
clusterctl generate cluster --infrastructure nutanix --list-variables capi-quickstart
```


{{#/tab }}
{{#tab OpenStack}}

Expand Down Expand Up @@ -638,7 +655,7 @@ For more information about prerequisites, credentials management, or permissions

For the purpose of this tutorial, we'll name our cluster capi-quickstart.

{{#tabs name:"tab-clusterctl-config-cluster" tabs:"Azure|AWS|DigitalOcean|Equinix Metal|GCP|Metal3|OpenStack|vSphere,Docker"}}
{{#tabs name:"tab-clusterctl-config-cluster" tabs:"Azure|AWS|DigitalOcean|Equinix Metal|GCP|Metal3|Nutanix|OpenStack|vSphere,Docker"}}
{{#tab Azure|AWS|DigitalOcean|Equinix Metal|GCP|Metal3|OpenStack|vSphere}}

```bash
Expand Down Expand Up @@ -763,7 +780,7 @@ See [Additional Notes for the Docker Provider](../clusterctl/developers.md#addit

Calico is used here as an example.

{{#tabs name:"tab-deploy-cni" tabs:"AWS|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|OpenStack|vSphere,Azure"}}
{{#tabs name:"tab-deploy-cni" tabs:"AWS|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|Nutanix|OpenStack|vSphere,Azure"}}
{{#tab AWS|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|OpenStack|vSphere}}

```bash
Expand Down