Skip to content

Commit b04e721

Browse files
committed
add vultr provider
Signed-off-by: cmondragon <[email protected]>
1 parent 88c757f commit b04e721

File tree

5 files changed

+44
-2
lines changed

5 files changed

+44
-2
lines changed

cmd/clusterctl/client/config/providers_client.go

+7
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ const (
6969
ProxmoxProviderName = "proxmox"
7070
K0smotronProviderName = "k0sproject-k0smotron"
7171
IonosCloudProviderName = "ionoscloud-ionoscloud"
72+
VultrProviderName = "vultr"
7273
)
7374

7475
// Bootstrap providers.
@@ -313,6 +314,12 @@ func (p *providersClient) defaults() []Provider {
313314
url: "https://github.com/ionos-cloud/cluster-api-provider-ionoscloud/releases/latest/infrastructure-components.yaml",
314315
providerType: clusterctlv1.InfrastructureProviderType,
315316
},
317+
&provider{
318+
name: VultrProviderName,
319+
url: "https://github.com/vultr/cluster-api-provider-vultr/releases/latest/infrastructure-components.yaml",
320+
providerType: clusterctlv1.InfrastructureProviderType,
321+
},
322+
316323

317324
// Bootstrap providers
318325
&provider{

cmd/clusterctl/client/config_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
105105
config.VclusterProviderName,
106106
config.VirtinkProviderName,
107107
config.VSphereProviderName,
108+
config.VultrProviderName,
108109
config.InClusterIPAMProviderName,
109110
config.HelmAddonProviderName,
110111
},

cmd/clusterctl/cmd/config_repositories_test.go

+5
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ vcd InfrastructureProvider https://github.com/vmware/clust
154154
vcluster InfrastructureProvider https://github.com/loft-sh/cluster-api-provider-vcluster/releases/latest/ infrastructure-components.yaml
155155
virtink InfrastructureProvider https://github.com/smartxworks/cluster-api-provider-virtink/releases/latest/ infrastructure-components.yaml
156156
vsphere InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/latest/ infrastructure-components.yaml
157+
vultr InfrastructureProvider https://github.com/vultr/cluster-api-provider-vultr/releases/latest/ infrastructure-components.yaml
157158
in-cluster IPAMProvider https://github.com/kubernetes-sigs/cluster-api-ipam-provider-in-cluster/releases/latest/ ipam-components.yaml
158159
helm AddonProvider https://github.com/kubernetes-sigs/cluster-api-addon-provider-helm/releases/latest/ addon-components.yaml
159160
`
@@ -362,6 +363,10 @@ var expectedOutputYaml = `- File: core_components.yaml
362363
Name: vsphere
363364
ProviderType: InfrastructureProvider
364365
URL: https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/latest/
366+
- File: infrastructure-components.yaml
367+
Name: vultr
368+
ProviderType: InfrastructureProvider
369+
URL: https://github.com/vultr/cluster-api-provider-vultr/releases/latest/
365370
- File: ipam-components.yaml
366371
Name: in-cluster
367372
ProviderType: IPAMProvider

docs/book/src/reference/providers.md

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ updated info about which API version they are supporting.
5656
- [Virtink](https://github.com/smartxworks/cluster-api-provider-virtink)
5757
- [VMware Cloud Director](https://github.com/vmware/cluster-api-provider-cloud-director)
5858
- [vSphere](https://github.com/kubernetes-sigs/cluster-api-provider-vsphere)
59+
- [Vultr](https://github.com/vultr/cluster-api-provider-vultr)
5960
- [k0smotron RemoteMachine (SSH)](https://github.com/k0sproject/k0smotron)
6061

6162
## IP Address Management (IPAM)

docs/book/src/user/quick-start.md

+30-2
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ Additional documentation about experimental features can be found in [Experiment
281281
Depending on the infrastructure provider you are planning to use, some additional prerequisites should be satisfied
282282
before getting started with Cluster API. See below for the expected settings for common providers.
283283
284-
{{#tabs name:"tab-installation-infrastructure" tabs:"Akamai (Linode),AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,Hivelocity,IBM Cloud,IONOS Cloud,K0smotron,KubeKey,KubeVirt,Metal3,Nutanix,OCI,OpenStack,Outscale,Proxmox,VCD,vcluster,Virtink,vSphere"}}
284+
{{#tabs name:"tab-installation-infrastructure" tabs:"Akamai (Linode),AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,Hivelocity,IBM Cloud,IONOS Cloud,K0smotron,KubeKey,KubeVirt,Metal3,Nutanix,OCI,OpenStack,Outscale,Proxmox,VCD,vcluster,Virtink,vSphere,Vultr"}}
285285
{{#tab Akamai (Linode)}}
286286
287287
```bash
@@ -793,6 +793,15 @@ clusterctl init --infrastructure vsphere
793793
For more information about prerequisites, credentials management, or permissions for vSphere, see the [vSphere
794794
project][vSphere getting started guide].
795795
796+
{{#/tab }}
797+
{{#tab Vultr}}
798+
799+
```bash
800+
export VULTR_API_KEY=<your_api_key>
801+
802+
# initialize the management cluster
803+
clusterctl init --infrastructure vultr
804+
```
796805
{{#/tab }}
797806
{{#/tabs }}
798807
@@ -862,7 +871,7 @@ before configuring a cluster with Cluster API. Instructions are provided for com
862871
Otherwise, you can look at the `clusterctl generate cluster` [command][clusterctl generate cluster] documentation for details about how to
863872
discover the list of variables required by a cluster templates.
864873
865-
{{#tabs name:"tab-configuration-infrastructure" tabs:"Akamai (Linode),AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,IBM Cloud,IONOS Cloud,K0smotron,KubeKey,KubeVirt,Metal3,Nutanix,OpenStack,Outscale,Proxmox,Tinkerbell,VCD,vcluster,Virtink,vSphere"}}
874+
{{#tabs name:"tab-configuration-infrastructure" tabs:"Akamai (Linode),AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,IBM Cloud,IONOS Cloud,K0smotron,KubeKey,KubeVirt,Metal3,Nutanix,OpenStack,Outscale,Proxmox,Tinkerbell,VCD,vcluster,Virtink,vSphere,Vultr"}}
866875
{{#tab Akamai (Linode)}}
867876
868877
```bash
@@ -1339,6 +1348,25 @@ export CONTROL_PLANE_ENDPOINT_IP="1.2.3.4"
13391348
13401349
For more information about prerequisites, credentials management, or permissions for vSphere, see the [vSphere getting started guide].
13411350
1351+
{{#/tab }}
1352+
{{#tab Vultr}}
1353+
1354+
A Cluster API compatible image must be available in your Vultr account. For instructions on how to build a compatible image see image-builder for [Vultr](https://github.com/vultr/cluster-api-provider-vultr/blob/main/docs/getting-started.md)
1355+
1356+
```bash
1357+
export CLUSTER_NAME=<clustername>
1358+
export KUBERNETES_VERSION=v1.28.9
1359+
export CONTROL_PLANE_MACHINE_COUNT=1
1360+
export CONTROL_PLANE_PLANID=<plan_id>
1361+
export WORKER_MACHINE_COUNT=1
1362+
export WORKER_PLANID=<plan_id>
1363+
export MACHINE_IMAGE=<snapshot_id>
1364+
export REGION=<region>
1365+
export PLANID=<plan_id>
1366+
export VPCID=<vpc_id>
1367+
export SSHKEY_ID=<sshKey_id>
1368+
```
1369+
13421370
{{#/tab }}
13431371
{{#/tabs }}
13441372

0 commit comments

Comments
 (0)