Skip to content

[Helm] Chart Component Configuration Isolation#2472

Merged
swuferhong merged 3 commits into
apache:mainfrom
hemanthsavasere:2191-region-config-for-components
Mar 12, 2026
Merged

[Helm] Chart Component Configuration Isolation#2472
swuferhong merged 3 commits into
apache:mainfrom
hemanthsavasere:2191-region-config-for-components

Conversation

@hemanthsavasere

Copy link
Copy Markdown
Contributor

Purpose

Linked issue: close #2191

This PR introduces component-specific configuration sections for the Fluss Helm chart, enabling users to independently configure replicas and health probes for coordinator and tablet servers.

###Previously,

  1. Hardcoded Replicas: Coordinator (1 replica) and Tablet (3 replicas) counts were hardcoded
  2. Hardcoded Health Probes: All liveness and readiness probe settings were hardcoded with identical values for both components
  3. Resource Configuration Bug: Coordinator StatefulSet incorrectly referenced .Values.resources.tabletServer instead of .Values.resources.coordinatorServer

Changes

  1. helm/values.yaml
    Added two new top-level configuration sections:
coordinatorServer:
  replicas: 1
  livenessProbe:
    failureThreshold: 100
    timeoutSeconds: 1
    initialDelaySeconds: 10
    periodSeconds: 3
  readinessProbe:
    failureThreshold: 100
    timeoutSeconds: 1
    initialDelaySeconds: 10
    periodSeconds: 3

tabletServer:
  replicas: 3
  livenessProbe:
    failureThreshold: 100
    timeoutSeconds: 1
    initialDelaySeconds: 10
    periodSeconds: 3
  readinessProbe:
    failureThreshold: 100
    timeoutSeconds: 1
    initialDelaySeconds: 10
    periodSeconds: 3

Also updated the resources section to use explicit empty defaults instead of being commented out:

resources:
  coordinatorServer: {}
  tabletServer: {}
  1. helm/templates/sts-coordinator.yaml
  • Replaced hardcoded replicas: 1 with {{ .Values.coordinatorServer.replicas }}
  • Replaced hardcoded liveness probe values with .Values.coordinatorServer.livenessProbe.* references
  • Replaced hardcoded readiness probe values with .Values.coordinatorServer.readinessProbe.* references
  • Fixed bug: Changed resource reference from .Values.resources.tabletServer to .Values.resources.coordinatorServer
  1. helm/templates/sts-tablet.yaml
  • Replaced hardcoded replicas: 3 with {{ .Values.tabletServer.replicas }}
  • Replaced hardcoded liveness probe values with .Values.tabletServer.livenessProbe.* references
  • Replaced hardcoded readiness probe values with .Values.tabletServer.readinessProbe.* references

Tests

Below tests are successful

  1. Deploy with different replica counts per component - verified by deploying with different replica counts per component

  2. Configure different probe settings per component - verified each component has independent probe configuration.

  3. Resource bug fix (coordinator uses correct resources) - bug fix verified. Coordinator now correctly uses resources.coordinatorServer.

  4. Pod health and startup - all components started successfully, registered with ZooKeeper, and coordinator detected both tablet servers.

  5. Replica Scaling - verified the tablet servers scaled independently

  6. Independent Resource Modification - verified each component updated with different resources independently

Documentation

@hemanthsavasere

Copy link
Copy Markdown
Contributor Author

Hi @swuferhong, can you please review the pull request. Thanks

@hemanthsavasere hemanthsavasere force-pushed the 2191-region-config-for-components branch from d62e30e to 92c4ce9 Compare March 12, 2026 10:54

@affo affo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello and thanks for the contribution!
This is extremely valuable!

Is there any specific reason why moving some keys out of tablet and coordinator?

There is already tablet and coordinator, now we find ourself with tabletServer and coordinatorServer.

We should opt for a specific design here:
either we adopt a key-component approach or a component-key approach.

Where key-component would be, for example:

resources:
  tablet:
  coordinator:

and component-key would be:

tablet:
  resources:
coordinator:
  resources:

It seems here you are opting for component-key, and it sounds solid to me 🤝

However, I would leave replicas to tablet and coordinator and move all additions you made to the respective area.

I think a nice follow up PR would be to also move resources to the same pattern 🤝

I am trying to push new contribution guidelines for helm, see #2846, so, this PR should add minimal Helm tests under tests, as well as updating the official docs under https://github.com/apache/fluss/blob/main/website/docs/install-deploy/deploying-with-helm.md (as this PR introduces new configuration values, those should be documented 🤝 )

