Skip to content

Commit bd3a683

Browse files
Merge pull request #126 from kavishkafernando/main
Fix css and content of the single cluster installation guide
2 parents c7076c4 + 765eff4 commit bd3a683

File tree

2 files changed

+111
-84
lines changed

2 files changed

+111
-84
lines changed

versioned_docs/version-v0.4.x/getting-started/quick-start-guide.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The setup uses a preconfigured Dev Container that includes all required dependen
2323
- **Docker** (Engine [26.0+](https://docs.docker.com/engine/release-notes/26.0/) recommended)
2424
- Allocate at least **4 GB RAM** and **2 CPUs**.
2525
- If you plan to install with BuildPlane, allocate **8 GB RAM** and **4 CPUs** for optimal performance.
26-
- **5–10** minutes of setup time
26+
- **5–10** minutes of setup time.
2727

2828
:::note
2929
If you encounter issues with Docker alternatives (Docker Desktop, Rancher Desktop, etc.), report them via
@@ -61,7 +61,7 @@ The setup uses a preconfigured Dev Container that includes all required dependen
6161

6262
This command performs the following:
6363

64-
- Creates a local [k3d](https://k3d.io/) (k3s-in-Docker) cluster
64+
- Creates a local [k3d](https://k3d.io/) (k3s-in-Docker) cluster.
6565
- Installs OpenChoreo and its dependencies using Helm charts.
6666

6767
:::tip

versioned_docs/version-v0.4.x/getting-started/single-cluster.mdx

Lines changed: 109 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,22 @@ import {versions} from '../_constants.mdx';
99

1010
# Single Cluster Setup
1111

12-
This guide provides step-by-step instructions for setting up a local development environment for OpenChoreo using k3d (k3s in Docker).
12+
This guide describes how to set up a local OpenChoreo development environment using k3d (k3s in Docker) with pre-built images and Helm charts from the OpenChoreo registry.
1313

14-
## Prerequisites
14+
<div className="step-card">
15+
<div className="prereq-header-text">⚙️ Prerequisites</div>
1516

16-
- **Docker** – Just have it installed on your machine, and you're good to go.
17-
- We recommend using [Docker Engine version 26.0+](https://docs.docker.com/engine/release-notes/26.0/).
18-
- Allocate at least **8 GB RAM** and **4 CPU** cores to Docker (or the VM running Docker).
19-
- **[k3d](https://k3d.io/stable/#installation)** v5.8+ installed
20-
- **[kubectl](https://kubernetes.io/docs/tasks/tools/)** v1.32+ installed
21-
- **[Helm](https://helm.sh/docs/intro/install/)** v3.12+ installed
17+
Ensure the following tools are installed and meet the minimum supported versions:
18+
- **Docker** (Engine [26.0+](https://docs.docker.com/engine/release-notes/26.0/) recommended)
19+
- Allocate at least **8 GB RAM** and **4 CPU** cores to Docker (or the VM running Docker).
20+
- **[k3d](https://k3d.io/stable/#installation)** v5.8+
21+
- **[kubectl](https://kubernetes.io/docs/tasks/tools/)** v1.32+
22+
- **[Helm](https://helm.sh/docs/intro/install/)** v3.12+
2223

24+
<div className="content-section-highlight">
2325
### Verify Prerequisites
2426

25-
Before proceeding, verify that all tools are installed and meet the minimum version requirements:
27+
Run the following commands to confirm that all prerequisites are available:
2628

2729
```bash
2830
# Check Docker (should be v20.10+)
@@ -36,56 +38,58 @@ kubectl version --client
3638

3739
# Check Helm (should be v3.12+)
3840
helm version --short
39-
```
40-
41-
Make sure Docker is running:
4241

43-
```bash
42+
# Confirm Docker is running
4443
docker info
4544
```
45+
</div>
4646

4747
:::note
48-
If you're using **Colima**, set the `K3D_FIX_DNS=0` environment variable when creating clusters to avoid DNS issues. See [k3d-io/k3d#1449](https://github.com/k3d-io/k3d/issues/1449) for more details.
48+
If you're using **Colima**, set the `K3D_FIX_DNS=0` environment variable when creating clusters to avoid DNS issues. See [k3d-io/k3d#1449](https://github.com/k3d-io/k3d/issues/1449) for details.
4949
:::
50+
</div>
5051

51-
## Quick Setup
52-
53-
This setup uses pre-built images and Helm charts from the OpenChoreo registry.
54-
55-
56-
### 1. Create OpenChoreo k3d Cluster
52+
<div className="step-card">
53+
<div className="step-header">
54+
<div className="step-header-icon">1</div>
55+
<div className="step-header-text">Create the OpenChoreo k3d Cluster</div>
56+
</div>
5757

5858
Create a new k3d cluster using the provided configuration:
5959

6060
<CodeBlock language="bash">
6161
{`curl -s https://raw.githubusercontent.com/openchoreo/openchoreo/${versions.githubRef}/install/k3d/single-cluster/config.yaml | k3d cluster create --config=-`}
6262
</CodeBlock>
6363

64-
This will:
65-
- Create a cluster named "openchoreo"
66-
- Set up a single k3d cluster with 1 server and 2 agents
67-
- Configure port mappings for accessing OpenChoreo services:
64+
This configuration:
65+
- Creates a cluster named "openchoreo"
66+
- Provisions 1 server and 2 agent nodes
67+
- Configures port mappings for OpenChoreo services:
6868
- **Control Plane**: `localhost:8080` (HTTP), `localhost:8443` (HTTPS)
6969
- **Data Plane**: `localhost:9080` (HTTP), `localhost:9443` (HTTPS) - for deployed workloads
7070
- **Build Plane**: `localhost:10081` (Argo Workflows UI), `localhost:10082` (Container Registry)
7171
- **Observability Plane**: `localhost:11081` (OpenSearch Dashboard), `localhost:11082` (OpenSearch API)
72-
- Set kubectl context to "k3d-openchoreo"
72+
- Sets the active `kubectl` context to **k3d-openchoreo**
7373

7474
:::tip
75-
For faster setup or if you have slow network, consider preloading images after creating the cluster. See the [Image Preloading section](#image-preloading-optional) at the end of this guide.
75+
For faster setup or slow networks, preload images after creating the cluster. See the [Image Preloading](#image-preloading-optional) section.
7676
:::
7777

7878
Verify the cluster is running:
7979

8080
```bash
8181
kubectl get nodes
8282
```
83+
All nodes should report a `Ready` status.
84+
</div>
8385

84-
You should see nodes in `Ready` status.
86+
<div className="step-card">
87+
<div className="step-header">
88+
<div className="step-header-icon">2</div>
89+
<div className="step-header-text">Install the OpenChoreo Control Plane</div>
90+
</div>
8591

86-
### 2. Install OpenChoreo Control Plane
87-
88-
Install the OpenChoreo control plane using the following helm install command. This will create the `openchoreo-control-plane` namespace automatically:
92+
Install the control plane components. The `openchoreo-control-plane` namespace is created automatically:
8993

9094
<CodeBlock language="bash">
9195
{`helm install openchoreo-control-plane oci://ghcr.io/openchoreo/helm-charts/openchoreo-control-plane \\
@@ -96,19 +100,24 @@ Install the OpenChoreo control plane using the following helm install command. T
96100
--values https://raw.githubusercontent.com/openchoreo/openchoreo/${versions.githubRef}/install/k3d/single-cluster/values-cp.yaml`}
97101
</CodeBlock>
98102

99-
Wait for the installation to complete and verify all pods are running:
103+
Wait for the installation to complete, then verify that all pods are running:
100104

101105
```bash
102106
kubectl get pods -n openchoreo-control-plane
103107
```
104108

105-
You should see pods for:
106-
- `controller-manager` (Running)
107-
- `cert-manager-*` (3 pods, all Running)
109+
You should see running pods for:
110+
- `controller-manager`
111+
- `cert-manager-*` (3 pods)
112+
</div>
108113

109-
### 3. Install OpenChoreo Data Plane
114+
<div className="step-card">
115+
<div className="step-header">
116+
<div className="step-header-icon">3</div>
117+
<div className="step-header-text">Install the OpenChoreo Data Plane</div>
118+
</div>
110119

111-
Install the OpenChoreo data plane using the following helm install command. This will create the `openchoreo-data-plane` namespace automatically:
120+
Install the data plane components. The `openchoreo-data-plane` namespace is created automatically:
112121

113122
<CodeBlock language="bash">
114123
{`helm install openchoreo-data-plane oci://ghcr.io/openchoreo/helm-charts/openchoreo-data-plane \\
@@ -119,23 +128,26 @@ Install the OpenChoreo data plane using the following helm install command. This
119128
--values https://raw.githubusercontent.com/openchoreo/openchoreo/${versions.githubRef}/install/k3d/single-cluster/values-dp.yaml`}
120129
</CodeBlock>
121130

122-
Wait for dataplane components to be ready:
131+
Wait for the installation to complete, then verify that all pods are running:
123132

124133
```bash
125134
kubectl get pods -n openchoreo-data-plane
126135
```
127136

128-
You should see pods for:
129-
- `envoy-gateway-*` (Running)
130-
- `external-secrets-*` (3 pods, all Running)
137+
You should see running pods for:
138+
- `envoy-gateway-*`
139+
- `external-secrets-*` (3 pods)
131140
- `fluent-bit-*` (Running on each node)
132-
- `gateway-external-*` (Running)
133-
134-
### 4. Install OpenChoreo Build Plane (Optional)
141+
- `gateway-external-*`
142+
</div>
135143

136-
The Build Plane is required if you plan to use OpenChoreo's internal CI capabilities. If you're only deploying pre-built container images, you can skip this step.
144+
<div className="step-card">
145+
<div className="step-header">
146+
<div className="step-header-icon">4</div>
147+
<div className="step-header-text">Install the OpenChoreo Build Plane (Optional)</div>
148+
</div>
137149

138-
Install the OpenChoreo build plane using the following helm install command for CI/CD capabilities. This will create the `openchoreo-build-plane` namespace automatically:
150+
Install this plane if you plan to use OpenChoreo’s internal CI capabilities. The `openchoreo-build-plane` namespace is created automatically. If you're only deploying pre-built container images, you can skip this step.
139151

140152
<CodeBlock language="bash">
141153
{`helm install openchoreo-build-plane oci://ghcr.io/openchoreo/helm-charts/openchoreo-build-plane \\
@@ -146,52 +158,58 @@ Install the OpenChoreo build plane using the following helm install command for
146158
--values https://raw.githubusercontent.com/openchoreo/openchoreo/${versions.githubRef}/install/k3d/single-cluster/values-bp.yaml`}
147159
</CodeBlock>
148160

149-
Wait for the build plane components to be ready:
161+
Wait for the installation to complete, then verify that all pods are running:
150162

151163
```bash
152164
kubectl get pods -n openchoreo-build-plane
153165
```
154166

155-
You should see pods for:
156-
- `argo-server-*` (Running)
157-
- `argo-workflow-controller-*` (Running)
158-
- `registry-*` (Running)
167+
You should see running pods for:
168+
- `argo-server-*`
169+
- `argo-workflow-controller-*`
170+
- `registry-*`
159171

160-
#### Configure BuildPlane
172+
#### Configure the Build Plane
161173

162-
Register the build plane with the control plane by running:
174+
Register the build plane with the control plane by running the script below. It creates a build plane resource in the default namespace.
163175

164176
<CodeBlock language="bash">
165177
{`curl -s https://raw.githubusercontent.com/openchoreo/openchoreo/${versions.githubRef}/install/add-build-plane.sh | bash -s -- --control-plane-context k3d-openchoreo`}
166178
</CodeBlock>
167179

168-
This script creates a BuildPlane resource in the default namespace.
169-
170-
Verify that the BuildPlane was created:
180+
Verify that the Build Plane was created:
171181

172182
```bash
173183
kubectl get buildplane -n default
174184
```
185+
</div>
175186

176-
### 5. Configure DataPlane
187+
<div className="step-card">
188+
<div className="step-header">
189+
<div className="step-header-icon">5</div>
190+
<div className="step-header-text">Configure the DataPlane</div>
191+
</div>
177192

178-
Register the data plane with the control plane by running:
193+
Register the data plane with the control plane by running the script below. It creates a data plane resource in the default namespace.
179194

180195
<CodeBlock language="bash">
181196
{`curl -s https://raw.githubusercontent.com/openchoreo/openchoreo/${versions.githubRef}/install/add-data-plane.sh | bash -s -- --control-plane-context k3d-openchoreo`}
182197
</CodeBlock>
183198

184-
This script creates a DataPlane resource in the default namespace.
185-
186-
Verify the DataPlane was created:
199+
Verify that the DataPlane was created:
187200

188201
```bash
189202
kubectl get dataplane -n default
190203
```
204+
</div>
191205

192-
### 6. Install OpenChoreo Observability Plane (Optional)
206+
<div className="step-card">
207+
<div className="step-header">
208+
<div className="step-header-icon">6</div>
209+
<div className="step-header-text">Install the OpenChoreo Observability Plane (Optional)</div>
210+
</div>
193211

194-
Install the OpenChoreo observability plane using the following helm install command for monitoring and logging capabilities. This will create the `openchoreo-observability-plane` namespace automatically:
212+
Install the observability plane components. The `openchoreo-observability-plane` namespace is created automatically:
195213

196214
<CodeBlock language="bash">
197215
{`helm install openchoreo-observability-plane oci://ghcr.io/openchoreo/helm-charts/openchoreo-observability-plane \\
@@ -202,16 +220,16 @@ Install the OpenChoreo observability plane using the following helm install comm
202220
--values https://raw.githubusercontent.com/openchoreo/openchoreo/${versions.githubRef}/install/k3d/single-cluster/values-op.yaml`}
203221
</CodeBlock>
204222

205-
Wait for the observability plane components to be ready:
223+
Wait for the installation to complete, then verify that all pods are running:
206224

207225
```bash
208226
kubectl get pods -n openchoreo-observability-plane
209227
```
210228

211-
You should see pods for:
212-
- `observer-*` (Running) - Log processing service
213-
- `opensearch-master-0` (Running) - Log storage backend
214-
- `opensearch-dashboards-*` (Running) - Visualization dashboard
229+
You should see running pods for:
230+
- `observer-*` - Log processing service
231+
- `opensearch-master-0` - Log storage backend
232+
- `opensearch-dashboards-*` - Visualization dashboard
215233
- `opensearch-cluster-setup-*` (Completed) - One-time setup job
216234

217235
:::note
@@ -224,24 +242,29 @@ Verify that all pods are ready:
224242
kubectl wait --for=condition=Ready pod --all -n openchoreo-observability-plane --timeout=600s
225243
```
226244

227-
Verify FluentBit is sending logs to OpenSearch:
245+
Verify that FluentBit is sending logs to OpenSearch:
228246

229247
```bash
230-
# Check if kubernetes indices are being created
248+
# Check if Kubernetes indices are being created
231249
kubectl exec -n openchoreo-observability-plane opensearch-master-0 -- curl -s "http://localhost:9200/_cat/indices?v" | grep kubernetes
232250

233-
# Check recent log count
251+
# Check the recent log count
234252
kubectl exec -n openchoreo-observability-plane opensearch-master-0 -- curl -s "http://localhost:9200/kubernetes-*/_count" | jq '.count'
235253
```
236254

237255
If the indices exist and the count is greater than 0, FluentBit is successfully collecting and storing logs.
256+
</div>
238257

239-
### 7. Verify OpenChoreo Installation
258+
<div className="step-card">
259+
<div className="step-header">
260+
<div className="step-header-icon">7</div>
261+
<div className="step-header-text">Verify the OpenChoreo Installation</div>
262+
</div>
240263

241-
#### Check that default OpenChoreo resources were created:
264+
Verify that default OpenChoreo resources were created:
242265

243266
```bash
244-
# Check default organization and project
267+
# Check default organizations, projects, and environments
245268
kubectl get organizations,projects,environments -A
246269

247270
# Check default component types
@@ -254,7 +277,7 @@ kubectl get crds | grep openchoreo
254277
kubectl get gateway,httproute -n openchoreo-data-plane
255278
```
256279

257-
#### Check that all components are running:
280+
Confirm all workloads are running:
258281

259282
```bash
260283
# Check cluster info
@@ -275,22 +298,25 @@ kubectl get pods -n openchoreo-observability-plane
275298
# Check nodes (should be Ready)
276299
kubectl get nodes
277300
```
301+
</div>
278302

279303
## Next Steps
280304

281-
After completing this setup you can:
305+
After completing this setup, you can:
282306

283-
1. [Deploy your first component](./deploy-first-component.mdx) to get started with OpenChoreo
284-
2. Test the <Link to={`https://github.com/openchoreo/openchoreo/tree/${versions.githubRef}/samples/gcp-microservices-demo`}>GCP microservices demo</Link> to see multi-component applications in action
285-
3. Deploy additional sample applications from the <Link to={`https://github.com/openchoreo/openchoreo/tree/${versions.githubRef}/samples`}>OpenChoreo samples</Link>
286-
4. Develop and test new OpenChoreo features
307+
1. [Deploy your first component](./deploy-first-component.mdx) to get started with OpenChoreo.
308+
2. Explore the <Link to={`https://github.com/openchoreo/openchoreo/tree/${versions.githubRef}/samples/gcp-microservices-demo`}>GCP microservices demo</Link> to see multi-component applications in action.
309+
3. Deploy additional sample applications from <Link to={`https://github.com/openchoreo/openchoreo/tree/${versions.githubRef}/samples`}>OpenChoreo samples</Link>.
310+
4. Develop and test new OpenChoreo features.
287311

312+
<div className="content-section-highlight">
288313
## Image Preloading (Optional)
289314

290-
If you have slow network or want to save bandwidth when re-creating clusters, you can preload images before installing components. This pulls images to your host machine first, then imports them to the k3d cluster.
291-
292-
Run this after creating the cluster (Step 1) but before installing components (Step 2). See the <Link to={`https://github.com/openchoreo/openchoreo/tree/${versions.githubRef}/install/k3d/single-cluster#image-preloading-optional`}>k3d single-cluster README</Link> for detailed preloading instructions.
315+
If you have a slow network or want to save bandwidth when recreating clusters, preload images before installing components. This pulls the images to your host machine and then imports them into the k3d cluster.
293316

317+
Run this after creating the cluster (Step 1) and before installing components (Step 2). Refer to the <Link to={`https://github.com/openchoreo/openchoreo/tree/${versions.githubRef}/install/k3d/single-cluster#image-preloading-optional`}>k3d single-cluster README</Link> for detailed preloading instructions.
318+
</div>
319+
<div className="content-section-highlight">
294320
## Cleaning Up
295321

296322
To completely remove the development environment:
@@ -299,3 +325,4 @@ To completely remove the development environment:
299325
# Delete the k3d cluster
300326
k3d cluster delete openchoreo
301327
```
328+
</div>

0 commit comments

Comments
 (0)