Skip to content
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 @@ -73,6 +73,7 @@ const (
VultrProviderName = "vultr-vultr"
OpenNebulaProviderName = "opennebula"
ScalewayProviderName = "scaleway"
MetalStackProviderName = "metal-stack"
)

// Bootstrap providers.
Expand Down Expand Up @@ -342,6 +343,11 @@ func (p *providersClient) defaults() []Provider {
url: "https://github.com/scaleway/cluster-api-provider-scaleway/releases/latest/infrastructure-components.yaml",
providerType: clusterctlv1.InfrastructureProviderType,
},
&provider{
name: MetalStackProviderName,
url: "https://github.com/metal-stack/cluster-api-provider-metal-stack/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 @@ -92,6 +92,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
config.KubevirtProviderName,
config.LinodeProviderName,
config.MAASProviderName,
config.MetalStackProviderName,
config.Metal3ProviderName,
config.NestedProviderName,
config.NutanixProviderName,
Expand Down Expand Up @@ -163,6 +164,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
config.KubevirtProviderName,
config.LinodeProviderName,
config.MAASProviderName,
config.MetalStackProviderName,
config.Metal3ProviderName,
config.NestedProviderName,
config.NutanixProviderName,
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 @@ -137,6 +137,7 @@ kubekey InfrastructureProvider https://github.com/kubesphere
kubevirt InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/releases/latest/ infrastructure-components.yaml
linode-linode InfrastructureProvider https://github.com/linode/cluster-api-provider-linode/releases/latest/ infrastructure-components.yaml
maas InfrastructureProvider https://github.com/spectrocloud/cluster-api-provider-maas/releases/latest/ infrastructure-components.yaml
metal-stack InfrastructureProvider https://github.com/metal-stack/cluster-api-provider-metal-stack/releases/latest/ infrastructure-components.yaml
metal3 InfrastructureProvider https://github.com/metal3-io/cluster-api-provider-metal3/releases/latest/ infrastructure-components.yaml
my-infra-provider InfrastructureProvider /home/.config/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
Expand Down Expand Up @@ -315,6 +316,10 @@ var expectedOutputYaml = `- File: core_components.yaml
Name: maas
ProviderType: InfrastructureProvider
URL: https://github.com/spectrocloud/cluster-api-provider-maas/releases/latest/
- File: infrastructure-components.yaml
Name: metal-stack
ProviderType: InfrastructureProvider
URL: https://github.com/metal-stack/cluster-api-provider-metal-stack/releases/latest/
- File: infrastructure-components.yaml
Name: metal3
ProviderType: InfrastructureProvider
Expand Down
3 changes: 2 additions & 1 deletion docs/book/src/developer/providers/contracts/clusterctl.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ A provider url should be in the form
* The components YAML, the metadata YAML and eventually the workload cluster templates are included into the same package version

See the [GitLab docs](https://docs.gitlab.com/ee/user/packages/generic_packages/) for more information
about how to create a generic package.
about how to create a generic package.

If you are hosting a private Gitlab repository, you can use a [personal access token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) or [project access token](https://docs.gitlab.com/user/project/settings/project_access_tokens.html) to access the provider artifacts by adding the `gitlab-access-token` variable to the `clusterctl` configuration in order to authenticate against the GitLab API.

Expand Down Expand Up @@ -350,6 +350,7 @@ providers.
| CAPKK | cluster.x-k8s.io/provider=infrastructure-kubekey |
| CAPK | cluster.x-k8s.io/provider=infrastructure-kubevirt |
| CAPM3 | cluster.x-k8s.io/provider=infrastructure-metal3 |
| CAPMS | cluster.x-k8s.io/provider=infrastructure-metal-stack |
| CAPN | cluster.x-k8s.io/provider=infrastructure-nested |
| CAPONE | cluster.x-k8s.io/provider=infrastructure-opennebula |
| CAPO | cluster.x-k8s.io/provider=infrastructure-openstack |
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 @@ -78,6 +78,9 @@ Cluster API Provider Akamai (Linode)
### CAPM3
Cluster API Provider Metal3

### CAPMS
Cluster API Provider metal-stack

### CAPN
Cluster API Provider Nested

Expand Down
3 changes: 2 additions & 1 deletion docs/book/src/reference/providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ by SIG Cluster Lifecycle as well as providers from other open-source repositorie

Each provider is the responsibility of the respective maintainers and we highly recommend
everyone interested in a specific provider to engage with the corresponding team to show support, share use cases,
learn more about the other users of the same provider.
learn more about the other users of the same provider.

We also recommend to read provider's documentation carefully, test it, and perform a proper
due diligence before deciding to use a provider in production, like you will do for any other open source project.
Expand Down Expand Up @@ -59,6 +59,7 @@ source of inspiration and ideas for others.
- [KubeVirt](https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt)
- [MAAS](https://github.com/spectrocloud/cluster-api-provider-maas)
- [Metal3](https://github.com/metal3-io/cluster-api-provider-metal3)
- [metal-stack](https://github.com/metal-stack/cluster-api-provider-metal-stack)
- [Microvm](https://github.com/liquidmetal-dev/cluster-api-provider-microvm)
- [Nested](https://github.com/kubernetes-sigs/cluster-api-provider-nested)
- [Nutanix](https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix)
Expand Down
39 changes: 34 additions & 5 deletions docs/book/src/user/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,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:"Akamai (Linode),AWS,Azure,CloudStack,DigitalOcean,Docker,GCP,Harvester,Hetzner,Hivelocity,Huawei,IBM Cloud,IONOS Cloud,K0smotron,KubeKey,KubeVirt,Metal3,Nutanix,OCI,OpenNebula,OpenStack,Outscale,Proxmox,Scaleway,VCD,vcluster,Virtink,vSphere,Vultr"}}
{{#tabs name:"tab-installation-infrastructure" tabs:"Akamai (Linode),AWS,Azure,CloudStack,DigitalOcean,Docker,GCP,Harvester,Hetzner,Hivelocity,Huawei,IBM Cloud,IONOS Cloud,K0smotron,KubeKey,KubeVirt,Metal3,metal-stack,Nutanix,OCI,OpenNebula,OpenStack,Outscale,Proxmox,Scaleway,VCD,vcluster,Virtink,vSphere,Vultr"}}
{{#tab Akamai (Linode)}}

```bash
Expand Down Expand Up @@ -705,6 +705,15 @@ clusterctl init --infrastructure kubevirt

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

{{#/tab }}
{{#tab metal-stack}}

```bash
clusterctl init --infrastructure metal-stack
```

Please follow the Cluster API Provider for [metal-stack Getting Started Guide](https://metal-stack.io/docs/references/cluster-api-provider-metal-stack#getting-started)

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

Expand Down Expand Up @@ -911,7 +920,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:"Akamai (Linode),AWS,Azure,CloudStack,DigitalOcean,Docker,GCP,Harvester,Huawei,IBM Cloud,IONOS Cloud,K0smotron,KubeKey,KubeVirt,Metal3,Nutanix,OpenNebula,OpenStack,Outscale,Proxmox,Scaleway,Tinkerbell,VCD,vcluster,Virtink,vSphere,Vultr"}}
{{#tabs name:"tab-configuration-infrastructure" tabs:"Akamai (Linode),AWS,Azure,CloudStack,DigitalOcean,Docker,GCP,Harvester,Huawei,IBM Cloud,IONOS Cloud,K0smotron,KubeKey,KubeVirt,Metal3,metal-stack,Nutanix,OpenNebula,OpenStack,Outscale,Proxmox,Scaleway,Tinkerbell,VCD,vcluster,Virtink,vSphere,Vultr"}}
{{#tab Akamai (Linode)}}

```bash
Expand Down Expand Up @@ -1208,7 +1217,7 @@ Please visit the [KubeKey provider] for more information.
{{#/tab }}
{{#tab KubeVirt}}

In this example, we'll use the image for Kubernetes v1.32.1:
In this example, we'll use the image for Kubernetes v1.32.1:
```bash
export NODE_VM_IMAGE_TEMPLATE="quay.io/capk/ubuntu-2404-container-disk:v1.32.1"
export CAPK_GUEST_K8S_VERSION="${NODE_VM_IMAGE_TEMPLATE/*:/}"
Expand All @@ -1220,8 +1229,8 @@ Please visit the [KubeVirt project][KubeVirt provider] for more information.

<h1>Note</h1>

Find additional images under [quay.io/capk/ubuntu-2404-container-disk](https://quay.io/capk/ubuntu-2404-container-disk),
[quay.io/capk/ubuntu-2204-container-disk](https://quay.io/capk/ubuntu-2204-container-disk),
Find additional images under [quay.io/capk/ubuntu-2404-container-disk](https://quay.io/capk/ubuntu-2404-container-disk),
[quay.io/capk/ubuntu-2204-container-disk](https://quay.io/capk/ubuntu-2204-container-disk),
or [quay.io/capk/ubuntu-2004-container-disk](https://quay.io/capk/ubuntu-2004-container-disk).

Alternatively, create your own image; see [here](https://github.com/kubernetes-sigs/image-builder).
Expand Down Expand Up @@ -1257,6 +1266,25 @@ export IRONIC_INSPECTOR_NO_BASIC_AUTH=true

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

{{#/tab }}
{{#tab metal-stack}}

```bash
export METAL_PARTITION=<metal-stack-partition>
export METAL_PROJECT_ID=<metal-stack-project-id>
export CONTROL_PLANE_IP=<metal-stack-control-plane-ip>

export FIREWALL_MACHINE_IMAGE=<firewall-os-image>
export FIREWALL_MACHINE_SIZE=<firewall-size>

export CONTROL_PLANE_MACHINE_IMAGE=<machine-os-image>
export CONTROL_PLANE_MACHINE_SIZE=<machine-size>
export WORKER_MACHINE_IMAGE=<machine-os-image>
export WORKER_MACHINE_SIZE=<machine-size>
```

Please visit the [metal-stack getting started guide](https://metal-stack.io/docs/references/cluster-api-provider-metal-stack#getting-started) for more details.

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

Expand Down Expand Up @@ -2018,6 +2046,7 @@ kind delete cluster
[management cluster]: ../reference/glossary.md#management-cluster
[Metal3 getting started guide]: https://github.com/metal3-io/cluster-api-provider-metal3/blob/main/docs/getting-started.md
[Metal3 provider]: https://github.com/metal3-io/cluster-api-provider-metal3/
[metal-stack provider]: https://github.com/metal-stack/cluster-api-provider-metal-stack/
[K0smotron provider]: https://github.com/k0sproject/k0smotron
[KubeKey provider]: https://github.com/kubesphere/kubekey
[KubeVirt provider]: https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/
Expand Down