Skip to content

Commit 8341030

Browse files
committed
Refactor readme to point to docs
Signed-off-by: Thomas Cooper <code@tomcooper.dev>
1 parent 5baaed0 commit 8341030

1 file changed

Lines changed: 28 additions & 212 deletions

File tree

README.md

Lines changed: 28 additions & 212 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,17 @@ A Kustomize-based repository for deploying the StreamsHub event-streaming stack
66
77
## What Gets Deployed
88

9-
| Component | Namespace | Description |
10-
|-----------|-----------|-------------|
11-
| Strimzi Kafka Operator | `strimzi` | Manages Kafka clusters via CRDs |
12-
| Kafka cluster (`dev-cluster`) | `kafka` | Single-node Kafka for development |
13-
| Apicurio Registry Operator | `apicurio-registry` | Manages schema registry instances |
14-
| Apicurio Registry instance | `apicurio-registry` | In-memory schema registry |
15-
| StreamsHub Console Operator | `streamshub-console` | Manages console instances |
16-
| StreamsHub Console instance | `streamshub-console` | Web UI for Kafka management |
9+
The stack deploys Strimzi Kafka, Apicurio Registry, and StreamsHub Console operators along with their operand instances.
10+
Optional [overlays](docs/overlays/_index.md) add components such as Prometheus metrics.
1711

