Skip to content

Commit 18a8f87

Browse files
committed
Add streamshub-console-helm-charts proposal
Signed-off-by: jkalinic <jkalinic@redhat.com>
1 parent 4f8ba15 commit 18a8f87

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

001-streamshub-console-helm.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Helm Installation Support for StreamsHub Console
2+
3+
This proposal outlines adding official Helm chart support for the StreamsHub Console operator and its Custom Resources (CRs).
4+
This would provide a standardized installation method and lay the foundation for a broader StreamsHub Helm ecosystem.
5+
6+
## Current situation
7+
8+
There is currently no official Helm chart for the StreamsHub Console operator or its associated Custom Resources.
9+
Among the broader StreamsHub stack, only Strimzi provides an official Helm chart.
10+
Components such as Strimzi, Prometheus, and other dependencies each maintain their own Helm charts through their respective upstream projects.
11+
12+
## Motivation
13+
14+
Helm is widely adopted as the standard packaging mechanism for k8s applications.
15+
A large portion of the k8s ecosystem — including GitOps platforms (e.g. Argo CD) and cloud provider marketplaces — relies on Helm as the primary installation mechanism.
16+
17+
By introducing an official Helm chart for the Console operator and CRs, StreamsHub could:
18+
19+
- **Lower the barrier to adoption** for teams already using Helm-based workflows and environments
20+
- **Enable fine-tuned configuration** with value overrides, environment-specific configuration, and lifecycle management via Helm
21+
- **Align with ecosystem standards**, making StreamsHub easier to discover and integrate
22+
- **Unlock the possibility for a future StreamsHub Helm chart** — once the Console operator has its own chart, it becomes easier to compose a top-level `streamshub` chart
23+
that depends on Console, Strimzi, Kafka, Prometheus, and other components, enabling full-stack deployment through a single `helm install` command
24+
25+
## Proposal
26+
27+
The proposal is to create and maintain an official Helm chart repo for:
28+
29+
1. **The StreamsHub Console Operator** — managing its deployment, RBAC, service accounts, and associated configuration
30+
2. **The Console Custom Resource (CR)** — exposing the Console instance configuration as Helm values, allowing users to customise the Console without editing raw YAML manifests
31+
32+
### Scope of initial chart(s)
33+
34+
The initial implementation should be deliberately scoped and simple. It should cover:
35+
36+
- Operator's `Deployment`, `ServiceAccount`, `ClusterRole`, and `ClusterRoleBinding`
37+
- CRD installation (either bundled or as a dependency)
38+
- A Console CR that can be optionally deployed alongside the operator by passing a Helm value (e.g. console.instance=true), allowing users who prefer to manage the CR separately to do so
39+
40+
- The chart should **not** attempt to manage external dependencies such as Strimzi, Kafka, or Prometheus in this initial phase.
41+
Those components have already well-maintained charts and could be addressed in a follow-up effort.
42+
43+
### Possible Future: StreamsHub Umbrella Chart
44+
45+
Once official charts exist for the Console operator and operands, it becomes possible to introduce a `streamshub`
46+
umbrella Helm chart that composes the full stack. This chart would declare Helm dependencies on:
47+
48+
- `streamshub-console` (this proposal)
49+
- `strimzi-kafka-operator` (official Strimzi chart)
50+
- `kafka` / `kraft` via Strimzi CRs
51+
- `prometheus` or equivalent monitoring
52+
- `apicurio` or equivalent schema registries
53+
- Any other components managed by StreamsHub
54+
55+
This umbrella chart would give users an easy way to deploy the entire stack, significantly improving the onboarding experience and enabling catalogue listings on platforms like Artifact Hub.
56+
57+
### Delivery
58+
59+
- Charts to be hosted within the StreamsHub GitHub organisation, either in a dedicated `helm-charts` repository under a `${PROJECT_NAME}-charts/` directory
60+
- Charts published to a Helm repository (like GitHub Pages or `oci` variants like Quay / DockerHub) + Artifact Hub following each release
61+
- Chart versioning to follow the operator release cycle, with independent patch versioning where chart-only fixes are needed
62+
- A GitHub Actions workflow can be introduced to lint chart using helm lint on every pull request/release, catching templating errors and schema violations early
63+
- A minimal deployment test will run on each push, spinning up a light k8s cluster (kind or minikube might be the best options) and verifying that the operator and Console CR deploy and reach a healthy state
64+
- Chart releases will be automated using github action workflows, allowing the Console operator chart to be tested and published to the StreamsHub Helm repository
65+
66+
## Affected/not affected projects
67+
68+
**Affected:**
69+
- `streamshub/console` — primary subject of this proposal - the operator and Console CR chart will live in or alongside this repository
70+
- StreamsHub documentation — installation guides will need updating to include Helm-based instructions
71+
72+
**Not affected (at this stage):**
73+
- Strimzi, Apicurio, Prometheus, and other stack components — remain independently managed and they will only be referenced if the future umbrella chart is taken forward
74+
75+
## Compatibility
76+
77+
- CRD management will follow Helm community best practices (CRDs in `crds/` directory) to avoid conflicts with existing CRD installations
78+
- The chart will declare a minimum supported k8s version consistent with the operator's existing requirements
79+
- Future versions of the chart will follow semantic versioning; breaking value changes will result in a major version bump and will be documented in a compatibility/migration guide
80+
81+
## Rejected alternatives
82+
83+
**Single monolithic StreamsHub chart (immediate)**
84+
Jumping directly to a full StreamsHub umbrella chart that includes Strimzi, Kafka, and Prometheus was considered but rejected for the initial phase.
85+
Managing other chart dependencies increases complexity and introduces coupling to third-party release cycles.
86+
Starting with a focused Console operator chart allows us to establish chart quality and release processes before taking on a broader scope.

0 commit comments

Comments
 (0)