Skip to content

Commit cf85744

Browse files
committed
Add docs
1 parent 1794f7e commit cf85744

File tree

1 file changed

+67
-6
lines changed

1 file changed

+67
-6
lines changed

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

Lines changed: 67 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ Additional documentation about experimental features can be found in [Experiment
202202
Depending on the infrastructure provider you are planning to use, some additional prerequisites should be satisfied
203203
before getting started with Cluster API. See below for the expected settings for common providers.
204204
205-
{{#tabs name:"tab-installation-infrastructure" tabs:"AWS,Azure,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,Metal3,OCI,OpenStack,vSphere"}}
205+
{{#tabs name:"tab-installation-infrastructure" tabs:"AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,Metal3,OCI,OpenStack,vSphere"}}
206206
{{#tab AWS}}
207207
208208
Download the latest binary of `clusterawsadm` from the [AWS provider releases] and make sure to place it in your path.
@@ -263,6 +263,30 @@ kubectl create secret generic "${AZURE_CLUSTER_IDENTITY_SECRET_NAME}" --from-lit
263263
clusterctl init --infrastructure azure
264264
```
265265
266+
{{#/tab }}
267+
{{#tab CloudStack}}
268+
269+
Create a file named cloud-config in the repo's root directory, substituting in your own environment's values
270+
```bash
271+
[Global]
272+
api-url = <cloudstackApiUrl>
273+
api-key = <cloudstackApiKey>
274+
secret-key = <cloudstackSecretKey>
275+
```
276+
277+
Create the base64 encoded credentials by catting your credentials file.
278+
This command uses your environment variables and encodes
279+
them in a value to be stored in a Kubernetes Secret.
280+
281+
```bash
282+
export CLOUDSTACK_B64ENCODED_SECRET=`cat cloud-config | base64 | tr -d '\n'`
283+
```
284+
285+
Finally, initialize the management cluster
286+
```bash
287+
clusterctl init --infrastructure cloudstack
288+
```
289+
266290
{{#/tab }}
267291
{{#tab DigitalOcean}}
268292
@@ -429,7 +453,7 @@ before configuring a cluster with Cluster API. Instructions are provided for com
429453
Otherwise, you can look at the `clusterctl generate cluster` [command][clusterctl generate cluster] documentation for details about how to
430454
discover the list of variables required by a cluster templates.
431455
432-
{{#tabs name:"tab-configuration-infrastructure" tabs:"AWS,Azure,DigitalOcean,Docker,Equinix Metal,GCP,Metal3,OpenStack,vSphere"}}
456+
{{#tabs name:"tab-configuration-infrastructure" tabs:"AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,Metal3,OpenStack,vSphere"}}
433457
{{#tab AWS}}
434458
435459
```bash
@@ -465,6 +489,43 @@ export AZURE_NODE_MACHINE_TYPE="Standard_D2s_v3"
465489
export AZURE_RESOURCE_GROUP="<ResourceGroupName>"
466490
```
467491
492+
{{#/tab }}
493+
{{#tab CloudStack}}
494+
495+
A ClusterAPI compatible image must be available in your Cloudstack. For instructions on how to build a compatible image
496+
see [image-builder (Cloudstack)](https://image-builder.sigs.k8s.io/capi/providers/cloudstack.html)
497+
498+
Prebuilt images can be found [here](http://download.cloudstack.org/templates/capi/)
499+
500+
To see all required Cloudstack environment variables execute:
501+
```bash
502+
clusterctl generate cluster --infrastructure cloudstack --list-variables capi-quickstart
503+
```
504+
505+
Apart from the script, the following Cloudstack environment variables are required.
506+
```bash
507+
# Set this to the name of the zone in which to deploy the cluster
508+
export CLOUDSTACK_ZONE_NAME=<zone name>
509+
# The name of the network on which the VMs will reside
510+
export CLOUDSTACK_NETWORK_NAME=<network name>
511+
# The endpoint of the workload cluster
512+
export CLUSTER_ENDPOINT_IP=<cluster endpoint address>
513+
export CLUSTER_ENDPOINT_PORT=<cluster endpoint port>
514+
# The service offering of the control plane nodes
515+
export CLOUDSTACK_CONTROL_PLANE_MACHINE_OFFERING=<control plane service offering name>
516+
# The service offering of the worker nodes
517+
export CLOUDSTACK_WORKER_MACHINE_OFFERING=<worker node service offering name>
518+
# The capi compatible template to use
519+
export CLOUDSTACK_TEMPLATE_NAME=<template name>
520+
# The ssh key to use to log into the nodes
521+
export CLOUDSTACK_SSH_KEY_NAME=<ssh key name>
522+
# The kubernetes version of the workload cluster
523+
export KUBERNETES_VERSION=<kubernetes version>
524+
525+
```
526+
527+
A full configuration reference can be found in [configuration.md](https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/blob/master/docs/book/src/clustercloudstack/configuration.md).
528+
468529
{{#/tab }}
469530
{{#tab DigitalOcean}}
470531
@@ -657,8 +718,8 @@ For more information about prerequisites, credentials management, or permissions
657718
658719
For the purpose of this tutorial, we'll name our cluster capi-quickstart.
659720
660-
{{#tabs name:"tab-clusterctl-config-cluster" tabs:"Azure|AWS|DigitalOcean|Equinix Metal|GCP|Metal3|OpenStack|vSphere,Docker"}}
661-
{{#tab Azure|AWS|DigitalOcean|Equinix Metal|GCP|Metal3|OpenStack|vSphere}}
721+
{{#tabs name:"tab-clusterctl-config-cluster" tabs:"Azure|AWS|CloudStack|DigitalOcean|Equinix Metal|GCP|Metal3|OpenStack|vSphere,Docker"}}
722+
{{#tab Azure|AWS|CloudStack|DigitalOcean|Equinix Metal|GCP|Metal3|OpenStack|vSphere}}
662723
663724
```bash
664725
clusterctl generate cluster capi-quickstart \
@@ -782,8 +843,8 @@ See [Additional Notes for the Docker Provider](../clusterctl/developers.md#addit
782843
783844
Calico is used here as an example.
784845
785-
{{#tabs name:"tab-deploy-cni" tabs:"AWS|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|OpenStack|vSphere,Azure"}}
786-
{{#tab AWS|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|OpenStack|vSphere}}
846+
{{#tabs name:"tab-deploy-cni" tabs:"AWS|CloudStack|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|OpenStack|vSphere,Azure"}}
847+
{{#tab AWS|CloudStack|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|OpenStack|vSphere}}
787848
788849
```bash
789850
kubectl --kubeconfig=./capi-quickstart.kubeconfig \

0 commit comments

Comments
 (0)