Skip to content

Commit b7c2923

Browse files
committed
docs(deployment): refine for clarity and consistency
This commit improves the documentation across several files by enhancing clarity and consistency in language.
1 parent 8fb665c commit b7c2923

10 files changed

Lines changed: 65 additions & 65 deletions

File tree

dashboards/legacy/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ deployment and have not migrated to the Kubernetes-based v0.5.0+ stack.
66

77
## What's here
88

9-
- `Examon Test - Random Sensor.json` random-sensor verification dashboard
9+
- `Examon Test - Random Sensor.json`: random-sensor verification dashboard
1010
compatible with Grafana 7.3.10 and the AngularJS-based
1111
`grafana-kairosdb-datasource` plugin, both shipped by `docker-compose.yml`.
1212

@@ -22,4 +22,4 @@ Use the dashboards in the parent `dashboards/` folder. They are compatible
2222
with Grafana 10+ / 11+ (the Kubernetes Helm chart deploys current Grafana)
2323
and the React-based `arpnetworking-kairosdb-datasource` plugin. The bundled
2424
"Examon Test - Random Sensor" dashboard is also auto-provisioned by the
25-
Helm chart via the Grafana dashboard sidecar no manual import needed.
25+
Helm chart via the Grafana dashboard sidecar: no manual import needed.

deploy/helm/examon/dashboards/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Chart-bundled Grafana dashboards
22