@affo

affo commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

@hemanthsavasere just for the sake of pickiness:

Resource Configuration Bug: Coordinator StatefulSet incorrectly referenced .Values.resources.tabletServer instead of .Values.resources.coordinatorServer

Was addressed already with #2834 :)

@swuferhong swuferhong left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@swuferhong swuferhong merged commit d956e75 into apache:main Mar 12, 2026
6 checks passed
affo added a commit to affo/fluss that referenced this pull request Mar 13, 2026
swuferhong pushed a commit that referenced this pull request Mar 13, 2026
hemanthsavasere pushed a commit to hemanthsavasere/fluss that referenced this pull request Mar 14, 2026
@hsavasere

Copy link
Copy Markdown
Contributor

Hi @affo
I have updated the PR as per the comments, can you please review the PR, #2870

wxplovecc pushed a commit to tongcheng-elong/fluss that referenced this pull request Apr 17, 2026
* Helm Chart Component Configuration Isolation

* Retrigger CI tests

* Retriggering CI/CD build pipeline
wxplovecc pushed a commit to tongcheng-elong/fluss that referenced this pull request Apr 17, 2026
wxplovecc pushed a commit to tongcheng-elong/fluss that referenced this pull request Apr 20, 2026
* Helm Chart Component Configuration Isolation

* Retrigger CI tests

* Retriggering CI/CD build pipeline
wxplovecc pushed a commit to tongcheng-elong/fluss that referenced this pull request Apr 20, 2026
polyzos pushed a commit that referenced this pull request Apr 23, 2026
* [helm] Enable pulling from private Docker registry (#2692)

* [helm] Enable pulling from private Docker registry

Added instructions for using a private Docker registry and included image values reference.

---------

Co-authored-by: xx789 <348448708@qq.com>
(cherry picked from commit 43f76a5)

* [helm] Fix wrong resource name in coordinator sts (#2834)

(cherry picked from commit 2c49fbc)

* [helm] Add CI workflow to run Helm tests (#2777)

* [helm] Add CI workflow to run Helm tests

(cherry picked from commit dd181eb)

* [Helm] Chart Component Configuration Isolation (#2472)

* Helm Chart Component Configuration Isolation

* Retrigger CI tests

* Retriggering CI/CD build pipeline

(cherry picked from commit d956e75)

* [Helm] Revert Chart Component Configuration Isolation (#2472) (#2863)

This reverts commit d956e75.

(cherry picked from commit 8cd9a6f)

* [helm] Enable SASL authentication configurations (#2506)

(cherry picked from commit f7e4498)

* [helm] Rewrite README to point to website docs (#2846)

(cherry picked from commit aa5d166)

* [helm][hotfix] Go template whitespace trimming caused exceptions (#2893)

* [helm][hotfix] Go template whitespace trimming caused exceptions

* Update and use without trimming

(cherry picked from commit 22ece48)

* [helm] Enable metrics reporting in helm charts (#2711)

---

Co-authored-by: Lorenzo Affetti <lorenzo.affetti@gmail.com>
(cherry picked from commit 2b207a4)

* [helm] Fix .helmignore to not package tests (#2847)

(cherry picked from commit d4748f2)

* [helm] Enable SASL authenticated connection to Zookeeper nodes (#2700)

---

Co-authored-by: Lorenzo Affetti <lorenzo.affetti@gmail.com>
(cherry picked from commit bdbbbce)

* [helm] Fix Zookeeper client config path (#3015)

(cherry picked from commit e9bfd72)

* [helm] Fix wrong resource name in coordinator sts (#3044)

(cherry picked from commit 8df3873)

* [helm] Add extraVolumes, extraVolumeMounts, initContainers (#3034)

(cherry picked from commit 17f5400)

---------

Co-authored-by: Lorenzo Affetti <lorenzo.affetti@gmail.com>
Co-authored-by: xx789 <348448708@qq.com>
Co-authored-by: Hemanth Savasere <hemanth.savasere@gmail.com>
Ugbot pushed a commit to Ugbot/fluss that referenced this pull request Apr 26, 2026
* Helm Chart Component Configuration Isolation

* Retrigger CI tests

* Retriggering CI/CD build pipeline
Ugbot pushed a commit to Ugbot/fluss that referenced this pull request Apr 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[helm] Create region config for components in value file

4 participants