This is an automated email from the ASF dual-hosted git repository.
Tejaskriya pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ozone-helm-charts.git
The following commit(s) were added to refs/heads/main by this push:
new 86ec67e HDDS-14351. Add preStop and graceful termination for OM and
SCM (#48)
86ec67e is described below
commit 86ec67edb2e4b268b0b384f460591337a696fc05
Author: Mark Tsai <[email protected]>
AuthorDate: Mon Aug 3 18:21:28 2026 +0800
HDDS-14351. Add preStop and graceful termination for OM and SCM (#48)
---
charts/ozone/templates/om/om-service-headless.yaml | 1 +
charts/ozone/templates/om/om-statefulset.yaml | 18 ++++++++++++++++++
charts/ozone/templates/scm/scm-service-headless.yaml | 1 +
charts/ozone/templates/scm/scm-statefulset.yaml | 18 ++++++++++++++++++
4 files changed, 38 insertions(+)
diff --git a/charts/ozone/templates/om/om-service-headless.yaml
b/charts/ozone/templates/om/om-service-headless.yaml
index 8aaccaa..929d2c5 100644
--- a/charts/ozone/templates/om/om-service-headless.yaml
+++ b/charts/ozone/templates/om/om-service-headless.yaml
@@ -25,6 +25,7 @@ metadata:
app.kubernetes.io/component: om
spec:
clusterIP: None
+ publishNotReadyAddresses: true
ports:
- name: ui
port: {{ .Values.om.service.port }}
diff --git a/charts/ozone/templates/om/om-statefulset.yaml
b/charts/ozone/templates/om/om-statefulset.yaml
index 829e3b5..3964f77 100644
--- a/charts/ozone/templates/om/om-statefulset.yaml
+++ b/charts/ozone/templates/om/om-statefulset.yaml
@@ -49,6 +49,9 @@ spec:
{{- include "ozone.selectorLabels" . | nindent 8 }}
app.kubernetes.io/component: om
spec:
+ {{- if gt (int .Values.om.replicas) 1 }}
+ terminationGracePeriodSeconds: 150
+ {{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets: {{- toYaml . | nindent 8 }}
{{- end }}
@@ -101,6 +104,21 @@ spec:
containerPort: {{ .Values.om.service.port }}
- name: ratis
containerPort: {{ .Values.om.service.ratisPort }}
+ {{- if gt (int .Values.om.replicas) 1 }}
+ lifecycle:
+ preStop:
+ exec:
+ command:
+ - sh
+ - -c
+ - |
+ LEADER=$(ozone admin om roles -id {{ .Values.clusterId }}
2>/dev/null | grep LEADER | awk '{print $1}')
+ if [ "$LEADER" = "$(hostname)" ]; then
+ echo "This OM is leader, transferring leadership..."
+ ozone admin om transfer -id {{ .Values.clusterId }} -r
|| true
+ sleep 10
+ fi
+ {{- end }}
livenessProbe:
httpGet:
path: /
diff --git a/charts/ozone/templates/scm/scm-service-headless.yaml
b/charts/ozone/templates/scm/scm-service-headless.yaml
index d71c004..d086a38 100644
--- a/charts/ozone/templates/scm/scm-service-headless.yaml
+++ b/charts/ozone/templates/scm/scm-service-headless.yaml
@@ -25,6 +25,7 @@ metadata:
app.kubernetes.io/component: scm
spec:
clusterIP: None
+ publishNotReadyAddresses: true
ports:
- name: ui
port: {{ .Values.scm.service.port }}
diff --git a/charts/ozone/templates/scm/scm-statefulset.yaml
b/charts/ozone/templates/scm/scm-statefulset.yaml
index dca03e0..a0f4c11 100644
--- a/charts/ozone/templates/scm/scm-statefulset.yaml
+++ b/charts/ozone/templates/scm/scm-statefulset.yaml
@@ -49,6 +49,9 @@ spec:
{{- include "ozone.selectorLabels" . | nindent 8 }}
app.kubernetes.io/component: scm
spec:
+ {{- if gt (int .Values.scm.replicas) 1 }}
+ terminationGracePeriodSeconds: 150
+ {{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets: {{- toYaml . | nindent 8 }}
{{- end }}
@@ -120,6 +123,21 @@ spec:
- name: grpc
containerPort: {{ .Values.scm.service.grpcPort }}
{{- end }}
+ {{- if gt (int .Values.scm.replicas) 1 }}
+ lifecycle:
+ preStop:
+ exec:
+ command:
+ - sh
+ - -c
+ - |
+ LEADER_HOST=$(ozone admin scm roles 2>/dev/null | grep
LEADER | cut -d: -f1)
+ if [ "$LEADER_HOST" = "$(hostname -f)" ]; then
+ echo "This SCM is leader, transferring leadership..."
+ ozone admin scm transfer -id {{ .Values.clusterId }} -r
|| true
+ sleep 10
+ fi
+ {{- end }}
livenessProbe:
httpGet:
path: /
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]