[Helm] Restructure helm chart of Fluss
- Dominant language
- Java
- Stars
- 2.1k
- Forks
- 625
- Avg merge
- 3d 14h
- Merged PRs (30d)
- 97
Description
### Search before asking
- [x] I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar.
### Motivation
Inspired by the Helm chart structure used in the Apache Airflow project
(https://github.com/apache/airflow/tree/main/chart), this proposal aims to improve the Fluss Helm chart to make it **cleaner, more structured, and easier to maintain**.
### Solution
## Helm Chart Schema & Values
### values.schema.json
Uses the **http://json-schema.org/draft-07/schema** structure.
This file defines the schema of the Helm chart values and is used to validate `values.yaml`.
***It can also be used as the source for **auto-generating parameter documentation** for the Helm chart -> Break another issue.***
### values.schema.meta.json
This meta-schema is used to validate `values.schema.json`.
It ensures that:
- Each parameter includes both **`default`** and **`description`**
- All top-level properties define **`x-docsSection`** to group parameters in the generated documentation
---
## Helm Values Naming Improvements
Based on the architecture concepts described in the Fluss documentation
(https://fluss.apache.org/docs/concepts/architecture/), some naming updates are proposed to better align with Kubernetes conventions.
### Proposed Changes
| Current Field | Proposed Field | Reason |
|---|---|---|
| `listeners` | `ports` | Represents container or service ports in Kubernetes |
| `storage` | `persistence` | Aligns with standard Helm and Kubernetes terminology for persistent storage |
### New structure value example:
```
coordinatorServer:
replicas: 1
livenessProbe:
failureThreshold: 100
timeoutSeconds: 1
initialDelaySeconds: 10
periodSeconds: 3
readinessProbe:
failureThreshold: 100
timeoutSeconds: 1
initialDelaySeconds: 10
periodSeconds: 3
resources: {}
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
persistence:
enabled: false
size: 1Gi
storageClass:
tabletServer:
replicas: 3
livenessProbe:
failureThreshold: 100
timeoutSeconds: 1
initialDelaySeconds: 10
periodSeconds: 3
readinessProbe:
failureThreshold: 100
timeoutSeconds: 1
initialDelaySeconds: 10
periodSeconds: 3
resources: {}
# requests:
# cpu: 100m
# memory: 128Mi
# limits:
# cpu: 100m
# memory: 128Mi
persistence:
enabled: false
size: 1Gi
storageClass:
```
### Anything else?
_No response_
### Willingness to contribute
- [x] I'm willing to submit a PR!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by inspecting the existing Helm chart's values.yaml, values.schema.json, and values.schema.meta.json, then compare its structure with the Apache Airflow chart linked in the issue. Restructure the values and naming around coordinatorServer, tabletServer, ports, and persistence, while ensuring the schemas validate and required defaults, descriptions, and x-docsSection metadata are present.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- helm, kubernetes
- Domain
- devops, infrastructure
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100