Skip to content

Commit 432fe85

Browse files
author
Jan Schoone
committed
docs(deployment): improve getting started docs
Signed-off-by: Jan Schoone <[email protected]>
1 parent 1ac7a3c commit 432fe85

File tree

1 file changed

+93
-2
lines changed

1 file changed

+93
-2
lines changed

docs/topics/quickstart.md

+93-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,96 @@
1-
# Quickstart
1+
# Getting Started
2+
3+
## Quickstart
24

35
Currently, there is a [demo](https://github.com/SovereignCloudStack/cluster-stacks-demo) that can be used to see how the Cluster Stack approach can work. It uses the Docker Provider Integration for Cluster API.
46

5-
For production use, the Cluster Stack Operator can be used together with the [Cluster Stack Provider OpenStack](https://github.com/SovereignCloudStack/cluster-stack-provider-openstack) to manage Kubernetes clusters on OpenStack. You can see how it is used in the corresponding [Quickstart Documentation](../../cluster-stacks/providers/openstack/quickstart.md) of Cluster Stacks.
7+
## Installation
8+
9+
### Prerequisites
10+
11+
```
12+
- clusterctl
13+
- envsubst
14+
- kubectl
15+
- Helm (optional)
16+
```
17+
18+
#### Cluster API
19+
20+
We assume access to a Kubernetes cluster. To start
21+
[kind](https://kind.sigs.k8s.io/) can be used for that.
22+
This Kubernetes cluster must act as Cluster API management cluster.
23+
If not already done, to make your Kubernetes cluster a management cluster by
24+
installing the Cluster API objects, you can do
25+
26+
```
27+
clusterctl init
28+
```
29+
30+
### Configure Release Source
31+
32+
The Cluster Stack Operator downloads Cluster Stack releases either from GitHub
33+
Releases or from an OCI registry.
34+
Depending on which method is preferred, environment variables must be set to
35+
give the Cluster Stack Operator access to the specific source.
36+
37+
#### Using GitHub Releases
38+
39+
> Be aware that GitHub enforces limitations on the number of API requests per
40+
> unit of time. To overcome this, it is recommended to configure a [personal
41+
> access token](https://github.com/settings/personal-access-tokens/new) for
42+
> authenticated calls. This will significantly increase the rate limit for GitHub
43+
> API requests. Fine grained PAT with `Public Repositories (read-only)` is
44+
> enough.
45+
46+
Following variables tells the Cluster Stack Operator to look for releases in
47+
`https://github.com/SovereignCloudStack/cluster-stacks`
48+
49+
```bash
50+
export GIT_PROVIDER_B64=Z2l0aHVi # github
51+
export GIT_ORG_NAME_B64=U292ZXJlaWduQ2xvdWRTdGFjaw== # SovereignCloudStack
52+
export GIT_REPOSITORY_NAME_B64=Y2x1c3Rlci1zdGFja3M= # cluster-stacks
53+
export GIT_ACCESS_TOKEN_B64=$(echo -n '<my-personal-access-token>' | base64 -w0)
54+
```
55+
56+
#### Using OCI Registry
57+
58+
Following variables tells the Cluster Stack Operator to look for releases in
59+
`https://registry.scs.community/kaas/cluster-stacks`
60+
61+
```bash
62+
export OCI_REGISTRY_B64=cmVnaXN0cnkuc2NzLmNvbW11bml0eQ== # registry.scs.community
63+
export OCI_REPOSITORY_B64=cmVnaXN0cnkuc2NzLmNvbW11bml0eS9rYWFzL2NsdXN0ZXItc3RhY2tzCg== # registry.scs.community/kaas/cluster-stacks
64+
```
65+
66+
If the registry is not public the Cluster Stack Operator please also provide
67+
`OCI_USERNAME_B64` and `OCI_PASSWORD_B64` or
68+
`OCI_ACCESS_TOKEN_B64`
69+
70+
### Install Cluster Stack Operator
71+
72+
#### Install by manifest
73+
74+
```bash
75+
# Get the latest CSO release version and apply CSO manifests
76+
curl -sSL https://github.com/SovereignCloudStack/cluster-stack-operator/releases/latest/download/cso-infrastructure-components.yaml | envsubst | kubectl apply -f -
77+
```
78+
79+
##### Enable OCI registry as source
80+
81+
Since GitHub is set as default source for the Cluster Stack releases, this can be changed with a patch:
82+
83+
```bash
84+
kubectl patch deployment -n cso-system cso-controller-manager --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/command", "value": ["/manager", "-source", "oci"]}]'
85+
```
86+
87+
#### Install with Helm (experimental)
88+
89+
There are simple Helm charts available which were created especially to make the switch between the sources easier.
90+
91+
```bash
92+
helm upgrade -i cso -n cso-system \
93+
--create-namespace oci://registry.scs.community/cluster-stacks/cso \
94+
--set controllerManager.manager.source=oci \
95+
--set clusterStackVariables.ociRepository=registry.scs.community/kaas/cluster-stacks
96+
```

0 commit comments

Comments
 (0)