[CELEBORN-2017][HELM] Add namespace to the metadata

### What changes were proposed in this pull request?

- Add `namespace` to the object metadata for all namespace-scoped resources.
- Update related Helm unit tests.
- Bump chart `appVersion` to `0.5.4` since the Docker image with this tag has already been released.

### Why are the changes needed?

- Improve the Helm charts.

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

Run Helm unit tests by `helm unittest charts/celeborn --file "tests/**/*_test.yaml" --strict --debug`.

Closes #3295 from ChenYi015/helm/namespace.

Authored-by: Yi Chen <github@chenyicn.net>
Signed-off-by: Shuang <lvshuang.xjs@alibaba-inc.com>
This commit is contained in:
Yi Chen 2025-06-05 22:10:03 +08:00 committed by Shuang
parent 211046d0ec
commit 2e41877cda
27 changed files with 135 additions and 96 deletions

View File

@ -22,7 +22,7 @@ description: >
Intermediate data typically include shuffle and spilled data.
type: application
version: 0.1.0
appVersion: 0.4.0
appVersion: 0.5.4
keywords:
- Apache Celeborn
- Big Data

View File

@ -67,43 +67,37 @@ app.kubernetes.io/name: {{ include "celeborn.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "celeborn.serviceAccountName" -}}
{{/* Create the name of the service account to use. */}}
{{- define "celeborn.serviceAccount.name" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "celeborn.fullname" .) .Values.serviceAccount.name }}
{{- .Values.serviceAccount.name | default (include "celeborn.fullname" .) }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- .Values.serviceAccount.name | default "default" }}
{{- end }}
{{- end }}
{{/*
Create the name of the role to use
*/}}
{{- define "celeborn.roleName" -}}
{{/* Create the name of the role to use. */}}
{{- define "celeborn.role.name" -}}
{{- if .Values.rbac.create }}
{{- default (include "celeborn.fullname" .) .Values.rbac.roleName }}
{{- .Values.rbac.roleName | default (include "celeborn.fullname" .) }}
{{- else }}
{{- default "default" .Values.rbac.roleName }}
{{- .Values.rbac.roleName | default "default" }}
{{- end }}
{{- end }}
{{/*
Create the name of the roleBinding to use
*/}}
{{- define "celeborn.roleBindingName" -}}
{{- define "celeborn.roleBinding.name" -}}
{{- if .Values.rbac.create }}
{{- default (include "celeborn.fullname" .) .Values.rbac.roleBindingName }}
{{- .Values.rbac.roleBindingName | default (include "celeborn.fullname" .) }}
{{- else }}
{{- default "default" .Values.rbac.roleBindingName }}
{{- .Values.rbac.roleBindingName | default "default" }}
{{- end }}
{{- end }}
{{/*
Create the name of configmap to use
*/}}
{{- define "celeborn.configMapName" -}}
{{/* Create the name of configmap to use. */}}
{{- define "celeborn.configMap.name" -}}
{{ include "celeborn.fullname" . }}-conf
{{- end -}}

View File

@ -18,7 +18,8 @@ limitations under the License.
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "celeborn.configMapName" . }}
name: {{ include "celeborn.configMap.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.labels" . | nindent 4 }}
data:

View File

@ -21,6 +21,7 @@ apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: {{ include "celeborn.master.podMonitor.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.master.labels" . | nindent 4 }}
spec:

View File

@ -20,6 +20,7 @@ apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: {{ include "celeborn.master.priorityClass.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.master.labels" . | nindent 4 }}
value: {{ .Values.master.priorityClass.value }}

View File

@ -22,6 +22,7 @@ apiVersion: v1
kind: Service
metadata:
name: {{ include "celeborn.master.service.name" $ }}-{{ $i }}
namespace: {{ $.Release.Namespace }}
labels:
{{- include "celeborn.labels" $ | nindent 4 }}
annotations:
@ -50,6 +51,7 @@ apiVersion: v1
kind: Service
metadata:
name: {{ include "celeborn.master.service.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.master.labels" . | nindent 4 }}
annotations:

View File

