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