33
> **Most users should NOT add files here.** To ship a custom dashboard,
4-
> create a `ConfigMap` labeled `grafana_dashboard=1` in any namespace
4+
> create a `ConfigMap` labeled `grafana_dashboard=1` in any namespace;
55
> the Grafana sidecar will load it automatically without a `helm
66
> upgrade`. See
77
> [Grafana Dashboards](../../../../docs/Deployment/kubernetes.md#grafana-dashboards)

docs/Deployment/change-propagation.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ umbrella file, which wins over the subchart default.
7272
all environments unless they override it.
7373
3. If **environment-specific**: edit the relevant `values-<env>.yaml`.
7474
4. **Check all three environment files** to verify they are consistent.
75-
Values files only override fields they explicitly set if a file doesn't
75+
Values files only override fields they explicitly set; if a file doesn't
7676
mention a field, it inherits from `values.yaml`.
7777

7878
**Checklist for value changes:**
@@ -110,7 +110,7 @@ deploy/helm/examon/subcharts/<service>/templates/
110110
_helpers.tpl # Template helper functions
111111
```
112112

113-
**Critical stepsubchart packaging:**
113+
**Critical step: subchart packaging.**
114114

115115
Helm does **not** read templates directly from `subcharts/`. Instead, it uses
116116
pre-packaged `.tgz` archives inside `deploy/helm/examon/charts/`. You must
@@ -191,7 +191,7 @@ the same tag (e.g. `latest`), nodes with `imagePullPolicy: IfNotPresent`
191191
For production images on GHCR, use semantic versioning (e.g. `1.3.0`,
192192
`1.3.1`). For development, use descriptive suffixes (e.g. `1.3.0-fix3`).
193193

194-
**What to propagate image tag changes:**
194+
**What to propagate when changing image tags:**
195195

196196
| File | Update |
197197
|------|--------|
@@ -223,23 +223,23 @@ For production images on GHCR, use semantic versioning (e.g. `1.3.0`,
223223

224224
This is the most complex scenario because it touches every layer:
225225

226-
**Step 1Subchart template:**
226+
**Step 1: Subchart template.**
227227
Edit `subcharts/examon-server/templates/configmap.yaml` to render the new
228228
field:
229229

230230
```yaml
231231
CASSANDRA_TIMEOUT = {{ .Values.config.cassandraTimeout }}
232232
```
233233

234-
**Step 2Subchart default:**
234+
**Step 2: Subchart default.**
235235
Edit `subcharts/examon-server/values.yaml`:
236236

237237
```yaml
238238
config:
239239
cassandraTimeout: 30
240240
```
241241
242-
**Step 3Umbrella default:**
242+
**Step 3: Umbrella default.**
243243
Edit `values.yaml`:
244244

245245
```yaml
@@ -248,7 +248,7 @@ examon-server:
248248
cassandraTimeout: 30
249249
```
250250

251-
**Step 4Environment overrides (if needed):**
251+
**Step 4: Environment overrides (if needed).**
252252
Edit `values-production.yaml`:
253253

254254
```yaml
@@ -257,21 +257,21 @@ examon-server:
257257
cassandraTimeout: 120
258258
```
259259

260-
**Step 5Rebuild and deploy:**
260+
**Step 5: Rebuild and deploy.**
261261

262262
```bash
263263
cd deploy/helm/examon && helm dependency update && cd ../../..
264264
helm upgrade examon ./deploy/helm/examon \
265265
-f ./deploy/helm/examon/values-<env>.yaml -n examon
266266
```
267267

268-
**Step 6Verify:**
268+
**Step 6: Verify.**
269269

270270
```bash
271271
helm get manifest examon -n examon | grep CASSANDRA_TIMEOUT
272272
```
273273

274-
**Step 7Documentation:**
274+
**Step 7: Documentation.**
275275
Update `docs/Deployment/configuration.md` with the new parameter.
276276

277277
---
@@ -280,14 +280,14 @@ Update `docs/Deployment/configuration.md` with the new parameter.
280280

281281
| What you changed | Rebuild image | `helm dependency update` | `helm upgrade` | Update values files |
282282
|------------------|:---:|:---:|:---:|:---:|
283-
| Value in `values-<env>.yaml` only | | | Yes | |
283+
| Value in `values-<env>.yaml` only | | | Yes | N/A |
284284
| Value in umbrella `values.yaml` | | | Yes | Check env files |
285285
| Subchart template (`subcharts/*/templates/`) | | **Yes** | Yes | If new field |
286286
| Subchart `values.yaml` (defaults) | | **Yes** | Yes | Check umbrella + env files |
287287
| Dockerfile or container scripts | **Yes** | | Yes | Update image tags |
288-
| K3d/K8s cluster config (`deploy/k3d/`) | | | Recreate cluster | |
289-
| External chart version (`Chart.yaml`) | | **Yes** | Yes | |
290-
| K8ssandra operator version | | | `helm upgrade k8ssandra-operator` | |
288+
| K3d/K8s cluster config (`deploy/k3d/`) | N/A | N/A | Recreate cluster | N/A |
289+
| External chart version (`Chart.yaml`) | | **Yes** | Yes | N/A |
290+
| K8ssandra operator version | | | `helm upgrade k8ssandra-operator` | N/A |
291291

292292
!!! note "K8ssandra operator is a separate Helm release"
293293
The K8ssandra operator is **not** listed in `Chart.yaml`. It is installed
@@ -389,7 +389,7 @@ The only secret that still requires `--set` is the **Grafana admin password**:
389389
`deploy/helm/examon/values-*.secret.yaml` and will never be committed:
390390

391391
```yaml
392-
# values-local.secret.yaml DO NOT COMMIT
392+
# values-local.secret.yaml: DO NOT COMMIT
393393
grafana:
394394
adminPassword: "my-grafana-password"
395395
```

docs/Deployment/docker-compose.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ This Docker Compose stack runs Grafana 7.3.10 with the legacy AngularJS
4949
snapshot from `dashboards/legacy/Examon Test - Random Sensor.json`.
5050

5151
The dashboards directly under `dashboards/` target the Kubernetes
52-
(v0.5.0+) stack instead they use the React-based
52+
(v0.5.0+) stack instead: they use the React-based
5353
`arpnetworking-kairosdb-datasource` plugin and are not compatible with
5454
Grafana 7.x.
5555

docs/Deployment/kubernetes-local.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ echo "127.0.0.1 examon-registry" | sudo tee -a /etc/hosts
6464

6565
!!! note
6666
The automated setup script (`k8s-local-setup.sh`) performs this step
67-
automatically. You only need to do this once per machine the entry
67+
automatically. You only need to do this once per machine; the entry
6868
persists across cluster recreations.
6969

7070
### Step 3: Build and Push Images
@@ -134,7 +134,7 @@ initial deployment, a superuser secret is automatically generated.
134134

135135
Both **KairosDB** and **examon-server** read these credentials automatically
136136
from the K8ssandra secret via `secretKeyRef` environment variables. No
137-
manual `--set` flags or second `helm upgrade` is needed the pods pick up
137+
manual `--set` flags or second `helm upgrade` is needed: the pods pick up
138138
credentials on startup once the secret exists.
139139

140140
`examon-server` uses env var overrides (`CASSANDRA_USER`, `CASSANDRA_PASSWORD`)
@@ -151,7 +151,7 @@ examon-server:
151151
!!! note "Bootstrap restarts"
152152
On a fresh install, `examon-server` and `kairosdb` may restart a few
153153
times while Cassandra initializes and creates the superuser secret.
154-
This is expected Kubernetes restarts them automatically and they
154+
This is expected: Kubernetes restarts them automatically and they
155155
connect once Cassandra is ready.
156156

157157
### Step 8: Verify
@@ -226,7 +226,7 @@ kubectl logs -l app.kubernetes.io/name=grafana -c grafana-sc-dashboard -n examon
226226
## Accessing Services
227227

228228
All user-facing services are exposed directly on the host via the K3d load
229-
balancer and `NodePort` services — no `kubectl port-forward` or Kubernetes
229+
balancer and `NodePort` services. No `kubectl port-forward` or Kubernetes
230230
knowledge required. External clients (e.g. `examon-client` on user laptops,
231231
admins accessing Grafana) connect to these addresses just like with Docker
232232
Compose:
@@ -279,8 +279,8 @@ examon-server:
279279

280280
KairosDB 1.3.0 loads two configuration files:
281281

282-
1. **`kairosdb.properties`** legacy Java properties format
283-
2. **`kairosdb.conf`** HOCON format (takes precedence)
282+
1. **`kairosdb.properties`**: legacy Java properties format
283+
2. **`kairosdb.conf`**: HOCON format (takes precedence)
284284

285285
The `config-kairos.sh` entrypoint script patches both files at startup using
286286
environment variables (`CASSANDRA_HOST_LIST`, `CASSANDRA_USER`,
@@ -295,9 +295,9 @@ built on the `ExamonApp` framework from the `examon-common` library. They
295295
expect their configuration in `.conf` files (INI format) mounted in the
296296
working directory:
297297

298-
- `random_pub.conf` mounted from ConfigMap via Helm
299-
- `mqtt2kairosdb.conf` mounted from ConfigMap via Helm
300-
- `server.conf` mounted from ConfigMap via Helm
298+
- `random_pub.conf`: mounted from ConfigMap via Helm
299+
- `mqtt2kairosdb.conf`: mounted from ConfigMap via Helm
300+
- `server.conf`: mounted from ConfigMap via Helm
301301

302302
These are generated from the Helm `values.yaml` settings by each subchart's
303303
`configmap.yaml` template.
@@ -322,7 +322,7 @@ to pull the image based on the Kubernetes `imagePullPolicy`:
322322

323323
`values-local.yaml` sets `pullPolicy: Always` for all custom ExaMon images.
324324
This means the standard build-push-restart cycle works reliably with the
325-
`:latest` tag no stale cache surprises.
325+
`:latest` tag, with no stale cache surprises.
326326

327327
### Scenario 1: Application Code Change
328328

@@ -457,7 +457,7 @@ well with K3d and Helm charts:
457457
pipeline, supports file syncing, and integrates with CI/CD.
458458

459459
Both tools work with ExaMon's Helm chart structure out of the box. They
460-
are optional power-ups the manual workflow above is sufficient for most
460+
are optional power-ups; the manual workflow above is sufficient for most
461461
development tasks.
462462

463463
### Teardown

docs/Deployment/kubernetes-production.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Production Deployment
22

3-
Production targets a real Kubernetes cluster on-premises (OpenStack,
3+
Production targets a real Kubernetes cluster: on-premises (OpenStack,
44
RKE2, kubeadm) or cloud-managed (EKS, GKE, AKS).
55

66
## Service Exposure Architecture
@@ -265,7 +265,7 @@ helm install examon ./deploy/helm/examon \
265265
-n examon --wait --timeout 20m
266266
```
267267

268-
Cassandra credentials are injected automatically — both KairosDB and
268+
Cassandra credentials are injected automatically. Both KairosDB and
269269
examon-server read them from the K8ssandra-generated secret
270270
(`examon-cassandra-superuser`) via `secretKeyRef` environment variables.
271271
No second `helm upgrade` is needed.
@@ -316,7 +316,7 @@ Create DNS records pointing to the services:
316316
### Configure Grafana Data Source
317317

318318
The KairosDB data source is **fully auto-provisioned** by the chart on
319-
every deploy no manual setup is required. The umbrella chart:
319+
every deploy; no manual setup is required. The umbrella chart:
320320

321321
1. Installs the React-based [ArpNetworking
322322
KairosDB data source plugin](https://github.com/ArpNetworking/kairosdb-datasource)
@@ -354,8 +354,8 @@ both to monitor ExaMon itself and to scrape Cassandra.
354354
**Cassandra metrics (K8ssandra-native):** the umbrella chart exposes
355355
`cassandra.telemetry.prometheus.*`, which is wired straight into the
356356
K8ssandra `CassandraDatacenter` CR. When enabled, K8ssandra creates a
357-
`ServiceMonitor` for the Cassandra metric endpoint no extra manifest to
358-
maintain. Requires the `ServiceMonitor` CRD (shipped by
357+
`ServiceMonitor` for the Cassandra metric endpoint, with no extra manifest
358+
to maintain. Requires the `ServiceMonitor` CRD (shipped by
359359
`kube-prometheus-stack`):
360360

361361
```yaml
@@ -397,7 +397,7 @@ kubectl scale deployment examon-kairosdb --replicas=3 -n examon
397397
kubectl scale deployment examon-examon-server --replicas=3 -n examon
398398
```
399399

400-
Cassandra scaling is managed via the K8ssandraCluster CR update the
400+
Cassandra scaling is managed via the K8ssandraCluster CR: update the
401401
datacenter `size` in `values-production.yaml` and run `helm upgrade`.
402402

403403
## Platform-Specific Notes

docs/Deployment/kubernetes-staging.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ kubectl exec -it examon-cassandra-dc1-default-sts-0 -c cassandra -n examon \
155155

156156
All user-facing services are exposed directly on the host via the K3d load
157157
balancer and `NodePort` services. External clients connect to the VM's
158-
IP/hostname no Kubernetes knowledge required:
158+
IP/hostname; no Kubernetes knowledge required:
159159

160160
| Service | Address | Protocol | Users |
161161
|---------|---------|----------|-------|

0 commit comments

Comments
 (0)