@ -19,6 +19,7 @@ apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "celeborn.master.statefulSet.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.master.labels" . | nindent 4 }}
spec:
@ -138,7 +139,7 @@ spec:
volumes:
- name: celeborn-conf
configMap:
name: {{ include "celeborn.configMapName" . }}
name: {{ include "celeborn.configMap.name" . }}
defaultMode: 0444
items:
- key: celeborn-defaults.conf
@ -171,7 +172,7 @@ spec:
{{- with .Values.master.hostNetwork }}
hostNetwork: {{ . }}
{{- end }}
serviceAccountName: {{ include "celeborn.serviceAccountName" . }}
serviceAccountName: {{ include "celeborn.serviceAccount.name" . }}
{{- with .Values.master.podSecurityContext }}
securityContext:
{{- toYaml . | nindent 8 }}

View File

@ -19,9 +19,13 @@ limitations under the License.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ include "celeborn.roleName" . }}
name: {{ include "celeborn.role.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.labels" . | nindent 4 }}
rules: {{- toYaml .Values.rbac.rules | nindent 2 }}
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["create", "list", "delete"]
{{- end }}

View File

@ -19,15 +19,16 @@ limitations under the License.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ include "celeborn.roleBindingName" . }}
name: {{ include "celeborn.roleBinding.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.labels" . | nindent 4 }}
subjects:
- kind: ServiceAccount
name: {{ include "celeborn.serviceAccountName" . }}
- kind: ServiceAccount
name: {{ include "celeborn.serviceAccount.name" . }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ include "celeborn.roleName" . }}
name: {{ include "celeborn.role.name" . }}
{{- end }}

View File

@ -19,7 +19,8 @@ limitations under the License.
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "celeborn.serviceAccountName" . }}
name: {{ include "celeborn.serviceAccount.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.labels" . | nindent 4 }}
{{- end }}

View File

@ -21,6 +21,7 @@ apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: {{ include "celeborn.worker.podMonitor.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.worker.labels" . | nindent 4 }}
spec:

View File

@ -20,6 +20,7 @@ apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: {{ include "celeborn.worker.priorityClass.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.worker.labels" . | nindent 4 }}
value: {{ .Values.worker.priorityClass.value }}

View File

@ -19,6 +19,7 @@ apiVersion: v1
kind: Service
metadata:
name: {{ include "celeborn.worker.service.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.worker.labels" . | nindent 4 }}
annotations:

View File

@ -19,6 +19,7 @@ apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "celeborn.worker.statefulSet.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "celeborn.worker.labels" . | nindent 4 }}
spec:
@ -137,7 +138,7 @@ spec:
volumes:
- name: celeborn-conf
configMap:
name: {{ include "celeborn.configMapName" . }}
name: {{ include "celeborn.configMap.name" . }}
defaultMode: 0444
items:
- key: celeborn-defaults.conf
@ -170,7 +171,7 @@ spec:
{{- with .Values.worker.hostNetwork }}
hostNetwork: {{ . }}
{{- end }}
serviceAccountName: {{ include "celeborn.serviceAccountName" . }}
serviceAccountName: {{ include "celeborn.serviceAccount.name" . }}
{{- with .Values.worker.podSecurityContext }}
securityContext:
{{- toYaml . | nindent 8 }}

View File

@ -22,6 +22,7 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should create configmap

View File

@ -22,6 +22,7 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should not create master pod monitor without api version `monitoring.coreos.com/v1/PodMonitor` even if `podMonitor.enable` is true
@ -44,6 +45,7 @@ tests:
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
name: celeborn-master-podmonitor
namespace: celeborn
- it: Should use the specified pod metrics endpoints
capabilities:

View File

@ -22,6 +22,7 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should not create master priority as default
@ -39,6 +40,7 @@ tests:
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
name: celeborn-master-priority-class
namespace: celeborn
- it: Should use the specified priority class value
set:

View File

@ -22,6 +22,7 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should create master service
@ -30,6 +31,7 @@ tests:
apiVersion: v1
kind: Service
name: celeborn-master-svc
namespace: celeborn
- it: Should have label selectors for master
asserts:

View File

@ -22,8 +22,17 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should create master statefulset
asserts:
- containsDocument:
apiVersion: apps/v1
kind: StatefulSet
name: celeborn-master
namespace: celeborn
- it: Should add extra pod annotations if `master.annotations` is specified
set:
master:

View File

@ -22,6 +22,7 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should not create role if `rbac.create` is false
@ -32,28 +33,18 @@ tests:
- hasDocuments:
count: 0
- it: Should create a Role resource with specific rules when rbac.create is true
set:
rbac:
create: true
rbac:
rules:
- apiGroups: [ "" ]
resources: [ "pods" ]
verbs: [ "get", "watch", "list" ]
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
asserts:
- containsDocument:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: celeborn-role
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- watch
- list
name: default
namespace: celeborn

