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

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


The following commit(s) were added to refs/heads/main by this push:
     new 06dccee77 [CELEBORN-1423][HELM] Refactor chart templates and update 
readme docs
06dccee77 is described below

commit 06dccee770c07a78f1957f3e502da6ad3b48211f
Author: Yi Chen <[email protected]>
AuthorDate: Wed May 15 10:30:43 2024 +0800

    [CELEBORN-1423][HELM] Refactor chart templates and update readme docs
    
    ### What changes were proposed in this pull request?
    
    - Comment license with helm template syntax
    - It's better that all resource names are defined once in `_helpers.tml` 
and refered in other files.
    - Format yaml template files with kubernetes style (specifically, follow 
the output of `kubectl`) i.e. yaml sequence does not have indentation.
    - Refactor service and stetefulset templates.
    - Update helm chart values and README file.
    - Add `.helmignore` file to specify patterns for files and directories that 
should be ignored when packaging the chart.
    
    ### Why are the changes needed?
    
    As dicussed in #2499.
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    Local test.
    
    Closes #2509 from ChenYi015/helm-charts-dev.
    
    Authored-by: Yi Chen <[email protected]>
    Signed-off-by: Cheng Pan <[email protected]>
---
 charts/celeborn/Chart.yaml                         |  26 +--
 charts/celeborn/README.md                          |  17 +-
 charts/celeborn/templates/_helpers.tpl             |  78 ++++++++
 charts/celeborn/templates/configmap.yaml           |  34 ++--
 charts/celeborn/templates/master/podmonitor.yaml   |  44 ++---
 .../celeborn/templates/master/priorityclass.yaml   |  34 ++--
 charts/celeborn/templates/master/service.yaml      |  48 ++---
 charts/celeborn/templates/master/statefulset.yaml  | 207 ++++++++++++---------
 charts/celeborn/templates/worker/podmonitor.yaml   |  44 ++---
 .../celeborn/templates/worker/priorityclass.yaml   |  34 ++--
 charts/celeborn/templates/worker/service.yaml      |  38 ++--
 charts/celeborn/templates/worker/statefulset.yaml  | 199 +++++++++++---------
 charts/celeborn/values.yaml                        | 164 ++++++++++------
 13 files changed, 561 insertions(+), 406 deletions(-)

diff --git a/charts/celeborn/Chart.yaml b/charts/celeborn/Chart.yaml
index b919bc383..16db9d67f 100644
--- a/charts/celeborn/Chart.yaml
+++ b/charts/celeborn/Chart.yaml
@@ -18,25 +18,13 @@
 apiVersion: v2
 name: celeborn
 description: >
