Skip to content

Commit ff9237d

Browse files
committed
🌱 Add metal-stack provider
1 parent 2a3fabb commit ff9237d

File tree

7 files changed

+54
-7
lines changed

7 files changed

+54
-7
lines changed

cmd/clusterctl/client/config/providers_client.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ const (
7373
VultrProviderName = "vultr-vultr"
7474
OpenNebulaProviderName = "opennebula"
7575
ScalewayProviderName = "scaleway"
76+
MetalStackProviderName = "metal-stack"
7677
)
7778

7879
// Bootstrap providers.
@@ -342,6 +343,11 @@ func (p *providersClient) defaults() []Provider {
342343
url: "https://github.com/scaleway/cluster-api-provider-scaleway/releases/latest/infrastructure-components.yaml",
343344
providerType: clusterctlv1.InfrastructureProviderType,
344345
},
346+
&provider{
347+
name: MetalStackProviderName,
348+
url: "https://github.com/metal-stack/cluster-api-provider-metal-stack/releases/latest/infrastructure-components.yaml",
349+
providerType: clusterctlv1.InfrastructureProviderType,
350+
},
345351

346352
// Bootstrap providers
347353
&provider{

cmd/clusterctl/client/config_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
9393
config.LinodeProviderName,
9494
config.MAASProviderName,
9595
config.Metal3ProviderName,
96+
config.MetalStackProviderName,
9697
config.NestedProviderName,
9798
config.NutanixProviderName,
9899
config.OCIProviderName,
@@ -164,6 +165,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
164165
config.LinodeProviderName,
165166
config.MAASProviderName,
166167
config.Metal3ProviderName,
168+
config.MetalStackProviderName,
167169
config.NestedProviderName,
168170
config.NutanixProviderName,
169171
config.OCIProviderName,

cmd/clusterctl/cmd/config_repositories_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ kubevirt InfrastructureProvider https://github.com/kubernetes
138138
linode-linode InfrastructureProvider https://github.com/linode/cluster-api-provider-linode/releases/latest/ infrastructure-components.yaml
139139
maas InfrastructureProvider https://github.com/spectrocloud/cluster-api-provider-maas/releases/latest/ infrastructure-components.yaml
140140
metal3 InfrastructureProvider https://github.com/metal3-io/cluster-api-provider-metal3/releases/latest/ infrastructure-components.yaml
141+
metal-stack InfrastructureProvider https://github.com/metal-stack/cluster-api-provider-metal-stack/releases/latest/ infrastructure-components.yaml
141142
my-infra-provider InfrastructureProvider /home/.config/cluster-api/overrides/infrastructure-docker/latest/ infrastructure-components.yaml
142143
nested InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-nested/releases/latest/ infrastructure-components.yaml
143144
nutanix InfrastructureProvider https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/latest/ infrastructure-components.yaml
@@ -319,6 +320,10 @@ var expectedOutputYaml = `- File: core_components.yaml
319320
Name: metal3
320321
ProviderType: InfrastructureProvider
321322
URL: https://github.com/metal3-io/cluster-api-provider-metal3/releases/latest/
323+
- File: infrastructure-components.yaml
324+
Name: metal-stack
325+
ProviderType: InfrastructureProvider
326+
URL: https://github.com/metal-stack/cluster-api-provider-metal-stack/releases/latest/
322327
- File: infrastructure-components.yaml
323328
Name: my-infra-provider
324329
ProviderType: InfrastructureProvider

docs/book/src/developer/providers/contracts/clusterctl.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ A provider url should be in the form
131131
* The components YAML, the metadata YAML and eventually the workload cluster templates are included into the same package version
132132

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

136136
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.
137137

@@ -350,6 +350,7 @@ providers.
350350
| CAPKK | cluster.x-k8s.io/provider=infrastructure-kubekey |
351351
| CAPK | cluster.x-k8s.io/provider=infrastructure-kubevirt |
352352
| CAPM3 | cluster.x-k8s.io/provider=infrastructure-metal3 |
353+
| CAPMS | cluster.x-k8s.io/provider=infrastructure-metal-stack |
353354
| CAPN | cluster.x-k8s.io/provider=infrastructure-nested |
354355
| CAPONE | cluster.x-k8s.io/provider=infrastructure-opennebula |
355356
| CAPO | cluster.x-k8s.io/provider=infrastructure-openstack |

docs/book/src/reference/glossary.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ Cluster API Provider Akamai (Linode)
7878
### CAPM3
7979
Cluster API Provider Metal3
8080

81+
### CAPMS
82+
Cluster API Provider metal-stack
83+
8184
### CAPN
8285
Cluster API Provider Nested
8386

docs/book/src/reference/providers.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ by SIG Cluster Lifecycle as well as providers from other open-source repositorie
77

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

1212
We also recommend to read provider's documentation carefully, test it, and perform a proper
1313
due diligence before deciding to use a provider in production, like you will do for any other open source project.
@@ -59,6 +59,7 @@ source of inspiration and ideas for others.
5959
- [KubeVirt](https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt)
6060
- [MAAS](https://github.com/spectrocloud/cluster-api-provider-maas)
6161
- [Metal3](https://github.com/metal3-io/cluster-api-provider-metal3)
62+
- [metal-stack](https://github.com/metal-stack/cluster-api-provider-metal-stack)
6263
- [Microvm](https://github.com/liquidmetal-dev/cluster-api-provider-microvm)
6364
- [Nested](https://github.com/kubernetes-sigs/cluster-api-provider-nested)
6465
- [Nutanix](https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix)

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

Lines changed: 34 additions & 5 deletions
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,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"}}
284+
{{#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"}}
285285
{{#tab Akamai (Linode)}}
286286
287287
```bash
@@ -705,6 +705,15 @@ clusterctl init --infrastructure kubevirt
705705
706706
Please visit the [Metal3 project][Metal3 provider].
707707
708+
{{#/tab }}
709+
{{#tab metal-stack}}
710+
711+
```bash
712+
clusterctl init --infrastructure metal-stack
713+
```
714+
715+
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)
716+
708717
{{#/tab }}
709718
{{#tab Nutanix}}
710719
@@ -911,7 +920,7 @@ before configuring a cluster with Cluster API. Instructions are provided for com
911920
Otherwise, you can look at the `clusterctl generate cluster` [command][clusterctl generate cluster] documentation for details about how to
912921
discover the list of variables required by a cluster templates.
913922
914-
{{#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"}}
923+
{{#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"}}
915924
{{#tab Akamai (Linode)}}
916925
917926
```bash
@@ -1208,7 +1217,7 @@ Please visit the [KubeKey provider] for more information.
12081217
{{#/tab }}
12091218
{{#tab KubeVirt}}
12101219
1211-
In this example, we'll use the image for Kubernetes v1.32.1:
1220+
In this example, we'll use the image for Kubernetes v1.32.1:
12121221
```bash
12131222
export NODE_VM_IMAGE_TEMPLATE="quay.io/capk/ubuntu-2404-container-disk:v1.32.1"
12141223
export CAPK_GUEST_K8S_VERSION="${NODE_VM_IMAGE_TEMPLATE/*:/}"
@@ -1220,8 +1229,8 @@ Please visit the [KubeVirt project][KubeVirt provider] for more information.
12201229
12211230
<h1>Note</h1>
12221231
1223-
Find additional images under [quay.io/capk/ubuntu-2404-container-disk](https://quay.io/capk/ubuntu-2404-container-disk),
1224-
[quay.io/capk/ubuntu-2204-container-disk](https://quay.io/capk/ubuntu-2204-container-disk),
1232+
Find additional images under [quay.io/capk/ubuntu-2404-container-disk](https://quay.io/capk/ubuntu-2404-container-disk),
1233+
[quay.io/capk/ubuntu-2204-container-disk](https://quay.io/capk/ubuntu-2204-container-disk),
12251234
or [quay.io/capk/ubuntu-2004-container-disk](https://quay.io/capk/ubuntu-2004-container-disk).
12261235
12271236
Alternatively, create your own image; see [here](https://github.com/kubernetes-sigs/image-builder).
@@ -1257,6 +1266,25 @@ export IRONIC_INSPECTOR_NO_BASIC_AUTH=true
12571266
12581267
Please visit the [Metal3 getting started guide] for more details.
12591268
1269+
{{#/tab }}
1270+
{{#tab metal-stack}}
1271+
1272+
```bash
1273+
export METAL_PARTITION=<metal-stack-partition>
1274+
export METAL_PROJECT_ID=<metal-stack-project-id>
1275+
export CONTROL_PLANE_IP=<metal-stack-control-plane-ip>
1276+
1277+
export FIREWALL_MACHINE_IMAGE=<firewall-os-image>
1278+
export FIREWALL_MACHINE_SIZE=<firewall-size>
1279+
1280+
export CONTROL_PLANE_MACHINE_IMAGE=<machine-os-image>
1281+
export CONTROL_PLANE_MACHINE_SIZE=<machine-size>
1282+
export WORKER_MACHINE_IMAGE=<machine-os-image>
1283+
export WORKER_MACHINE_SIZE=<machine-size>
1284+
```
1285+
1286+
Please visit the [metal-stack getting started guide](https://metal-stack.io/docs/references/cluster-api-provider-metal-stack#getting-started) for more details.
1287+
12601288
{{#/tab }}
12611289
{{#tab Nutanix}}
12621290
@@ -2018,6 +2046,7 @@ kind delete cluster
20182046
[management cluster]: ../reference/glossary.md#management-cluster
20192047
[Metal3 getting started guide]: https://github.com/metal3-io/cluster-api-provider-metal3/blob/main/docs/getting-started.md
20202048
[Metal3 provider]: https://github.com/metal3-io/cluster-api-provider-metal3/
2049+
[metal-stack provider]: https://github.com/metal-stack/cluster-api-provider-metal-stack/
20212050
[K0smotron provider]: https://github.com/k0sproject/k0smotron
20222051
[KubeKey provider]: https://github.com/kubesphere/kubekey
20232052
[KubeVirt provider]: https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/

0 commit comments

Comments
 (0)