Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Commit 5f53f97

Browse files
jklippelmichal-gubrickyjschoone
authored
📖 Replace quickstart document by a link (#152)
* Replace quickstart document by a link Currently there are two quickstart documents. This is very confusing. There should only be one quickstart. This commit replaces the quickstart document in this repository with a link to the current quickstart document in the cluster-stacks repository. Signed-off-by: Jan Klippel <[email protected]> * Update docs/quickstart.md Co-authored-by: Michal Gubricky <[email protected]> Signed-off-by: jklippel <[email protected]> * Update docs/quickstart.md Co-authored-by: Michal Gubricky <[email protected]> Signed-off-by: Jan Schoone <[email protected]> --------- Signed-off-by: Jan Klippel <[email protected]> Signed-off-by: jklippel <[email protected]> Signed-off-by: Jan Schoone <[email protected]> Co-authored-by: Michal Gubricky <[email protected]> Co-authored-by: Jan Schoone <[email protected]>
1 parent d48a7ea commit 5f53f97

File tree

1 file changed

+2
-138
lines changed

1 file changed

+2
-138
lines changed

docs/quickstart.md

Lines changed: 2 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -1,141 +1,5 @@
11
# Quickstart
22

3-
This section guides you through all the necessary steps to create a workload Kubernetes cluster on top of the OpenStack infrastructure. The guide describes a path that utilizes the [clusterctl] CLI tool to manage the lifecycle of a [CAPI] management cluster and employs [kind] to create a local non-production management cluster.
3+
This document has been moved.
44

5-
Note that it is a common practice to create a temporary, local [bootstrap cluster](https://cluster-api.sigs.k8s.io/reference/glossary#bootstrap-cluster) which is then used to provision a target [management cluster](https://cluster-api.sigs.k8s.io/reference/glossary#management-cluster) on the selected infrastructure.
6-
7-
## Prerequisites
8-
9-
- Install [Docker] and [kind]
10-
- Install [kubectl]
11-
- Install [clusterctl]
12-
- Install [jq]
13-
- Install [go] # installation of the Go package `envsubst` is required to enable the expansion of variables specified in CSPO and CSO manifests.
14-
15-
## Initialize the management cluster
16-
17-
Create the kind cluster:
18-
19-
```bash
20-
kind create cluster
21-
```
22-
23-
Transform the Kubernetes cluster into a management cluster by using `clusterctl init` and bootstrap it with CAPI and Cluster API Provider OpenStack ([CAPO]) components:
24-
25-
```bash
26-
# Enable Cluster Class CAPI experimental feature
27-
export CLUSTER_TOPOLOGY=true
28-
29-
# Install CAPI and CAPO components
30-
clusterctl init --infrastructure openstack
31-
```
32-
33-
### Create a secret for OpenStack access
34-
35-
To enable communication between the CSPO and the Cluster API Provider for OpenStack (CAPO) with the OpenStack API, it is necessary to generate a secret containing the access data (clouds.yaml).
36-
Ensure that this secret is located in the identical namespace as the other Custom Resources.
37-
38-
> [!NOTE]
39-
> The default value of `cloudName` is configured as `openstack`. This setting can be overridden by including the `cloudName` key in the secret. Also, be aware that the name of the secret is expected to be `openstack` unless it is not set differently in OpenStackClusterStackReleaseTemplate in `identityRef.name` field.
40-
41-
```bash
42-
kubectl create secret generic openstack --from-file=clouds.yaml=path/to/clouds.yaml
43-
44-
# Label the created secrets so they are automatically moved to the target cluster later.
45-
46-
kubectl label secret openstack clusterctl.cluster.x-k8s.io/move=
47-
```
48-
49-
### CSO and CSPO variables preparation
50-
51-
The CSO and CSPO must be directed to the Cluster Stacks repository housing releases for the OpenStack provider.
52-
Modify and export the following environment variables if you wish to redirect CSO and CSPO to an alternative Git repository
53-
54-
Be aware that GitHub enforces limitations on the number of API requests per unit of time. To overcome this,
55-
it is recommended to configure a personal access token for authenticated calls. This will significantly increase the rate limit for GitHub API requests.
56-
57-
```bash
58-
export GIT_PROVIDER_B64=Z2l0aHVi # github
59-
export GIT_ORG_NAME_B64=U292ZXJlaWduQ2xvdWRTdGFjaw== # SovereignCloudStack
60-
export GIT_REPOSITORY_NAME_B64=Y2x1c3Rlci1zdGFja3M= # cluster-stacks
61-
export GIT_ACCESS_TOKEN_B64=<my-github-access-token>
62-
```
63-
64-
### CSO and CSPO deployment
65-
66-
Install the [envsubst] Go package. It is required to enable the expansion of variables specified in CSPO and CSO manifests.
67-
68-
```bash
69-
GOBIN=/tmp go install github.com/drone/envsubst/v2/cmd/envsubst@latest
70-
```
71-
72-
Get the latest CSO release version and apply CSO manifests to the management cluster.
73-
74-
```bash
75-
# Get the latest CSO release version
76-
CSO_VERSION=$(curl https://api.github.com/repos/SovereignCloudStack/cluster-stack-operator/releases/latest -s | jq .name -r)
77-
# Apply CSO manifests
78-
curl -sSL https://github.com/SovereignCloudStack/cluster-stack-operator/releases/download/${CSO_VERSION}/cso-infrastructure-components.yaml | /tmp/envsubst | kubectl apply -f -
79-
```
80-
81-
Get the latest CSPO release version and apply CSPO manifests to the management cluster.
82-
83-
```bash
84-
# Get the latest CSPO release version
85-
CSPO_VERSION=$(curl https://api.github.com/repos/SovereignCloudStack/cluster-stack-provider-openstack/releases/latest -s | jq .name -r)
86-
# Apply CSPO manifests
87-
curl -sSL https://github.com/SovereignCloudStack/cluster-stack-provider-openstack/releases/download/${CSPO_VERSION}/cspo-infrastructure-components.yaml | /tmp/envsubst | kubectl apply -f -
88-
```
89-
90-
## Create the workload cluster
91-
92-
To transfer the credentials stored in the mentioned secret [above](#create-a-secret-for-openstack-access) to the operator,
93-
create an `OpenStackClusterStackReleaseTemplate` object.
94-
Refer to the `examples/cspotemplate.yaml` file for more details.
95-
96-
Next, apply this template to the management cluster:
97-
98-
```bash
99-
kubectl apply -f <path-to-openstack-clusterstack-release-template>
100-
```
101-
102-
Proceed to apply the `ClusterStack` to the management cluster. For more details, refer to `examples/clusterstack.yaml`:
103-
104-
```bash
105-
kubectl apply -f <path-to-openstack-clusterstack>
106-
```
107-
108-
Please be patient and wait for the operator to execute the necessary tasks.
109-
If your `ClusterStack` object encounters no errors and reports usable versions, as well as the `openstackclusterstackrelease` and `openstacknodeimagereleases` are ready, you can deploy a workload cluster.
110-
This can be done by applying the cluster-template.
111-
Refer to the example of this template in `examples/cluster.yaml`:
112-
113-
```bash
114-
kubectl apply -f <path-to-cluster-template>
115-
```
116-
117-
Utilize a convenient CLI `clusterctl` to investigate the health of the cluster:
118-
119-
```bash
120-
clusterctl describe cluster <cluster-name>
121-
```
122-
123-
Once the cluster is provisioned and in good health, you can retrieve its kubeconfig and establish communication with the newly created workload cluster:
124-
125-
```bash
126-
# Get the workload cluster kubeconfig
127-
clusterctl get kubeconfig <cluster-name> > kubeconfig.yaml
128-
# Communicate with the workload cluster
129-
kubectl --kubeconfig kubeconfig.yaml get nodes
130-
```
131-
132-
<!-- links -->
133-
[Docker]: https://www.docker.com/
134-
[kind]: https://kind.sigs.k8s.io/
135-
[kubectl]: https://kubernetes.io/docs/tasks/tools/install-kubectl/
136-
[clusterctl]: https://cluster-api.sigs.k8s.io/user/quick-start.html#install-clusterctl
137-
[CAPO]: https://github.com/kubernetes-sigs/cluster-api-provider-openstack
138-
[CAPI]: https://cluster-api.sigs.k8s.io/
139-
[go]: https://go.dev/doc/install
140-
[envsubst]: https://github.com/drone/envsubst
141-
[jq]: https://jqlang.github.io/jq/download/
5+
You can find the current version of the quickstart guide [here](https://github.com/SovereignCloudStack/cluster-stacks/blob/main/providers/openstack/README.md).

0 commit comments

Comments
 (0)