-  Celeborn is dedicated to improving the efficiency and elasticity of 
different map-reduce engines.
-  Celeborn provides an elastic and high efficient management service for 
shuffle data.
-
-# A chart can be either an 'application' or a 'library' chart.
-#
-# Application charts are a collection of templates that can be packaged into 
versioned archives
-# to be deployed.
-#
-# Library charts provide useful utilities or functions for the chart 
developer. They're included as
-# a dependency of application charts to inject those utilities and functions 
into the rendering
-# pipeline. Library charts do not define any templates and therefore cannot be 
deployed.
+  [Apache Celeborn](https://celeborn.apache.org) is an intermediate data 
service for Big Data compute engines (i.e. ETL, OLAP and Streaming engines) to 
boost performance, stability, and flexibility.
+  Intermediate data typically include shuffle and spilled data.
 type: application
-
-# This is the chart version. This version number should be incremented each 
time you make changes
-# to the chart and its templates, including the app version.
-# Versions are expected to follow Semantic Versioning (https://semver.org/)
 version: 0.1.0
-
-# This is the version number of the application being deployed. This version 
number should be
-# incremented each time you make changes to the application. Versions are not 
expected to
-# follow Semantic Versioning. They should reflect the version the application 
is using.
 appVersion: 0.4.0
+keywords:
+  - Apache Celeborn
+  - Big Data
+  - Shuffle
+home: https://github.com/apache/celeborn
diff --git a/charts/celeborn/README.md b/charts/celeborn/README.md
index 601102091..c6908fe9c 100644
--- a/charts/celeborn/README.md
+++ b/charts/celeborn/README.md
@@ -21,15 +21,14 @@ under the License.
 
 [Apache Celeborn](https://celeborn.apache.org) is an intermediate data service 
for Big Data compute engines (i.e. ETL, OLAP and Streaming engines) to boost 
performance, stability, and flexibility. Intermediate data typically include 
shuffle and spilled data.
 
-
 ## Introduction
 
-This chart will bootstrap an [Celeborn](https://celeborn.apache.org) 
deployment on a [Kubernetes](http://kubernetes.io)
-cluster using the [Helm](https://helm.sh) package manager.
+This chart will bootstrap an [Celeborn](https://celeborn.apache.org) 
deployment on a [Kubernetes](http://kubernetes.io) cluster using the 
[Helm](https://helm.sh) package manager.
 
 ## Requirements
 
 Configure kubectl to connect to the Kubernetes cluster.
+
 - [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl)
 - [Helm 3.0+](https://helm.sh/docs/using_helm/#installing-helm)
 
@@ -40,17 +39,21 @@ When you want to test the template rendering, but not 
actually install anything.
 There are two ways to render templates. It will return the rendered template 
to you so you can see the output.
 
 - Local rendering chart templates
+
 ```shell
 helm template --debug ../celeborn
 ```
+
 - Server side rendering chart templates
+
 ```shell
 helm install --dry-run --debug --generate-name ../celeborn
 ```
-More details in [Helm Install](https://helm.sh/docs/helm/helm_install/)
-The chart can be customized using the following [celeborn 
configurations](https://celeborn.apache.org/docs/latest/configuration/#important-configurations)
-Specify parameters using `--set key=value[,key=value]` argument to `helm 
install`
+
+More details in [Helm Install](https://helm.sh/docs/helm/helm_install/).
+The chart can be customized using the following [celeborn 
configurations](https://celeborn.apache.org/docs/latest/configuration/#important-configurations).
+Specify parameters using `--set key=value[,key=value]` argument to `helm 
install`.
 
 ## Documentation
 
-For additional details on deploying the Celeborn Kubernetes Helm chart, please 
refer to the [Celeborn on 
Kubernetes](https://celeborn.apache.org/docs/latest/deploy_on_k8s/) 
documentation
+For additional details on deploying the Celeborn Kubernetes Helm chart, please 
refer to the [Celeborn on 
Kubernetes](https://celeborn.apache.org/docs/latest/deploy_on_k8s/) 
documentation.
diff --git a/charts/celeborn/templates/_helpers.tpl 
b/charts/celeborn/templates/_helpers.tpl
index 893b23172..6224a816c 100644
--- a/charts/celeborn/templates/_helpers.tpl
+++ b/charts/celeborn/templates/_helpers.tpl
@@ -77,3 +77,81 @@ Create the name of the service account to use
 {{- default "default" .Values.serviceAccount.name }}
 {{- end }}
 {{- end }}
+
+{{/*
+Create the name of configmap to use
+*/}}
+{{- define "celeborn.configMapName" -}}
+{{ include "celeborn.fullname" . }}-conf
+{{- end -}}
+
+{{/*
+Create the name of the master service to use
+*/}}
+{{- define "celeborn.masterServiceName" -}}
+{{ include "celeborn.fullname" . }}-master-svc
+{{- end }}
+
+{{/*
+Create the name of the worker service to use
+*/}}
+{{- define "celeborn.workerServiceName" -}}
+{{ include "celeborn.fullname" . }}-worker-svc
+{{- end }}
+
+{{/*
+Create the name of the master priority class to use
+*/}}
+{{- define "celeborn.masterPriorityClassName" -}}
+{{- if .Values.priorityClass.master.name -}}
+{{ .Values.priorityClass.master.name }}
+{{- else -}}
+{{ include "celeborn.fullname" . }}-master-priority-class
+{{- end }}
+{{- end }}
+
+{{/*
+Create the name of the worker priority class to use
+*/}}
+{{- define "celeborn.workerPriorityClassName" -}}
+{{- if .Values.priorityClass.worker.name -}}
+{{ .Values.priorityClass.worker.name }}
+{{- else -}}
+{{ include "celeborn.fullname" . }}-worker-priority-class
+{{- end }}
+{{- end }}
+
+{{/*
+Create the name of the celeborn image to use
+*/}}
+{{- define "celeborn.image" -}}
+{{ .Values.image.repository }}:{{ .Values.image.tag | default 
.Chart.AppVersion }}
+{{- end }}
+
+{{/*
+Create the name of the master statefulset to use
+*/}}
+{{- define "celeborn.masterStatefulSetName" -}}
+{{ include "celeborn.fullname" . }}-master
+{{- end }}
+
+{{/*
+Create the name of the worker statefulset to use
+*/}}
+{{- define "celeborn.workerStatefulSetName" -}}
+{{ include "celeborn.fullname" . }}-worker
+{{- end }}
+
+{{/*
+Create the name of the master podmonitor to use
+*/}}
+{{- define "celeborn.masterPodMonitorName" -}}
+{{ include "celeborn.fullname" . }}-master-podmonitor
+{{- end }}
+
+{{/*
+Create the name of the worker podmonitor to use
+*/}}
+{{- define "celeborn.workerPodMonitorName" -}}
+{{ include "celeborn.fullname" . }}-worker-podmonitor
+{{- end }}
diff --git a/charts/celeborn/templates/configmap.yaml 
b/charts/celeborn/templates/configmap.yaml
index 0caff4b30..052f41ce1 100644
--- a/charts/celeborn/templates/configmap.yaml
+++ b/charts/celeborn/templates/configmap.yaml
@@ -1,24 +1,24 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
+{{- /*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -}}
 
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ .Release.Name }}-conf
+  name: {{ include "celeborn.configMapName" . }}
   labels:
     {{- include "celeborn.labels" . | nindent 4 }}
 data:
diff --git a/charts/celeborn/templates/master/podmonitor.yaml 
b/charts/celeborn/templates/master/podmonitor.yaml
index 32852eaef..11b4e73be 100644
--- a/charts/celeborn/templates/master/podmonitor.yaml
+++ b/charts/celeborn/templates/master/podmonitor.yaml
@@ -1,38 +1,38 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
+{{- /*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -}}
 
 {{- if .Values.podMonitor.enable }}
 {{- if .Capabilities.APIVersions.Has "monitoring.coreos.com/v1/PodMonitor" -}}
 apiVersion: monitoring.coreos.com/v1
 kind: PodMonitor
 metadata:
-  name: {{ .Release.Name }}-master-podmonitor
+  name: {{ include "celeborn.masterPodMonitorName" . }}
   labels:
     {{- include "celeborn.labels" . | nindent 4 }}
 spec:
   podMetricsEndpoints:
-    - interval: {{ .Values.podMonitor.podMetricsEndpoint.interval }}
-      port: {{ .Values.podMonitor.podMetricsEndpoint.portName | quote }}
-      scheme: {{ .Values.podMonitor.podMetricsEndpoint.scheme }}
-      path: /metrics/prometheus
+  - interval: {{ .Values.podMonitor.podMetricsEndpoint.interval }}
+    port: {{ .Values.podMonitor.podMetricsEndpoint.portName | quote }}
+    scheme: {{ .Values.podMonitor.podMetricsEndpoint.scheme }}
+    path: {{ get .Values.celeborn "celeborn.metrics.prometheus.path" | default 
"/metrics/prometheus" }}
   jobLabel: celeborn-master-podmonitor
   namespaceSelector:
     matchNames:
-      - {{ .Release.Namespace }}
+    - {{ .Release.Namespace }}
   selector:
     matchLabels:
       {{- include "celeborn.selectorLabels" . | nindent 6 }}
diff --git a/charts/celeborn/templates/master/priorityclass.yaml 
b/charts/celeborn/templates/master/priorityclass.yaml
index b7608053f..f9345f0ab 100644
--- a/charts/celeborn/templates/master/priorityclass.yaml
+++ b/charts/celeborn/templates/master/priorityclass.yaml
@@ -1,25 +1,25 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
+{{- /*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -}}
 
 {{- if .Values.priorityClass.master.create }}
 apiVersion: scheduling.k8s.io/v1
 kind: PriorityClass
 metadata:
-  name: {{ .Values.priorityClass.master.name | default (printf 
"%s-master-priority" (.Release.Name)) }}
+  name: {{ include "celeborn.masterPriorityClassName" . }}
   labels:
     {{- include "celeborn.labels" . | nindent 4 }}
 value: {{ .Values.priorityClass.master.value }}
diff --git a/charts/celeborn/templates/master/service.yaml 
b/charts/celeborn/templates/master/service.yaml
index 9d3b92f3c..aee0ce1df 100644
--- a/charts/celeborn/templates/master/service.yaml
+++ b/charts/celeborn/templates/master/service.yaml
@@ -1,34 +1,34 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
+{{- /*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -}}
 
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Release.Name }}-master-svc
+  name: {{ include "celeborn.masterServiceName" . }}
   labels:
     {{- include "celeborn.labels" . | nindent 4 }}
 spec:
-  type: {{ .Values.service.type }}
-  ports:
-    - port: {{ .Values.service.port }}
-      targetPort: {{ .Values.service.port }}
-      protocol: TCP
-      name: celeborn-master
-  clusterIP: None
   selector:
     {{- include "celeborn.selectorLabels" . | nindent 4 }}
     app.kubernetes.io/role: master
+  ports:
+  - port: {{ .Values.service.port }}
+    targetPort: {{ .Values.service.port }}
+    protocol: TCP
+    name: celeborn-master
+  type: {{ .Values.service.type }}
+  clusterIP: None
diff --git a/charts/celeborn/templates/master/statefulset.yaml 
b/charts/celeborn/templates/master/statefulset.yaml
index 693587031..01e670588 100644
--- a/charts/celeborn/templates/master/statefulset.yaml
+++ b/charts/celeborn/templates/master/statefulset.yaml
@@ -1,134 +1,155 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
+{{- /*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -}}
 
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
-  name: {{ .Release.Name }}-master
+  name: {{ include "celeborn.masterStatefulSetName" . }}
   labels:
     {{- include "celeborn.labels" . | nindent 4 }}
     app.kubernetes.io/role: master
 spec:
+  serviceName: {{ include "celeborn.masterServiceName" . }}
   selector:
     matchLabels:
       {{- include "celeborn.selectorLabels" . | nindent 6 }}
       app.kubernetes.io/role: master
-  serviceName: {{ .Release.Name }}-master-svc
-  replicas: {{ .Values.masterReplicas }}
   template:
     metadata:
-      {{- with .Values.podAnnotations }}
-      annotations:
-        {{- toYaml . | nindent 8 }}
-      {{- end }}
       labels:
         {{- include "celeborn.selectorLabels" . | nindent 8 }}
         app.kubernetes.io/role: master
         app.kubernetes.io/tag: {{ .Values.image.tag | quote }}
-    spec:
-      {{- with .Values.affinity.master }}
-      affinity:
-        {{- toYaml . | nindent 8 }}
-      {{- end }}
-      {{- with .Values.imagePullSecrets }}
-      imagePullSecrets:
-        {{- toYaml . | nindent 8 }}
-      {{- end }}
-      {{- with .Values.nodeSelector }}
-      nodeSelector:
-        {{- toYaml . | nindent 8 }}
-      {{- end }}
-      {{- with .Values.tolerations }}
-      tolerations:
-        {{- toYaml . | nindent 8 }}
-      {{- end }}
-      {{- if or .Values.priorityClass.master.name 
.Values.priorityClass.master.create }}
-      priorityClassName: {{ .Values.priorityClass.master.name | default 
(printf "%s-master-priority" (.Release.Name)) }}
-      {{- end }}
-      {{- with .Values.securityContext }}
-      securityContext:
+      {{- with .Values.podAnnotations }}
+      annotations:
         {{- toYaml . | nindent 8 }}
       {{- end }}
-      hostNetwork: {{ .Values.hostNetwork | default false }}
-      dnsPolicy: {{ .Values.dnsPolicy | default "ClusterFirst" }}
+    spec:
       initContainers:
       {{- $dirs := .Values.volumes.master }}
       {{- if eq "hostPath" (index $dirs 0).type }}
       - name: chown-{{ $.Release.Name }}-master-volume
         image: alpine:3.18
-        imagePullPolicy: {{ .Values.image.pullPolicy | default "IfNotPresent" 
}}
-        securityContext:
-          runAsUser: 0
+        {{- with .Values.image.pullPolicy }}
+        imagePullPolicy: {{ . }}
+        {{- end }}
         command:
         - chown
         - {{ .Values.securityContext.runAsUser | default 10006 }}:{{ 
.Values.securityContext.runAsGroup | default 10006 }}
         - {{ (index $dirs 0).mountPath }}
-        resources:
-          {{- toYaml .Values.resources.master | nindent 12 }}
         volumeMounts:
-          - name: {{ $.Release.Name }}-master-vol-0
-            mountPath: {{ (index $dirs 0).mountPath }}
+        - name: {{ $.Release.Name }}-master-vol-0
+          mountPath: {{ (index $dirs 0).mountPath }}
+        {{- with .Values.resources.master }}
+        resources:
+          {{- toYaml . | nindent 10 }}
+        {{- end }}
+        securityContext:
+          runAsUser: 0
       {{- end }}
       containers:
       - name: {{ .Chart.Name }}
-        image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default 
.Chart.AppVersion }}"
-        imagePullPolicy: {{ .Values.image.pullPolicy | default "IfNotPresent"}}
+        image: {{ include "celeborn.image" . }}
+        {{- with .Values.image.pullPolicy }}
+        imagePullPolicy: {{ . }}
+        {{- end }}
         command:
-          - "/usr/bin/tini"
-          - "--"
-          - "/bin/sh"
-          - '-c'
-          {{- $namespace := .Release.Namespace }}
-          - "until {{ range until (.Values.masterReplicas |int) }}nslookup {{ 
$.Release.Name }}-master-{{ . }}.{{ $.Release.Name }}-master-svc.{{ $namespace 
}}.svc.{{ $.Values.cluster.name }}.local && {{ end }}true; do echo waiting for 
master; sleep 2; done && exec /opt/celeborn/sbin/start-master.sh"
+        - /usr/bin/tini
+        - --
+        - /bin/sh
+        - -c
+        {{- $namespace := .Release.Namespace }}
+        - >
+          until {{ range until (.Values.masterReplicas | int) }}
+          nslookup {{ include "celeborn.masterStatefulSetName" $ }}-{{ . }}.{{ 
include "celeborn.masterServiceName" $ }}.{{ $namespace }}.svc.{{ 
$.Values.cluster.name }}.local &&
+          {{- end }}
+          true; do
+            echo "waiting for master"; 
+            sleep 2;
+          done && exec /opt/celeborn/sbin/start-master.sh
         resources:
-          {{- toYaml .Values.resources.master | nindent 12 }}
+          {{- toYaml .Values.resources.master | nindent 10 }}
         ports:
-          - containerPort: {{ .Values.service.port }}
-          - containerPort: {{ get .Values.celeborn "celeborn.master.http.port" 
| default 9098 }}
-            name: metrics
-            protocol: TCP
-        volumeMounts:
-          - mountPath: /opt/celeborn/conf
-            name: {{ include "celeborn.fullname" . }}-volume
-            readOnly: true
-          {{- range $index, $volume := .Values.volumes.master }}
-          - name: {{ $.Release.Name }}-master-vol-{{ $index }}
-            mountPath: {{ .mountPath }}
-          {{- end }}
+        - containerPort: {{ .Values.service.port }}
+        - containerPort: {{ get .Values.celeborn "celeborn.master.http.port" | 
default 9098 }}
+          name: metrics
+          protocol: TCP
         env:
-          {{- range $key, $val := .Values.environments }}
-          - name: {{ $key }}
-            value: {{ $val | quote }}
-          {{- end}}
-      terminationGracePeriodSeconds: 30
-      volumes:
-        - configMap:
-            name: {{ .Release.Name }}-conf
-          name: {{ include "celeborn.fullname" . }}-volume
+        {{- range $key, $val := .Values.environments }}
+        - name: {{ $key }}
+          value: {{ $val | quote }}
+        {{- end}}
+        volumeMounts:
+        - name: {{ include "celeborn.fullname" . }}-volume
+          mountPath: /opt/celeborn/conf
+          readOnly: true
         {{- range $index, $volume := .Values.volumes.master }}
         - name: {{ $.Release.Name }}-master-vol-{{ $index }}
-        {{- if eq "emptyDir" $volume.type }}
-          emptyDir:
-            sizeLimit: {{ $volume.capacity }}
-        {{- else if eq "hostPath" $volume.type }}
-          hostPath:
-            path: {{ $volume.hostPath | default $volume.mountPath }}/master
-            type: DirectoryOrCreate
-        {{- else }}
-        {{ fail "For now Celeborn Helm only support emptyDir or hostPath 
volume types" }}
+          mountPath: {{ .mountPath }}
         {{- end }}
+        {{- with .Values.resources.master }}
+        resources:
+          {{- toYaml . | nindent 10 }}
         {{- end }}
+      {{- with .Values.imagePullSecrets }}
+      imagePullSecrets:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      volumes:
+      - name: {{ include "celeborn.fullname" . }}-volume
+        configMap:
+          name: {{ include "celeborn.configMapName" . }}
+      {{- range $index, $volume := .Values.volumes.master }}
+      - name: {{ $.Release.Name }}-master-vol-{{ $index }}
+      {{- if eq "emptyDir" $volume.type }}
+        emptyDir:
+          sizeLimit: {{ $volume.capacity }}
+      {{- else if eq "hostPath" $volume.type }}
+        hostPath:
+          path: {{ $volume.hostPath | default $volume.mountPath }}/master
+          type: DirectoryOrCreate
+      {{- else }}
+      {{ fail "For now Celeborn Helm only support emptyDir or hostPath volume 
types" }}
+      {{- end }}
+      {{- end }}
+      {{- with .Values.nodeSelector }}
+      nodeSelector:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.tolerations }}
+      tolerations:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.affinity.master }}
+      affinity:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- if or .Values.priorityClass.master.name 
.Values.priorityClass.master.create }}
+      priorityClassName: {{ include "celeborn.masterPriorityClassName" . }}
+      {{- end }}
+      {{- with .Values.dnsPolicy }}
+      dnsPolicy: {{ . }}
+      {{- end }}
+      {{- with .Values.hostNetwork }}
+      hostNetwork: {{ . }}
+      {{- end }}
+      {{- with .Values.securityContext }}
+      securityContext:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      terminationGracePeriodSeconds: 30
+  replicas: {{ .Values.masterReplicas }}
diff --git a/charts/celeborn/templates/worker/podmonitor.yaml 
b/charts/celeborn/templates/worker/podmonitor.yaml
index 74e3e0815..dea863950 100644
--- a/charts/celeborn/templates/worker/podmonitor.yaml
+++ b/charts/celeborn/templates/worker/podmonitor.yaml
@@ -1,38 +1,38 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
+{{- /*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -}}
 
 {{- if .Values.podMonitor.enable }}
 {{- if .Capabilities.APIVersions.Has "monitoring.coreos.com/v1/PodMonitor" -}}
 apiVersion: monitoring.coreos.com/v1
 kind: PodMonitor
 metadata:
-  name: {{ .Release.Name }}-worker-podmonitor
+  name: {{ include "celeborn.workerPodMonitorName" . }}
   labels:
     {{- include "celeborn.labels" . | nindent 4 }}
 spec:
   podMetricsEndpoints:
-    - interval: {{ .Values.podMonitor.podMetricsEndpoint.interval }}
-      port: {{ .Values.podMonitor.podMetricsEndpoint.portName | quote }}
-      scheme: {{ .Values.podMonitor.podMetricsEndpoint.scheme }}
-      path: /metrics/prometheus
+  - interval: {{ .Values.podMonitor.podMetricsEndpoint.interval }}
+    port: {{ .Values.podMonitor.podMetricsEndpoint.portName | quote }}
+    scheme: {{ .Values.podMonitor.podMetricsEndpoint.scheme }}
+    path: {{ get .Values.celeborn "celeborn.metrics.prometheus.path" | default 
"/metrics/prometheus" }}
   jobLabel: celeborn-worker-podmonitor
   namespaceSelector:
     matchNames:
-      - {{ .Release.Namespace }}
+    - {{ .Release.Namespace }}
   selector:
     matchLabels:
       {{- include "celeborn.selectorLabels" . | nindent 6 }}
diff --git a/charts/celeborn/templates/worker/priorityclass.yaml 
b/charts/celeborn/templates/worker/priorityclass.yaml
index 19b587b14..ec63d0202 100644
--- a/charts/celeborn/templates/worker/priorityclass.yaml
+++ b/charts/celeborn/templates/worker/priorityclass.yaml
@@ -1,25 +1,25 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
+{{- /*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -}}
 
 {{- if .Values.priorityClass.worker.create }}
 apiVersion: scheduling.k8s.io/v1
 kind: PriorityClass
 metadata:
-  name: {{ .Values.priorityClass.worker.name | default (printf 
"%s-worker-priority" (.Release.Name)) }}
+  name: {{ include "celeborn.workerPriorityClassName" . }}
   labels:
     {{- include "celeborn.labels" . | nindent 4 }}
 value: {{ .Values.priorityClass.worker.value }}
diff --git a/charts/celeborn/templates/worker/service.yaml 
b/charts/celeborn/templates/worker/service.yaml
index 2bf8efbef..2f8b1ec24 100644
--- a/charts/celeborn/templates/worker/service.yaml
+++ b/charts/celeborn/templates/worker/service.yaml
@@ -1,29 +1,29 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
+{{- /*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -}}
 
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Release.Name }}-worker-svc
+  name: {{ include "celeborn.workerServiceName" . }}
   labels:
     {{- include "celeborn.labels" . | nindent 4 }}
 spec:
-  type: {{ .Values.service.type }}
-  clusterIP: None
   selector:
     {{- include "celeborn.selectorLabels" . | nindent 4 }}
     app.kubernetes.io/role: worker
+  type: {{ .Values.service.type }}
+  clusterIP: None
diff --git a/charts/celeborn/templates/worker/statefulset.yaml 
b/charts/celeborn/templates/worker/statefulset.yaml
index f4ad1c979..c65edd295 100644
--- a/charts/celeborn/templates/worker/statefulset.yaml
+++ b/charts/celeborn/templates/worker/statefulset.yaml
@@ -1,137 +1,158 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
+{{- /*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -}}
 
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
-  name: {{ .Release.Name }}-worker
+  name: {{ include "celeborn.workerStatefulSetName" . }}
   labels:
     {{- include "celeborn.labels" . | nindent 4 }}
     app.kubernetes.io/role: worker
 spec:
+  serviceName: {{ include "celeborn.workerServiceName" . }}
   selector:
     matchLabels:
       {{- include "celeborn.selectorLabels" . | nindent 6 }}
       app.kubernetes.io/role: worker
-  serviceName: {{ .Release.Name }}-worker
-  replicas: {{ .Values.workerReplicas }}
   template:
     metadata:
-      {{- with .Values.podAnnotations }}
-      annotations:
-        {{- toYaml . | nindent 8 }}
-      {{- end }}
       labels:
         {{- include "celeborn.selectorLabels" . | nindent 8 }}
         app.kubernetes.io/role: worker
         app.kubernetes.io/tag: {{ .Values.image.tag | quote }}
-    spec:
-      {{- with .Values.affinity.worker }}
-      affinity:
-        {{- toYaml . | nindent 8 }}
-      {{- end }}
-      {{- with .Values.imagePullSecrets }}
-      imagePullSecrets:
-        {{- toYaml . | nindent 8 }}
-      {{- end }}
-      {{- with .Values.nodeSelector }}
-      nodeSelector:
-        {{- toYaml . | nindent 8 }}
-      {{- end }}
-      {{- with .Values.tolerations }}
-      tolerations:
-        {{- toYaml . | nindent 8 }}
-      {{- end }}
-      {{- if or .Values.priorityClass.worker.name 
.Values.priorityClass.worker.create }}
-      priorityClassName: {{ .Values.priorityClass.worker.name | default 
(printf "%s-worker-priority" (.Release.Name)) }}
-      {{- end }}
-      {{- with .Values.securityContext }}
-      securityContext:
+      {{- with .Values.podAnnotations }}
+      annotations:
         {{- toYaml . | nindent 8 }}
       {{- end }}
-      hostNetwork: {{ .Values.hostNetwork | default false }}
-      dnsPolicy: {{ .Values.dnsPolicy | default "ClusterFirst" }}
+    spec:
       initContainers:
       {{- $dirs := .Values.volumes.worker }}
       {{- if eq "hostPath" (index $dirs 0).type }}
       - name: chown-{{ $.Release.Name }}-worker-volume
         image: alpine:3.18
-        imagePullPolicy: {{ .Values.image.pullPolicy | default "IfNotPresent" 
}}
-        securityContext:
-          runAsUser: 0
+        {{- with .Values.image.pullPolicy }}
+        imagePullPolicy: {{ . }}
+        {{- end }}
         command:
         - chown
         - {{ .Values.securityContext.runAsUser | default 10006 }}:{{ 
.Values.securityContext.runAsGroup | default 10006 }}
         {{- range $dir := $dirs }}
         - {{ $dir.mountPath }}
         {{- end}}
-        resources:
-          {{- toYaml .Values.resources.worker | nindent 12 }}
         volumeMounts:
         {{- range $index, $dir := $dirs }}
         - name: {{ $.Release.Name }}-worker-vol-{{ $index }}
           mountPath: {{ $dir.mountPath }}
         {{- end}}
+        {{- with .Values.resources.worker }}
+        resources:
+          {{- toYaml . | nindent 10 }}
+        {{- end }}
+        securityContext:
+          runAsUser: 0
       {{- end }}
       containers:
       - name: {{ .Chart.Name }}
-        image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default 
.Chart.AppVersion }}"
-        imagePullPolicy: {{ .Values.image.pullPolicy | default "IfNotPresent"}}
+        image: {{ include "celeborn.image" . }}
+        {{- with .Values.image.pullPolicy }}
+        imagePullPolicy: {{ . }}
+        {{- end }}
         command:
-          - "/usr/bin/tini"
-          - "--"
-          - "/bin/sh"
-          - '-c'
-          {{- $namespace := .Release.Namespace }}
-          - "until {{ range until (.Values.masterReplicas |int) }}nslookup {{ 
$.Release.Name }}-master-{{ . }}.{{ $.Release.Name }}-master-svc.{{ $namespace 
}}.svc.{{ $.Values.cluster.name }}.local && {{ end }}true; do echo waiting for 
master; sleep 2; done && exec /opt/celeborn/sbin/start-worker.sh"
+        - /usr/bin/tini
+        - --
+        - /bin/sh
+        - -c
+        {{- $namespace := .Release.Namespace }}
+        - >
+          until {{ range until (.Values.masterReplicas | int) }}
+          nslookup {{ include "celeborn.masterStatefulSetName" $ }}-{{ . }}.{{ 
include "celeborn.masterServiceName" $ }}.{{ $namespace }}.svc.{{ 
$.Values.cluster.name }}.local && 
+          {{- end }}
+          true; do
+            echo "waiting for master";
+            sleep 2;
+          done && exec /opt/celeborn/sbin/start-worker.sh
         resources:
-          {{- toYaml .Values.resources.worker | nindent 12 }}
+          {{- toYaml .Values.resources.worker | nindent 10 }}
         ports:
-          - containerPort: {{ get .Values.celeborn "celeborn.worker.http.port" 
| default 9096 }}
-            name: metrics
-            protocol: TCP
-        volumeMounts:
-          - mountPath: /opt/celeborn/conf
-            name: {{ include "celeborn.fullname" . }}-volume
-            readOnly: true
-          {{- range $index, $volume := .Values.volumes.worker }}
-          - name: {{ $.Release.Name }}-worker-vol-{{ $index }}
-            mountPath: {{ .mountPath }}
-          {{- end }}
+        - containerPort: {{ get .Values.celeborn "celeborn.worker.http.port" | 
default 9096 }}
+          name: metrics
+          protocol: TCP
         env:
-          {{- range $key, $val := .Values.environments }}
-          - name: {{ $key }}
-            value: {{ $val | quote }}
-          {{- end}}
-      terminationGracePeriodSeconds: 30
-      volumes:
-        - configMap:
-            name: {{ .Release.Name }}-conf
+        {{- range $key, $val := .Values.environments }}
+        - name: {{ $key }}
+          value: {{ $val | quote }}
+        {{- end}}
+        volumeMounts:
+        - mountPath: /opt/celeborn/conf
           name: {{ include "celeborn.fullname" . }}-volume
+          readOnly: true
         {{- range $index, $volume := .Values.volumes.worker }}
         - name: {{ $.Release.Name }}-worker-vol-{{ $index }}
-        {{- if eq "emptyDir" $volume.type }}
-          emptyDir:
-            sizeLimit: {{ $volume.capacity }}
-        {{- else if eq "hostPath" $volume.type }}
-          hostPath:
-            path: {{ $volume.hostPath | default $volume.mountPath }}/worker
-            type: DirectoryOrCreate
-        {{- else }}
-        {{ fail "Currently, Celeborn chart only supports 'emptyDir' and 
'hostPath' volume types" }}
+          mountPath: {{ .mountPath }}
         {{- end }}
+        {{- with .Values.resources.worker }}
+        resources:
+          {{- toYaml . | nindent 10 }}
         {{- end }}
+      {{- with .Values.imagePullSecrets }}
+      imagePullSecrets:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      volumes:
+      - name: {{ include "celeborn.fullname" . }}-volume
+        configMap:
+          name: {{ include "celeborn.configMapName" . }}
+      {{- range $index, $volume := .Values.volumes.worker }}
+      - name: {{ $.Release.Name }}-worker-vol-{{ $index }}
+      {{- if eq "emptyDir" $volume.type }}
+        emptyDir:
+          sizeLimit: {{ $volume.capacity }}
+      {{- else if eq "hostPath" $volume.type }}
+        hostPath:
+          path: {{ $volume.hostPath | default $volume.mountPath }}/worker
+          type: DirectoryOrCreate
+      {{- else }}
+      {{ fail "Currently, Celeborn chart only supports 'emptyDir' and 
'hostPath' volume types" }}
+      {{- end }}
+      {{- end }}
+      {{- with .Values.nodeSelector }}
+      nodeSelector:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.tolerations }}
+      tolerations:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.affinity.worker }}
+      affinity:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- if or .Values.priorityClass.worker.name 
.Values.priorityClass.worker.create }}
+      priorityClassName: {{ include "celeborn.workerPriorityClassName" . }}
+      {{- end }}
+      {{- with .Values.dnsPolicy }}
+      dnsPolicy: {{ . }}
+      {{- end }}
+      {{- with .Values.hostNetwork }}
+      hostNetwork: {{ . }}
+      {{- end }}
+      {{- with .Values.securityContext }}
+      securityContext:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      terminationGracePeriodSeconds: 30
+  replicas: {{ .Values.workerReplicas }}
diff --git a/charts/celeborn/values.yaml b/charts/celeborn/values.yaml
index 6c3039e44..87cb35e27 100644
--- a/charts/celeborn/values.yaml
+++ b/charts/celeborn/values.yaml
@@ -19,41 +19,52 @@
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 
-# we provide a default celeborn image, you can also replace to your image
-# TODO rebuild celeborn official image
+# -- String to override the default generated name
+nameOverride: ""
+
+# -- String to override the default generated fullname
+fullnameOverride: ""
+
+# Specifies the Celeborn image to use
 image:
+  # -- Image repository
   repository: aliyunemr/remote-shuffle-service
-  pullPolicy: Always
+  # -- Image tag
   tag: 0.1.1-6badd20
+  # -- Image pull policy
+  pullPolicy: Always
 
+# -- Image pull secrets for private image registry
 imagePullSecrets: []
 
-# master replicas should not less than 3
+# -- Specifies the number of Celeborn master replicas to deploy, master 
replicas should not less than 3
 masterReplicas: 3
-# worker replicas set on demand, should less than node number
+# -- Specifies the number of Celeborn worker replicas to deploy, should less 
than node number
 workerReplicas: 5
 
-hostNetwork: false
-dnsPolicy: ClusterFirst
+service:
+  # -- Specifies service type
+  type: ClusterIP
+  # -- Specifies service port
+  port: 9097
 
-securityContext:
-  runAsUser: 10006
-  runAsGroup: 10006
-  fsGroup: 10006
+cluster:
+  # -- Specifies Kubernetes cluster name
+  name: cluster
 
-# Current Celeborn support followings volume type:
-# - emptyDir
-# - hostPath
-# Note:
-# hostPath only works in hostPath type using to set `volumes hostPath path`
-# Celeborn Master will pick first volumes for store raft log
-# diskType only works in Celeborn Worker with hostPath type to manifest local 
disk type
+# Specifies Celeborn volumes.
+# Currently supported volume types are `emptyDir` and `hostPath`.
+# Note that `hostPath` only works in hostPath type using to set `volumes 
hostPath path`.
+# Celeborn Master will pick first volumes for store raft log.
+# `diskType` only works in Celeborn Worker with hostPath type to manifest 
local disk type.
 volumes:
+  # -- Specifies volumes for Celeborn master pods
   master:
     - mountPath: /mnt/celeborn_ratis
       hostPath: /mnt/celeborn_ratis
       type: hostPath
       capacity: 100Gi
+  # -- Specifies volumes for Celeborn worker pods
   worker:
     - mountPath: /mnt/disk1
       hostPath: /mnt/disk1
@@ -76,10 +87,11 @@ volumes:
       diskType: SSD
       capacity: 100Gi
 
-# celeborn configurations
+# -- Celeborn configurations
 celeborn:
   celeborn.master.ha.enabled: true
   celeborn.metrics.enabled: true
+  celeborn.metrics.prometheus.path: /metrics/prometheus
   celeborn.master.http.port: 9098
   celeborn.worker.http.port: 9096
   celeborn.worker.monitor.disk.enabled: false
@@ -95,6 +107,7 @@ celeborn:
   celeborn.application.heartbeat.timeout: 120s
   celeborn.worker.heartbeat.timeout: 120s
 
+# -- Celeborn environment variables
 environments:
   CELEBORN_MASTER_MEMORY: 2g
   CELEBORN_MASTER_JAVA_OPTS: "-XX:-PrintGC -XX:+PrintGCDetails 
-XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:gc-master.out 
-Dio.netty.leakDetectionLevel=advanced"
@@ -104,59 +117,81 @@ environments:
   CELEBORN_NO_DAEMONIZE: 1
   TZ: "Asia/Shanghai"
 
-podMonitor:
-  enable: true
-  podMetricsEndpoint:
-    scheme: http
-    interval: 5s
-    portName: metrics
+# -- Specifies the DNS policy for Celeborn pods to use
+dnsPolicy: ClusterFirst
 
-service:
-  type: ClusterIP
-  port: 9097
+# -- Specifies whether to use the host's network namespace
+hostNetwork: false
 
-cluster:
-  name: cluster
+resources:
+  # -- Pod resources for Celeborn master pods
+  master: {}
+    # limits:
+    #   cpu: 100m
+    #   memory: 128Mi
+    # requests:
+    #   cpu: 100m
+    #   memory: 128Mi
+
+  # -- Pod resources for Celeborn worker pods
+  worker: {}
+    # limits:
+    #   cpu: 100m
+    #   memory: 128Mi
+    # requests:
+    #   cpu: 100m
+    #   memory: 128Mi
+
+# -- Container security context
+securityContext:
+  # Specifies the user ID to run the entrypoint of the container process
+  runAsUser: 10006
+  # Specifies the group ID to run the entrypoint of the container process
+  runAsGroup: 10006
+  # Specifies the group ID to use when modifying ownership and permissions of 
the mounted volumes
+  fsGroup: 10006
 
-resources: {}
-  # We usually recommend not to specify default resources and to leave this as 
a conscious
-  # choice for the user. This also increases chances charts run on 
environments with little
-  # resources, such as Minikube. If you do want to specify resources, 
uncomment the following
-  # lines, adjust them as necessary, and remove the curly braces after 
'resources:'.
-  #master:
-  #  limits:
-  #    cpu: 100m
-  #    memory: 128Mi
-  #  requests:
-  #    cpu: 100m
-  #    memory: 128Mi
-  #worker:
-  #  limits:
-  #    cpu: 100m
-  #    memory: 128Mi
-  #  requests:
-  #    cpu: 100m
-  #    memory: 128Mi
-
-# priorityClass used for Celeborn pods
 priorityClass:
+  # Priority class for Celeborn master pods
   master:
-    # Specifies whether a priorityClass should be created
+    # -- Specifies whether a new priority class for Celeborn master pods 
should be created
     create: false
-    # Specifies priorityClass name to be used (created if `create: true`)
-    name: ~
-    # half of system-cluster-critical by default
+    # -- Specifies the name of priority class for Celeborn master pods to be 
used (created if `create: true`), empty means 
`${Release.Name}-master-priority-class`
+    name: ""
+    # -- Specifies the integer value of this priority class, default is half 
of system-cluster-critical
     value: 1000000000
 
+  # Priority class for Celeborn worker pods
   worker:
+    # -- Specifies whether a new priority class for Celeborn worker pods 
should be created
     create: false
-    name: ~
-    # celeborn master minus 1000
+    # -- Specifies the name of priority class for Celeborn worker pods to be 
used (created if `create: true`), empty means 
`${Release.Name}-worker-priority-class`
+    name: ""
+    # -- Specifies the integer value of this priority class, default is 
Celeborn master value minus 1000
     value: 999999000
 
+# -- Pod annotations
 podAnnotations: {}
+# key1: value1
+# key2: value2
+
+# -- Pod node selector
+nodeSelector: {}
+# key1: value1
+# key2: value2
+
+# -- Pod tolerations
+tolerations: []
+# - key: key1
+#   operator: Equal
+#   value: value1
+#   effect: NoSchedule
+# - key: key2
+#   operator: Exists
+#   effect: NoSchedule
 
 affinity:
+  # -- Pod affinity for Celeborn master pods
   master:
     podAntiAffinity:
       requiredDuringSchedulingIgnoredDuringExecution:
@@ -171,6 +206,7 @@ affinity:
                 values:
                   - master
           topologyKey: kubernetes.io/hostname
+  # -- Pod affinity for Celeborn worker pods
   worker:
     podAntiAffinity:
       requiredDuringSchedulingIgnoredDuringExecution:
@@ -186,6 +222,14 @@ affinity:
                   - worker
           topologyKey: "kubernetes.io/hostname"
 
-tolerations: []
-
-nodeSelector: {}
+podMonitor:
+  # -- Specifies whether to enable creating pod monitors for Celeborn pods
+  enable: true
+  # -- Specifies pod metrics endpoint
+  podMetricsEndpoint:
+    # Specifies scheme
+    scheme: http
+    # Specifies scrape interval
+    interval: 5s
+    # Specifies port name
+    portName: metrics

Reply via email to