Skip to content

[Helm] Restructure helm chart of Fluss #2865

@nhuantho

Description

@nhuantho

Search before asking

  • I searched in the 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

  • I'm willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions