<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Developer Quick-Start on StreamsHub</title><link>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/</link><description>Recent content in Developer Quick-Start on StreamsHub</description><generator>Hugo</generator><language>en-us</language><copyright>[© Apache License 2.0](https://opensource.org/license/apache-2-0)</copyright><atom:link href="https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/index.xml" rel="self" type="application/rss+xml"/><item><title>Prerequisites</title><link>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/prerequisites/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/prerequisites/</guid><description>&lt;h2 id="required">Required
 &lt;a class="anchor" href="#required">#&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>kubectl v1.27 or later&lt;/strong> — the install scripts use Kustomize v5.0 features (the &lt;code>labels&lt;/code> transformer) which require kubectl 1.27+.&lt;/p>
&lt;p>Check your version:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#cad3f5;background-color:#24273a;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>kubectl version --client&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>A running Kubernetes cluster&lt;/strong> — any local or development cluster should work. Common options:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://minikube.sigs.k8s.io/docs/start/">minikube&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://kind.sigs.k8s.io/docs/user/quick-start/">KIND&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="recommended">Recommended
 &lt;a class="anchor" href="#recommended">#&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>An Ingress controller&lt;/strong> — required if you want to access the StreamsHub Console via its hostname (&lt;code>console.streamshub.local&lt;/code>). Without one, you can still use port-forwarding to access Kafka.&lt;/li>
&lt;/ul>
&lt;h2 id="cluster-setup">Cluster Setup
 &lt;a class="anchor" href="#cluster-setup">#&lt;/a>&lt;/h2>
&lt;p>If you don&amp;rsquo;t already have a cluster running, here are quick setup instructions for the most common options:&lt;/p></description></item><item><title>Installation</title><link>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/installation/</guid><description>&lt;h2 id="quick-start-install">Quick-Start Install
 &lt;a class="anchor" href="#quick-start-install">#&lt;/a>&lt;/h2>
&lt;p>Deploy the entire core stack with a single command:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#cad3f5;background-color:#24273a;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/install.sh | bash&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The script:&lt;/p>
&lt;ol>
&lt;li>Checks prerequisites (kubectl, IngressClass)&lt;/li>
&lt;li>Installs operators and CRDs (Phase 1)&lt;/li>
&lt;li>Waits for each operator to become ready&lt;/li>
&lt;li>Deploys Kafka, Registry, and Console instances (Phase 2)&lt;/li>
&lt;/ol>
&lt;h3 id="install-with-an-overlay">Install with an Overlay
 &lt;a class="anchor" href="#install-with-an-overlay">#&lt;/a>&lt;/h3>
&lt;p>Overlays extend the core stack with optional components. To install with an overlay, set the &lt;code>OVERLAY&lt;/code> variable:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#cad3f5;background-color:#24273a;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/install.sh | &lt;span style="color:#f4dbd6">OVERLAY&lt;/span>&lt;span style="color:#91d7e3;font-weight:bold">=&lt;/span>&amp;lt;name&amp;gt; bash&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>See &lt;a href="https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/overlays/">Overlays&lt;/a> for the list of available overlays and what each one adds.&lt;/p></description></item><item><title>Accessing Services</title><link>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/accessing-services/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/accessing-services/</guid><description>&lt;h2 id="streamshub-console">StreamsHub Console
 &lt;a class="anchor" href="#streamshub-console">#&lt;/a>&lt;/h2>
&lt;h3 id="ingress-access">Ingress Access
 &lt;a class="anchor" href="#ingress-access">#&lt;/a>&lt;/h3>
&lt;p>For the Console to startup correctly and be accessible, you need an Ingress controller running in your cluster.&lt;/p>
&lt;h4 id="minikube">minikube
 &lt;a class="anchor" href="#minikube">#&lt;/a>&lt;/h4>
&lt;p>Enable the ingress addon (if not already enabled):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#cad3f5;background-color:#24273a;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>minikube addons &lt;span style="color:#91d7e3">enable&lt;/span> ingress&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Use port-forwarding to access the console:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#cad3f5;background-color:#24273a;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kubectl port-forward -n streamshub-console svc/streamshub-console-console-service 8090:80&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Open &lt;a href="http://localhost:8090">http://localhost:8090&lt;/a> in your browser.&lt;/p>
&lt;h4 id="kind">KIND
 &lt;a class="anchor" href="#kind">#&lt;/a>&lt;/h4>
&lt;p>If you created your KIND cluster with the port mappings described in &lt;a href="https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/prerequisites/">Prerequisites&lt;/a>, and deployed ingress-nginx:
Use port-forwarding to access the console:&lt;/p></description></item><item><title>Uninstallation</title><link>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/uninstallation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/uninstallation/</guid><description>&lt;h2 id="using-the-uninstall-script">Using the Uninstall Script
 &lt;a class="anchor" href="#using-the-uninstall-script">#&lt;/a>&lt;/h2>
&lt;p>The uninstall script provides safe teardown with shared-cluster awareness:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#cad3f5;background-color:#24273a;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/uninstall.sh | bash&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If you installed with the metrics overlay:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#cad3f5;background-color:#24273a;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>curl -sL https://raw.githubusercontent.com/streamshub/developer-quickstart/main/uninstall.sh | &lt;span style="color:#f4dbd6">OVERLAY&lt;/span>&lt;span style="color:#91d7e3;font-weight:bold">=&lt;/span>metrics bash&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="configuration">Configuration
 &lt;a class="anchor" href="#configuration">#&lt;/a>&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Variable&lt;/th>
 &lt;th>Default&lt;/th>
 &lt;th>Description&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>REPO&lt;/code>&lt;/td>
 &lt;td>&lt;code>streamshub/developer-quickstart&lt;/code>&lt;/td>
 &lt;td>GitHub repository path&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>REF&lt;/code>&lt;/td>
 &lt;td>&lt;code>main&lt;/code>&lt;/td>
 &lt;td>Git ref, branch, or tag&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>OVERLAY&lt;/code>&lt;/td>
 &lt;td>&lt;em>(empty)&lt;/em>&lt;/td>
 &lt;td>Overlay to uninstall (e.g. &lt;code>metrics&lt;/code>)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>TIMEOUT&lt;/code>&lt;/td>
 &lt;td>&lt;code>120s&lt;/code>&lt;/td>
 &lt;td>kubectl wait/poll timeout&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>LOCAL_DIR&lt;/code>&lt;/td>
 &lt;td>&lt;em>(empty)&lt;/em>&lt;/td>
 &lt;td>Use a local directory instead of GitHub&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="what-the-script-does">What the Script Does
 &lt;a class="anchor" href="#what-the-script-does">#&lt;/a>&lt;/h3>
&lt;p>The uninstall follows a 4-phase process designed to be safe on shared clusters:&lt;/p></description></item><item><title>Architecture</title><link>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/architecture/</guid><description>&lt;h2 id="two-phase-deployment">Two-Phase Deployment
 &lt;a class="anchor" href="#two-phase-deployment">#&lt;/a>&lt;/h2>
&lt;p>The event stack is deployed in two sequential phases:&lt;/p>
&lt;p>&lt;strong>Phase 1 - The Base - Operators and CRDs:&lt;/strong> Deploys operator Deployments, RBAC resources, and Custom Resource Definitions.
The install script waits for each operator to become ready before proceeding.&lt;/p>
&lt;p>&lt;strong>Phase 2 - The Stack - Operands:&lt;/strong> Deploys the actual workloads as Custom Resources (Kafka, ApicurioRegistry3, Console).
Operators must be running to process these resources.&lt;/p>
&lt;p>This separation exists for three reasons:&lt;/p></description></item><item><title>Troubleshooting</title><link>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.streamshub.io/docs/StreamsHub-Developer-Quick-Start/main/troubleshooting/</guid><description>&lt;h2 id="operator-not-becoming-ready">Operator Not Becoming Ready
 &lt;a class="anchor" href="#operator-not-becoming-ready">#&lt;/a>&lt;/h2>
&lt;p>If an operator deployment does not reach &lt;code>Ready&lt;/code>/&lt;code>Available&lt;/code> within the timeout:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#cad3f5;background-color:#24273a;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e738d;font-style:italic"># Check the deployment status&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl describe deployment/strimzi-cluster-operator -n strimzi
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e738d;font-style:italic"># Check operator pod logs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl logs -n strimzi deployment/strimzi-cluster-operator
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6e738d;font-style:italic"># Check for pending pods (resource constraints)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl get pods -n strimzi -o wide&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Common causes:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Insufficient resources — the cluster may not have enough CPU or memory. This can often be an issue if you have selected an overlay which multiple components on top of the core. Try increasing resources assigned to your Kubernetes cluster: &lt;code>minikube start --cpus=8 --memory=12g&lt;/code>&lt;/li>
&lt;li>Image pull errors — check that the cluster can reach container registries (quay.io, docker.io)&lt;/li>
&lt;li>Timeout too short — increase with &lt;code>TIMEOUT=300s&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="custom-resource-not-reconciling">Custom Resource Not Reconciling
 &lt;a class="anchor" href="#custom-resource-not-reconciling">#&lt;/a>&lt;/h2>
&lt;p>If a Kafka, Registry, or Console resource is stuck:&lt;/p></description></item></channel></rss>