apache / apache/fluss

[Helm] Restructure helm chart of Fluss

Open
#2,865 2 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.