@@ -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
3429This 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
5834curl -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
17256curl -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