18-
> **Optional:** The [metrics overlay](#install-with-metrics) adds Prometheus Operator, a Prometheus instance, and Kafka metrics collection via PodMonitors.
12+
See [What Gets Deployed](docs/_index.md#what-gets-deployed) for the full component breakdown.
1913

2014
## Prerequisites
2115

22-
- `kubectl` v1.27 or later (for Kustomize v5.0 `labels` transformer support)
23-
- A running Kubernetes cluster (minikube, KIND, etc.)
24-
- An Ingress controller for StreamsHub Console access (e.g. `minikube addons enable ingress`)
16+
- `kubectl` v1.27 or later
17+
- A running Kubernetes cluster (minikube, KIND, etc.) with an ingress controller
18+
19+
See [Prerequisites](docs/prerequisites.md) for full requirements and cluster setup instructions.
2520

2621
## Quick-Start Install
2722

@@ -33,231 +28,53 @@ curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/
3328

3429
This script installs operators, waits for them to become ready, then deploys the operands.
3530

36-
### Configuration
37-
38-
The install script accepts the following environment variables:
39-
40-
| Variable | Default | Description |
41-
|----------|---------|-------------|
42-
| `REPO` | `streamshub/developer-quickstart` | GitHub repository path |
43-
| `REF` | `main` | Git ref, branch, or tag |
44-
| `OVERLAY` | *(empty)* | Overlay to apply (e.g. `metrics`) |
45-
| `TIMEOUT` | `120s` | `kubectl wait` timeout |
46-
47-
Example with a pinned version:
48-
49-
```shell
50-
curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/install.sh | REF=v1.0.0 bash
51-
```
52-
53-
### Install with Metrics
54-
55-
Deploy the stack with Prometheus metrics collection:
31+
To install with an overlay (e.g. metrics):
5632

5733
```shell
5834
curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/install.sh | OVERLAY=metrics bash
5935
```
6036

61-
This adds the Prometheus Operator and a Prometheus instance (namespace: `monitoring`), enables Kafka metrics via [Strimzi Metrics Reporter](https://strimzi.io/docs/operators/latest/deploying#proc-metrics-kafka-str), and wires Console to display metrics.
62-
63-
## Manual Install
37+
See [Installation](docs/installation.md) for configuration options, manual install steps, and installing from a local checkout.
6438

65-
If you prefer to control each step, the stack is installed in two phases:
39+
## Accessing Services
6640

67-
### Phase 1 — Operators and CRDs
41+
After installation, use port-forwarding to access the Console:
6842

6943
```shell
70-
kubectl apply -k 'https://github.com/streamshub/developer-quickstart//overlays/core/base?ref=main'
44+
kubectl port-forward -n streamshub-console svc/streamshub-console-console-service 8090:80
7145
```
7246

73-
Wait for the operators to become ready:
74-
75-
```shell
76-
kubectl wait --for=condition=Available deployment/strimzi-cluster-operator -n strimzi --timeout=120s
77-
kubectl wait --for=condition=Available deployment/apicurio-registry-operator -n apicurio-registry --timeout=120s
78-
kubectl wait --for=condition=Available deployment/streamshub-console-operator -n streamshub-console --timeout=120s
79-
```
80-
81-
### Phase 2 — Operands
82-
83-
```shell
84-
kubectl apply -k 'https://github.com/streamshub/developer-quickstart//overlays/core/stack?ref=main'
85-
```
86-
87-
### Manual Install with Metrics
88-
89-
To include the metrics overlay, use the `overlays/metrics` paths instead of `overlays/core`.
90-
91-
```shell
92-
# Phase 1
93-
kubectl create -k 'https://github.com/streamshub/developer-quickstart//overlays/metrics/base?ref=main'
94-
kubectl wait --for=condition=Available deployment/prometheus-operator -n monitoring --timeout=120s
95-
kubectl wait --for=condition=Available deployment/strimzi-cluster-operator -n strimzi --timeout=120s
96-
kubectl wait --for=condition=Available deployment/apicurio-registry-operator -n apicurio-registry --timeout=120s
97-
kubectl wait --for=condition=Available deployment/streamshub-console-operator -n streamshub-console --timeout=120s
98-
99-
# Phase 2
100-
kubectl apply -k 'https://github.com/streamshub/developer-quickstart//overlays/metrics/stack?ref=main'
101-
```
102-
103-
## Accessing the Console
104-
105-
### Minikube
106-
107-
When using minikube, enable the ingress addon (if not already enabled):
108-
109-
```bash
110-
minikube addons enable ingress
111-
```
112-
113-
Then use port-forwarding to access the console:
114-
115-
```bash
116-
kubectl port-forward -n streamshub-console svc/streamshub-console-console-service 8080:80
117-
```
118-
119-
Open [http://localhost:8080](http://localhost:8080) in your browser.
120-
121-
### Kind
122-
123-
When using Kind, create the cluster with ingress-ready port mappings:
124-
125-
```bash
126-
cat <<EOF | kind create cluster --config=-
127-
kind: Cluster
128-
apiVersion: kind.x-k8s.io/v1alpha4
129-
nodes:
130-
- role: control-plane
131-
kubeadmConfigPatches:
132-
- |
133-
kind: InitConfiguration
134-
nodeRegistration:
135-
kubeletExtraArgs:
136-
node-labels: "ingress-ready=true"
137-
extraPortMappings:
138-
- containerPort: 80
139-
hostPort: 80
140-
protocol: TCP
141-
- containerPort: 443
142-
hostPort: 443
143-
protocol: TCP
144-
EOF
145-
```
146-
147-
Then deploy an ingress controller (e.g. ingress-nginx):
148-
149-
```bash
150-
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.12.1/deploy/static/provider/kind/deploy.yaml
151-
kubectl wait --namespace ingress-nginx \
152-
--for=condition=Ready pod \
153-
--selector=app.kubernetes.io/component=controller \
154-
--timeout=120s
155-
```
156-
157-
Use port-forwarding to access the console:
158-
159-
```bash
160-
kubectl port-forward -n streamshub-console svc/streamshub-console-console-service 8080:80
161-
```
47+
Open [http://localhost:8090](http://localhost:8090) in your browser.
16248

163-
Open [http://localhost:8080](http://localhost:8080) in your browser.
49+
See [Accessing Services](docs/accessing-services.md) for Kafka, Apicurio Registry access, and platform-specific instructions.
16450

16551
## Teardown
16652

167-
### Using the Uninstall Script
168-
169-
The uninstall script handles safe teardown with shared-cluster safety checks:
53+
Remove the quick-start stack:
17054

17155
```shell
17256
curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/uninstall.sh | bash
173-
174-
# If installed with the metrics overlay:
175-
curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/uninstall.sh | OVERLAY=metrics bash
17657
```
17758

178-
The script:
179-
1. Deletes operand custom resources and waits for finalizers to complete
180-
2. Checks each operator group for non-quick-start CRs on the cluster
181-
3. Fully removes operator groups with no shared CRDs
182-
4. For shared operator groups, removes only the operator deployment (retaining CRDs)
183-
5. Reports any retained groups and remaining resources
184-
185-
### Manual Teardown
186-
187-
**Phase 1 — Delete operands:**
59+
See [Uninstallation](docs/uninstallation.md) for metrics overlay uninstall, manual teardown, and shared-cluster safety details.
18860

189-
```shell
190-
kubectl delete -k 'https://github.com/streamshub/developer-quickstart//overlays/core/stack?ref=main'
191-
```
192-
193-
Wait for all custom resources to be fully removed before proceeding.
61+
## Documentation
19462

195-
**Phase 2 — Delete operators and CRDs:**
63+
Full documentation is available in the [`docs/`](docs/) directory:
19664

197-
> **Warning:** On shared clusters, deleting CRDs will cascade-delete ALL custom resources of that type cluster-wide. Check for non-quick-start resources first:
198-
> ```shell
199-
> kubectl get kafkas -A --selector='!app.kubernetes.io/part-of=streamshub-developer-quickstart'
200-
> ```
201-
202-
```shell
203-
kubectl delete -k 'https://github.com/streamshub/developer-quickstart//overlays/core/base?ref=main'
204-
```
205-
206-
For the metrics overlay, use `overlays/metrics/base` and `overlays/metrics/stack` instead.
207-
208-
### Finding Quick-Start Resources
209-
210-
All resources carry the label `app.kubernetes.io/part-of=streamshub-developer-quickstart`:
211-
212-
```shell
213-
kubectl get all -A -l app.kubernetes.io/part-of=streamshub-developer-quickstart
214-
kubectl get crds,clusterroles,clusterrolebindings -l app.kubernetes.io/part-of=streamshub-developer-quickstart
215-
```
65+
- [Prerequisites](docs/prerequisites.md) — requirements and cluster setup
66+
- [Installation](docs/installation.md) — all install methods, configuration, and local development
67+
- [Accessing Services](docs/accessing-services.md) — Console, Kafka, and Registry access
68+
- [Architecture](docs/architecture.md) — deployment model, Kustomize structure, versioning
69+
- [Overlays](docs/overlays/_index.md) — optional extensions (metrics, etc.)
70+
- [Uninstallation](docs/uninstallation.md) — safe teardown on any cluster
71+
- [Troubleshooting](docs/troubleshooting.md) — common issues and diagnostics
21672

21773
## Development
21874

219-
### Updating Component Versions
220-
221-
Use the `update-version.sh` script to update component versions:
222-
223-
```shell
224-
# List available versions
225-
./update-version.sh --list strimzi
226-
227-
# Preview changes
228-
./update-version.sh --dry-run strimzi 0.52.0
229-
230-
# Check if a release exists
231-
./update-version.sh --check apicurio-registry 3.2.0
232-
233-
# Update a component
234-
./update-version.sh strimzi 0.52.0
235-
```
236-
237-
Supported components: `strimzi`, `apicurio-registry`, `streamshub-console`, `prometheus-operator`
238-
239-
### Testing scripts locally
240-
241-
When developing changes to the kustomization files, use the `LOCAL_DIR` environment
242-
variable to point the install and uninstall scripts at your local checkout instead
243-
of the remote GitHub repository:
244-
245-
```shell
246-
# Install from local repo
247-
LOCAL_DIR=. ./install.sh
248-
249-
# Uninstall from local repo
250-
LOCAL_DIR=. ./uninstall.sh
251-
```
252-
253-
When `LOCAL_DIR` is set, `REPO` and `REF` are ignored — the scripts resolve
254-
kustomization paths relative to the given directory.
255-
256-
You can also provide an absolute path:
257-
258-
```shell
259-
LOCAL_DIR=/home/user/repos/developer-quickstart ./install.sh
260-
```
75+
For development workflows including updating component versions and testing scripts locally, see:
76+
- [Updating Component Versions](docs/architecture.md#updating-component-versions)
77+
- [Install from a Local Checkout](docs/installation.md#install-from-a-local-checkout)
26178

26279
### Previewing Documentation Locally
26380

@@ -348,4 +165,3 @@ The scripts accept configuration via environment variables:
348165
| `CONDITION_OVERRIDES` | VerifyInstall | *(empty)* | Space-separated `apiGroup=Condition` pairs |
349166
| `PLATFORMS` | ComputeTestMatrix | `minikube kind` | Space-separated list of target platforms |
350167
| `LOG_TAIL_LINES` | Debug | `30` | Number of log lines to tail per pod |
351-

0 commit comments

Comments
 (0)