Skip to content

Commit

Permalink
Merge pull request #10512 from k8s-infra-cherrypick-robot/cherry-pick…
Browse files Browse the repository at this point in the history
…-10471-to-release-1.7

[release-1.7] 🌱 feat: add support for the linode-linode infrastructure provider to clusterctl
  • Loading branch information
k8s-ci-robot committed Apr 25, 2024
2 parents 1cc294a + 4f06b9e commit 6de0198
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 2 deletions.
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 @@ -49,6 +49,7 @@ const (
OutscaleProviderName = "outscale"
IBMCloudProviderName = "ibmcloud"
InMemoryProviderName = "in-memory"
LinodeProviderName = "linode-linode"
Metal3ProviderName = "metal3"
NestedProviderName = "nested"
NutanixProviderName = "nutanix"
Expand Down Expand Up @@ -149,6 +150,11 @@ func (p *providersClient) defaults() []Provider {
},

// Infrastructure providers
&provider{
name: LinodeProviderName,
url: "https://github.com/linode/cluster-api-provider-linode/releases/latest/infrastructure-components.yaml",
providerType: clusterctlv1.InfrastructureProviderType,
},
&provider{
name: AWSProviderName,
url: "https://github.com/kubernetes-sigs/cluster-api-provider-aws/releases/latest/infrastructure-components.yaml",
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 @@ -88,6 +88,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
config.K0smotronProviderName,
config.KubeKeyProviderName,
config.KubevirtProviderName,
config.LinodeProviderName,
config.MAASProviderName,
config.Metal3ProviderName,
config.NestedProviderName,
Expand Down Expand Up @@ -147,6 +148,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
config.K0smotronProviderName,
config.KubeKeyProviderName,
config.KubevirtProviderName,
config.LinodeProviderName,
config.MAASProviderName,
config.Metal3ProviderName,
config.NestedProviderName,
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 @@ -136,6 +136,7 @@ in-memory InfrastructureProvider https://github.com/kubernetes-s
k0sproject-k0smotron InfrastructureProvider https://github.com/k0sproject/k0smotron/releases/latest/ infrastructure-components.yaml
kubekey InfrastructureProvider https://github.com/kubesphere/kubekey/releases/latest/ infrastructure-components.yaml
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
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
Expand Down Expand Up @@ -287,6 +288,10 @@ var expectedOutputYaml = `- File: core_components.yaml
Name: kubevirt
ProviderType: InfrastructureProvider
URL: https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/releases/latest/
- File: infrastructure-components.yaml
Name: linode-linode
ProviderType: InfrastructureProvider
URL: https://github.com/linode/cluster-api-provider-linode/releases/latest/
- File: infrastructure-components.yaml
Name: maas
ProviderType: InfrastructureProvider
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 @@ -75,6 +75,9 @@ Cluster API Provider IBM Cloud
### CAPIO
Cluster API Operator

### CAPL
Cluster API Provider Akamai (Linode)

### CAPM3
Cluster API Provider Metal3

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 @@ -25,6 +25,7 @@ updated info about which API version they are supporting.
- [k0smotron/k0s](https://github.com/k0sproject/k0smotron)

## Infrastructure
- [Akamai (Linode)](https://linode.github.io/cluster-api-provider-linode/)
- [AWS](https://cluster-api-aws.sigs.k8s.io/)
- [Azure](https://github.com/kubernetes-sigs/cluster-api-provider-azure)
- [Azure Stack HCI](https://github.com/microsoft/cluster-api-provider-azurestackhci)
Expand Down
26 changes: 24 additions & 2 deletions docs/book/src/user/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,16 @@ 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,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,Hivelocity,IBM Cloud,K0smotron,KubeKey,KubeVirt,Metal3,Nutanix,OCI,OpenStack,Outscale,Proxmox,VCD,vcluster,Virtink,vSphere"}}
{{#tabs name:"tab-installation-infrastructure" tabs:"Akamai (Linode),AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,Hivelocity,IBM Cloud,K0smotron,KubeKey,KubeVirt,Metal3,Nutanix,OCI,OpenStack,Outscale,Proxmox,VCD,vcluster,Virtink,vSphere"}}
{{#tab Akamai (Linode)}}
```bash
export LINODE_TOKEN=<your-access-token>
# Initialize the management cluster
clusterctl init --infrastructure linode-linode
```
{{#/tab }}
{{#tab AWS}}
Download the latest binary of `clusterawsadm` from the [AWS provider releases]. The [clusterawsadm] command line utility assists with identity and access management (IAM) for [Cluster API Provider AWS][capa].
Expand Down Expand Up @@ -852,7 +861,19 @@ 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,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,IBM Cloud,K0smotron,KubeKey,KubeVirt,Metal3,Nutanix,OpenStack,Outscale,Proxmox,VCD,vcluster,Virtink,vSphere"}}
{{#tabs name:"tab-configuration-infrastructure" tabs:"Akamai (Linode),AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,IBM Cloud,K0smotron,KubeKey,KubeVirt,Metal3,Nutanix,OpenStack,Outscale,Proxmox,VCD,vcluster,Virtink,vSphere"}}
{{#tab Akamai (Linode)}}
```bash
export LINODE_REGION=us-ord
export LINODE_TOKEN=<your linode PAT>
export LINODE_CONTROL_PLANE_MACHINE_TYPE=g6-standard-2
export LINODE_MACHINE_TYPE=g6-standard-2
```
See the [Akamai (Linode) provider] for more information.
{{#/tab }}
{{#tab AWS}}
```bash
Expand Down Expand Up @@ -1706,6 +1727,7 @@ kind delete cluster
<!-- links -->
[Experimental Features]: ../tasks/experimental-features/experimental-features.md
[Akamai (Linode) provider]: https://linode.github.io/cluster-api-provider-linode/introduction.html
[AWS provider prerequisites]: https://cluster-api-aws.sigs.k8s.io/topics/using-clusterawsadm-to-fulfill-prerequisites.html
[AWS provider releases]: https://github.com/kubernetes-sigs/cluster-api-provider-aws/releases
[Azure Provider Prerequisites]: https://capz.sigs.k8s.io/topics/getting-started.html#prerequisites
Expand Down

0 comments on commit 6de0198

Please sign in to comment.