Skip to content

Commit

Permalink
Add docs
Browse files Browse the repository at this point in the history
  • Loading branch information
davidjumani committed Mar 25, 2022
1 parent 1794f7e commit cf85744
Showing 1 changed file with 67 additions and 6 deletions.
73 changes: 67 additions & 6 deletions docs/book/src/user/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,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:"AWS,Azure,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,Metal3,OCI,OpenStack,vSphere"}}
{{#tabs name:"tab-installation-infrastructure" tabs:"AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,Hetzner,Metal3,OCI,OpenStack,vSphere"}}
{{#tab AWS}}
Download the latest binary of `clusterawsadm` from the [AWS provider releases] and make sure to place it in your path.
Expand Down Expand Up @@ -263,6 +263,30 @@ kubectl create secret generic "${AZURE_CLUSTER_IDENTITY_SECRET_NAME}" --from-lit
clusterctl init --infrastructure azure
```
{{#/tab }}
{{#tab CloudStack}}
Create a file named cloud-config in the repo's root directory, substituting in your own environment's values
```bash
[Global]
api-url = <cloudstackApiUrl>
api-key = <cloudstackApiKey>
secret-key = <cloudstackSecretKey>
```
Create the base64 encoded credentials by catting your credentials file.
This command uses your environment variables and encodes
them in a value to be stored in a Kubernetes Secret.
```bash
export CLOUDSTACK_B64ENCODED_SECRET=`cat cloud-config | base64 | tr -d '\n'`
```
Finally, initialize the management cluster
```bash
clusterctl init --infrastructure cloudstack
```
{{#/tab }}
{{#tab DigitalOcean}}
Expand Down Expand Up @@ -429,7 +453,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:"AWS,Azure,DigitalOcean,Docker,Equinix Metal,GCP,Metal3,OpenStack,vSphere"}}
{{#tabs name:"tab-configuration-infrastructure" tabs:"AWS,Azure,CloudStack,DigitalOcean,Docker,Equinix Metal,GCP,Metal3,OpenStack,vSphere"}}
{{#tab AWS}}
```bash
Expand Down Expand Up @@ -465,6 +489,43 @@ export AZURE_NODE_MACHINE_TYPE="Standard_D2s_v3"
export AZURE_RESOURCE_GROUP="<ResourceGroupName>"
```
{{#/tab }}
{{#tab CloudStack}}
A ClusterAPI compatible image must be available in your Cloudstack. For instructions on how to build a compatible image
see [image-builder (Cloudstack)](https://image-builder.sigs.k8s.io/capi/providers/cloudstack.html)
Prebuilt images can be found [here](http://download.cloudstack.org/templates/capi/)
To see all required Cloudstack environment variables execute:
```bash
clusterctl generate cluster --infrastructure cloudstack --list-variables capi-quickstart
```
Apart from the script, the following Cloudstack environment variables are required.
```bash
# Set this to the name of the zone in which to deploy the cluster
export CLOUDSTACK_ZONE_NAME=<zone name>
# The name of the network on which the VMs will reside
export CLOUDSTACK_NETWORK_NAME=<network name>
# The endpoint of the workload cluster
export CLUSTER_ENDPOINT_IP=<cluster endpoint address>
export CLUSTER_ENDPOINT_PORT=<cluster endpoint port>
# The service offering of the control plane nodes
export CLOUDSTACK_CONTROL_PLANE_MACHINE_OFFERING=<control plane service offering name>
# The service offering of the worker nodes
export CLOUDSTACK_WORKER_MACHINE_OFFERING=<worker node service offering name>
# The capi compatible template to use
export CLOUDSTACK_TEMPLATE_NAME=<template name>
# The ssh key to use to log into the nodes
export CLOUDSTACK_SSH_KEY_NAME=<ssh key name>
# The kubernetes version of the workload cluster
export KUBERNETES_VERSION=<kubernetes version>
```
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).
{{#/tab }}
{{#tab DigitalOcean}}
Expand Down Expand Up @@ -657,8 +718,8 @@ For more information about prerequisites, credentials management, or permissions
For the purpose of this tutorial, we'll name our cluster capi-quickstart.
{{#tabs name:"tab-clusterctl-config-cluster" tabs:"Azure|AWS|DigitalOcean|Equinix Metal|GCP|Metal3|OpenStack|vSphere,Docker"}}
{{#tab Azure|AWS|DigitalOcean|Equinix Metal|GCP|Metal3|OpenStack|vSphere}}
{{#tabs name:"tab-clusterctl-config-cluster" tabs:"Azure|AWS|CloudStack|DigitalOcean|Equinix Metal|GCP|Metal3|OpenStack|vSphere,Docker"}}
{{#tab Azure|AWS|CloudStack|DigitalOcean|Equinix Metal|GCP|Metal3|OpenStack|vSphere}}
```bash
clusterctl generate cluster capi-quickstart \
Expand Down Expand Up @@ -782,8 +843,8 @@ See [Additional Notes for the Docker Provider](../clusterctl/developers.md#addit
Calico is used here as an example.
{{#tabs name:"tab-deploy-cni" tabs:"AWS|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|OpenStack|vSphere,Azure"}}
{{#tab AWS|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|OpenStack|vSphere}}
{{#tabs name:"tab-deploy-cni" tabs:"AWS|CloudStack|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|OpenStack|vSphere,Azure"}}
{{#tab AWS|CloudStack|DigitalOcean|Docker|Equinix Metal|GCP|Metal3|OpenStack|vSphere}}
```bash
kubectl --kubeconfig=./capi-quickstart.kubeconfig \
Expand Down

0 comments on commit cf85744

Please # to comment.