View File

@ -22,9 +22,10 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should not create a RoleBinding resource when rbac.create is false
- it: Should not create a RoleBinding resource when `rbac.create` is false
set:
rbac:
create: false
@ -32,7 +33,7 @@ tests:
- hasDocuments:
count: 0
- it: Should create a RoleBinding resource when rbac.create is true
- it: Should create a RoleBinding resource when `rbac.create` is true
set:
rbac:
create: true
@ -40,12 +41,5 @@ tests:
- containsDocument:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: celeborn-rolebinding
subjects:
- kind: ServiceAccount
name: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: celeborn-role
name: default
namespace: celeborn

View File

@ -22,6 +22,7 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should not create service account if `serviceAccount.create` is false
@ -40,4 +41,17 @@ tests:
- containsDocument:
apiVersion: v1
kind: ServiceAccount
name: default
name: celeborn
namespace: celeborn
- it: Should create service account with the specified name if `serviceAccount.name` is specified
set:
serviceAccount:
create: true
name: test-service-account
asserts:
- containsDocument:
apiVersion: v1
kind: ServiceAccount
name: test-service-account
namespace: celeborn

View File

@ -22,6 +22,7 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should not create worker pod monitor without api version `monitoring.coreos.com/v1/PodMonitor` even if `podMonitor.enable` is true

View File

@ -22,6 +22,7 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should not create worker priority as default
@ -39,6 +40,7 @@ tests:
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
name: celeborn-worker-priority-class
namespace: celeborn
- it: Should use the specified priority class value
set:

View File

@ -22,6 +22,7 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should create worker service
@ -30,6 +31,7 @@ tests:
apiVersion: v1
kind: Service
name: celeborn-worker-svc
namespace: celeborn
- it: Should have label selectors for worker
asserts:

View File

@ -22,8 +22,17 @@ templates:
release:
name: celeborn
namespace: celeborn
tests:
- it: Should create worker statefulset
asserts:
- containsDocument:
apiVersion: apps/v1
kind: StatefulSet
name: celeborn-worker
namespace: celeborn
- it: Should add extra pod annotations if `worker.annotations` is specified
set:
worker:

View File

@ -41,28 +41,6 @@ image:
# -- Image pull secrets for private image registry
imagePullSecrets: []
service:
# -- Specifies service type
type: ClusterIP
# -- Specifies service port
port: 9097
# -- Specifies service annotations
annotations: {}
# -- Specifies whether to create additional NodePort service for each master replica
additionalNodePortServicePerReplica:
enabled: false
# -- Specifies service port
port: 9097
# -- Specifies nodeport start range
nodePortStartRange: 30000
# -- when using NodePort service type, you can specify map of annotations for each master replica
annotations: {}
cluster:
# -- Specifies Kubernetes cluster name
name: cluster
# -- Celeborn configurations.
# Ref: [Configuration - Apache Celeborn](https://celeborn.apache.org/docs/latest/configuration).
celeborn:
@ -416,6 +394,43 @@ worker:
# limits:
# storage: 100Gi
serviceAccount:
# -- Whether to create a service account for Celeborn.
create: false
# -- (Optional) Name of the Celeborn service account.
name: ""
rbac:
create: true
roleName: default
roleBindingName: default
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["create", "list", "delete"]
service:
# -- Specifies service type
type: ClusterIP
# -- Specifies service port
port: 9097
# -- Specifies service annotations
annotations: {}
# -- Specifies whether to create additional NodePort service for each master replica
additionalNodePortServicePerReplica:
enabled: false
# -- Specifies service port
port: 9097
# -- Specifies nodeport start range
nodePortStartRange: 30000
# -- when using NodePort service type, you can specify map of annotations for each master replica
annotations: {}
cluster:
# -- Specifies Kubernetes cluster name
name: cluster
podMonitor:
# -- Specifies whether to enable creating pod monitors for Celeborn pods
enable: true
@ -427,18 +442,3 @@ podMonitor:
interval: 5s
# Specifies port name
portName: metrics
serviceAccount:
# -- Specifies whether to create a service account for Celeborn
create: false
# -- Specifies the name of the service account
name: default
rbac:
create: true
roleName: default
roleBindingName: default
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["create", "list", "delete"]