This is an automated email from the ASF dual-hosted git repository.

yunhong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss.git


The following commit(s) were added to refs/heads/main by this push:
     new ff3cab9dd [helm] Add `tabletServer.count` configuration option (#2456)
ff3cab9dd is described below

commit ff3cab9ddb27a116867bd2394a61506b269d0510
Author: Muhammet Orazov <[email protected]>
AuthorDate: Tue Feb 3 04:17:09 2026 +0100

    [helm] Add `tabletServer.count` configuration option (#2456)
    
    * [helm] Add `tablet.numberOfReplicas` configuration option
    
    * [helm] Move storage values to coordinator and tablet sections
---
 helm/templates/sts-coordinator.yaml                | 26 +++++++-------
 helm/templates/sts-tablet.yaml                     | 26 +++++++-------
 helm/values.yaml                                   | 17 ++++++---
 website/docs/install-deploy/deploying-with-helm.md | 40 ++++++++++++++++------
 4 files changed, 69 insertions(+), 40 deletions(-)

diff --git a/helm/templates/sts-coordinator.yaml 
b/helm/templates/sts-coordinator.yaml
index bc37d22b5..62591561c 100644
--- a/helm/templates/sts-coordinator.yaml
+++ b/helm/templates/sts-coordinator.yaml
@@ -24,7 +24,7 @@ metadata:
   {{- include "fluss.labels" . | nindent 4 }}
 spec:
   serviceName: coordinator-server-hs
-  replicas: 1 # can only be 1 for now
+  replicas: {{ .Values.coordinator.numberOfReplicas }}
   selector:
     matchLabels:
       {{- include "fluss.selectorLabels" . | nindent 6 }}
@@ -44,16 +44,16 @@ spec:
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             - name: POD_NAME
-              valueFrom: 
-                fieldRef: 
-                  fieldPath: metadata.name 
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.name
             - name: POD_IP
-              valueFrom: 
-                fieldRef: 
+              valueFrom:
+                fieldRef:
                   fieldPath: status.podIP
             - name: POD_NAMESPACE
-              valueFrom: 
-                fieldRef: 
+              valueFrom:
+                fieldRef:
                   fieldPath: metadata.namespace
             - name: NODE_IP
               valueFrom:
@@ -96,11 +96,11 @@ spec:
         - name: fluss-conf
           configMap:
             name: fluss-conf-file
-        {{- if not .Values.persistence.enabled }}
+        {{- if not .Values.coordinator.storage.enabled }}
         - name: data
           emptyDir: {}
         {{- end }}
-  {{- if .Values.persistence.enabled }}
+  {{- if .Values.coordinator.storage.enabled }}
   volumeClaimTemplates:
     - metadata:
         name: data
@@ -108,6 +108,6 @@ spec:
         accessModes: [ "ReadWriteOnce" ]
         resources:
           requests:
-            storage: {{ .Values.persistence.size }}
-        storageClassName: {{ .Values.persistence.storageClass }}
-  {{- end}}
\ No newline at end of file
+            storage: {{ .Values.coordinator.storage.size }}
+        storageClassName: {{ .Values.coordinator.storage.storageClass }}
+  {{- end}}
diff --git a/helm/templates/sts-tablet.yaml b/helm/templates/sts-tablet.yaml
index f13dce9b1..db7830750 100644
--- a/helm/templates/sts-tablet.yaml
+++ b/helm/templates/sts-tablet.yaml
@@ -24,7 +24,7 @@ metadata:
   {{- include "fluss.labels" . | nindent 4 }}
 spec:
   serviceName: tablet-server-hs
-  replicas: 3
+  replicas: {{ .Values.tablet.numberOfReplicas }}
   selector:
     matchLabels:
       {{- include "fluss.selectorLabels" . | nindent 6 }}
@@ -44,16 +44,16 @@ spec:
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             - name: POD_NAME
-              valueFrom: 
-                fieldRef: 
-                  fieldPath: metadata.name 
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.name
             - name: POD_IP
-              valueFrom: 
-                fieldRef: 
+              valueFrom:
+                fieldRef:
                   fieldPath: status.podIP
             - name: POD_NAMESPACE
-              valueFrom: 
-                fieldRef: 
+              valueFrom:
+                fieldRef:
                   fieldPath: metadata.namespace
           command:
             - "/bin/sh"
@@ -92,11 +92,11 @@ spec:
         - name: fluss-conf
           configMap:
             name: fluss-conf-file
-        {{- if not .Values.persistence.enabled }}
+        {{- if not .Values.tablet.storage.enabled }}
         - name: data
           emptyDir: {}
         {{- end }}
-  {{- if .Values.persistence.enabled }}
+  {{- if .Values.tablet.storage.enabled }}
   volumeClaimTemplates:
     - metadata:
         name: data
@@ -104,6 +104,6 @@ spec:
         accessModes: [ "ReadWriteOnce" ]
         resources:
           requests:
-            storage: {{ .Values.persistence.size }}
-        storageClassName: {{ .Values.persistence.storageClass }}
-  {{- end}}
\ No newline at end of file
+            storage: {{ .Values.tablet.storage.size }}
+        storageClassName: {{ .Values.tablet.storage.storageClass }}
+  {{- end}}
diff --git a/helm/values.yaml b/helm/values.yaml
index 9cf4b9329..120ca1dfb 100644
--- a/helm/values.yaml
+++ b/helm/values.yaml
@@ -42,10 +42,19 @@ configurationOverrides:
   data.dir: /tmp/fluss/data
   internal.listener.name: INTERNAL
 
-persistence:
-  enabled: false
-  size: 1Gi
-  storageClass:
+tablet:
+  numberOfReplicas: 3
+  storage:
+    enabled: false
+    size: 1Gi
+    storageClass:
+
+coordinator:
+  numberOfReplicas: 1
+  storage:
+    enabled: false
+    size: 1Gi
+    storageClass:
 
 resources: {}
   # We usually recommend not to specify default resources and to leave this as 
a conscious
diff --git a/website/docs/install-deploy/deploying-with-helm.md 
b/website/docs/install-deploy/deploying-with-helm.md
index a33134363..ba80fd83b 100644
--- a/website/docs/install-deploy/deploying-with-helm.md
+++ b/website/docs/install-deploy/deploying-with-helm.md
@@ -141,10 +141,6 @@ The Fluss Helm chart deploys the following Kubernetes 
resources:
 - **ConfigMap**: Configuration management for `server.yaml` settings
 - **Services**: Headless services providing stable pod DNS names
 
-### Optional Components
-- **PersistentVolumes**: Data persistence when `persistence.enabled=true`
-
-
 ### Step 3: Verify Installation
 
 ```bash
@@ -199,13 +195,22 @@ The following table lists the configurable parameters of 
the Fluss chart and the
 | `configurationOverrides.data.dir` | Local data directory | `/tmp/fluss/data` 
|
 | `configurationOverrides.internal.listener.name` | Internal listener name | 
`INTERNAL` |
 
-### Persistence Parameters
+### Tablet Server Parameters
+
+| Parameter | Description | Default |
+|-----------|-------------|---------|
+| `tablet.numberOfReplicas` | Number of TabletServer replicas to deploy | `3` |
+
+### Storage Parameters
 
 | Parameter | Description | Default |
 |-----------|-------------|---------|
-| `persistence.enabled` | Enable persistent volume claims | `false` |
-| `persistence.size` | Persistent volume size | `1Gi` |
-| `persistence.storageClass` | Storage class name | `nil` (uses default) |
+| `coordinator.storage.enabled` | Enable persistent volume claims for 
CoordinatorServer | `false` |
+| `coordinator.storage.size` | Coordinator persistent volume size | `1Gi` |
+| `coordinator.storage.storageClass` | Coordinator storage class name | `nil` 
(uses default) |
+| `tablet.storage.enabled` | Enable persistent volume claims for TabletServer 
| `false` |
+| `tablet.storage.size` | Tablet persistent volume size | `1Gi` |
+| `tablet.storage.storageClass` | Tablet storage class name | `nil` (uses 
default) |
 
 ### Resource Parameters
 
@@ -254,7 +259,23 @@ configurationOverrides:
 
 ### Storage Configuration
 
-Configure different storage backends:
+Configure different storage volumes for coordinator or tablet pods:
+
+```yaml
+coordinator:
+  storage:
+    enabled: true
+    size: 5Gi
+    storageClass: fast-ssd
+
+tablet:
+  storage:
+    enabled: true
+    size: 20Gi
+    storageClass: fast-ssd
+```
+
+Configure remote storage:
 
 ```yaml
 configurationOverrides:
@@ -405,4 +426,3 @@ kubectl get configmap fluss-conf-file -o yaml
 # Get detailed pod information
 kubectl get pods -o wide -l app.kubernetes.io/name=fluss
 ```
-

Reply via email to