Skip to content

Commit 824a1aa

Browse files
authored
Merge pull request #7256 from outscale-vbr/outscale-clusterctl
✨ Add 3DS outscale provider
2 parents 4d8c88f + e6b4951 commit 824a1aa

File tree

7 files changed

+62
-3
lines changed

7 files changed

+62
-3
lines changed

cmd/clusterctl/client/config/providers_client.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ const (
4545
DOProviderName = "digitalocean"
4646
GCPProviderName = "gcp"
4747
HetznerProviderName = "hetzner"
48+
OutscaleProviderName = "outscale"
4849
IBMCloudProviderName = "ibmcloud"
4950
Metal3ProviderName = "metal3"
5051
NestedProviderName = "nested"
@@ -209,6 +210,11 @@ func (p *providersClient) defaults() []Provider {
209210
url: "https://github.com/syself/cluster-api-provider-hetzner/releases/latest/infrastructure-components.yaml",
210211
providerType: clusterctlv1.InfrastructureProviderType,
211212
},
213+
&provider{
214+
name: OutscaleProviderName,
215+
url: "https://github.com/outscale-dev/cluster-api-provider-outscale/releases/latest/infrastructure-components.yaml",
216+
providerType: clusterctlv1.InfrastructureProviderType,
217+
},
212218
&provider{
213219
name: IBMCloudProviderName,
214220
url: "https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/releases/latest/infrastructure-components.yaml",

cmd/clusterctl/client/config_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
7979
config.NutanixProviderName,
8080
config.OCIProviderName,
8181
config.OpenStackProviderName,
82+
config.OutscaleProviderName,
8283
config.PacketProviderName,
8384
config.SideroProviderName,
8485
config.VCloudDirectorProviderName,
@@ -120,6 +121,7 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
120121
config.NutanixProviderName,
121122
config.OCIProviderName,
122123
config.OpenStackProviderName,
124+
config.OutscaleProviderName,
123125
config.PacketProviderName,
124126
config.SideroProviderName,
125127
config.VCloudDirectorProviderName,

cmd/clusterctl/cmd/config_repositories_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ nested InfrastructureProvider https://github.com/kubernetes-sigs/
126126
nutanix InfrastructureProvider https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/latest/ infrastructure-components.yaml
127127
oci InfrastructureProvider https://github.com/oracle/cluster-api-provider-oci/releases/latest/ infrastructure-components.yaml
128128
openstack InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-openstack/releases/latest/ infrastructure-components.yaml
129+
outscale InfrastructureProvider https://github.com/outscale-dev/cluster-api-provider-outscale/releases/latest/ infrastructure-components.yaml
129130
packet InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-packet/releases/latest/ infrastructure-components.yaml
130131
sidero InfrastructureProvider https://github.com/siderolabs/sidero/releases/latest/ infrastructure-components.yaml
131132
vcd InfrastructureProvider https://github.com/vmware/cluster-api-provider-cloud-director/releases/latest/ infrastructure-components.yaml
@@ -238,6 +239,10 @@ var expectedOutputYaml = `- File: core_components.yaml
238239
Name: openstack
239240
ProviderType: InfrastructureProvider
240241
URL: https://github.com/kubernetes-sigs/cluster-api-provider-openstack/releases/latest/
242+
- File: infrastructure-components.yaml
243+
Name: outscale
244+
ProviderType: InfrastructureProvider
245+
URL: https://github.com/outscale-dev/cluster-api-provider-outscale/releases/latest/
241246
- File: infrastructure-components.yaml
242247
Name: packet
243248
ProviderType: InfrastructureProvider

docs/book/src/clusterctl/provider-contract.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ providers.
261261
|CAPVCD | cluster.x-k8s.io/provider=infrastructure-vcd |
262262
|CAPX | cluster.x-k8s.io/provider=infrastructure-nutanix |
263263
|CAPZ | cluster.x-k8s.io/provider=infrastructure-azure |
264-
264+
|CAPOSC | cluster.x-k8s.io/provider=infrastructure-outscale |
265265
### Workload cluster templates
266266

267267
An infrastructure provider could publish a **cluster templates** file to be used by `clusterctl generate cluster`.

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 Kubevirt
7878
### CAPO
7979
Cluster API Provider OpenStack
8080

81+
## CAPOSC
82+
Cluster API Provider Outscale
83+
8184
### CAPOCI
8285
Cluster API Provider Oracle Cloud Infrastructure (OCI)
8386

docs/book/src/reference/providers.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ updated info about which API version they are supporting.
2727
- [Equinix Metal (formerly Packet)](https://github.com/kubernetes-sigs/cluster-api-provider-packet)
2828
- [GCP](https://github.com/kubernetes-sigs/cluster-api-provider-gcp)
2929
- [Hetzner](https://github.com/syself/cluster-api-provider-hetzner)
30+
- [Outscale](https://github.com/outscale-dev/cluster-api-provider-outscale)
3031
- [IBM Cloud](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud)
3132
- [KubeVirt](https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt)
3233
- [MAAS](https://github.com/spectrocloud/cluster-api-provider-maas)

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

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ Additional documentation about experimental features can be found in [Experiment
206206
Depending on the infrastructure provider you are planning to use, some additional prerequisites should be satisfied
207207
before getting started with Cluster API. See below for the expected settings for common providers.
208208
209-
{{#tabs name:"tab-installation-infrastructure" tabs:"AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,IBM Cloud,Kubevirt,Metal3,Nutanix,OCI,OpenStack,VCD,vcluster,Virtink,vSphere"}}
209+
{{#tabs name:"tab-installation-infrastructure" tabs:"AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,IBM Cloud,Kubevirt,Metal3,Nutanix,OCI,OpenStack,Outscale,VCD,vcluster,Virtink,vSphere"}}
210210
{{#tab AWS}}
211211
212212
Download the latest binary of `clusterawsadm` from the [AWS provider releases].
@@ -367,6 +367,7 @@ clusterctl init --infrastructure digitalocean
367367
```
368368
369369
{{#/tab }}
370+
370371
{{#tab Docker}}
371372
372373
<aside class="note warning">
@@ -465,6 +466,23 @@ clusterctl init --infrastructure openstack
465466
```
466467
467468
{{#/tab }}
469+
470+
{{#tab Outscale}}
471+
472+
```bash
473+
export OSC_SECRET_KEY=<your-secret-key>
474+
export OSC_ACCESS_KEY=<your-access-key>
475+
export OSC_REGION=<you-region>
476+
# Create namespace
477+
kubectl create namespace cluster-api-provider-outscale-system
478+
# Create secret
479+
kubectl create secret generic cluster-api-provider-outscale --from-literal=access_key=${OSC_ACCESS_KEY} --from-literal=secret_key=${OSC_SECRET_KEY} --from-literal=region=${OSC_REGION} -n cluster-api-provider-outscale-system
480+
# Initialize the management cluster
481+
clusterctl init --infrastructure outscale
482+
```
483+
484+
{{#/tab }}
485+
468486
{{#tab VCD}}
469487
470488
Please follow the Cluster API Provider for [Cloud Director Getting Started Guide](https://github.com/vmware/cluster-api-provider-cloud-director/blob/main/README.md)
@@ -579,7 +597,7 @@ before configuring a cluster with Cluster API. Instructions are provided for com
579597
Otherwise, you can look at the `clusterctl generate cluster` [command][clusterctl generate cluster] documentation for details about how to
580598
discover the list of variables required by a cluster templates.
581599
582-
{{#tabs name:"tab-configuration-infrastructure" tabs:"AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,IBM Cloud,Kubevirt,Metal3,Nutanix,OpenStack,VCD,vcluster,Virtink,vSphere"}}
600+
{{#tabs name:"tab-configuration-infrastructure" tabs:"AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,IBM Cloud,Kubevirt,Metal3,Nutanix,OpenStack,Outscale,VCD,vcluster,Virtink,vSphere"}}
583601
{{#tab AWS}}
584602
585603
```bash
@@ -666,6 +684,7 @@ export DO_NODE_MACHINE_IMAGE==<your-capi-image-id>
666684
```
667685
668686
{{#/tab }}
687+
669688
{{#tab Docker}}
670689
671690
<aside class="note warning">
@@ -869,6 +888,29 @@ export OPENSTACK_EXTERNAL_NETWORK_ID=<external network ID>
869888
870889
A full configuration reference can be found in [configuration.md](https://github.com/kubernetes-sigs/cluster-api-provider-openstack/blob/master/docs/book/src/clusteropenstack/configuration.md).
871890
891+
{{#/tab }}
892+
{{#tab Outscale}}
893+
894+
A ClusterAPI compatible image must be available in your Outscale account. For instructions on how to build a compatible image
895+
see [image-builder](https://image-builder.sigs.k8s.io/capi/capi.html).
896+
897+
```bash
898+
# The outscale root disk iops
899+
export OSC_IOPS="<IOPS>"
900+
# The outscale root disk size
901+
export OSC_VOLUME_SIZE="<VOLUME_SIZE>"
902+
# The outscale root disk volumeType
903+
export OSC_VOLUME_TYPE="<VOLUME_TYPE>"
904+
# The outscale key pair
905+
export OSC_KEYPAIR_NAME="<KEYPAIR_NAME>"
906+
# The outscale subregion name
907+
export OSC_SUBREGION_NAME="<SUBREGION_NAME>"
908+
# The outscale vm type
909+
export OSC_VM_TYPE="<VM_TYPE>"
910+
# The outscale image name
911+
export OSC_IMAGE_NAME="<IMAGE_NAME>"
912+
```
913+
872914
{{#/tab }}
873915
{{#tab VCD}}
874916

0 commit comments

Comments
 (0)