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 75f7d89..dd6460b 100644 --- a/charts/ozone/templates/om/om-statefulset.yaml +++ b/charts/ozone/templates/om/om-statefulset.yaml @@ -33,6 +33,7 @@ metadata: app.kubernetes.io/component: om spec: replicas: {{ .Values.om.replicas }} + podManagementPolicy: Parallel serviceName: {{ .Release.Name }}-om-headless selector: matchLabels: @@ -98,6 +99,19 @@ spec: containerPort: {{ .Values.om.service.port }} - name: ratis containerPort: {{ .Values.om.service.ratisPort }} + {{- if gt (int .Values.om.replicas) 1 }} + readinessProbe: + exec: + command: + - sh + - -c + - | + ozone admin om roles -id {{ .Values.clusterId }} 2>/dev/null | grep $(hostname) | grep -qE 'LEADER|FOLLOWER' && exit 0 || exit 1 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 20 + failureThreshold: 3 + {{- end }} livenessProbe: httpGet: path: / diff --git a/charts/ozone/templates/scm/scm-statefulset.yaml b/charts/ozone/templates/scm/scm-statefulset.yaml index 6c1d144..62f5c9e 100644 --- a/charts/ozone/templates/scm/scm-statefulset.yaml +++ b/charts/ozone/templates/scm/scm-statefulset.yaml @@ -117,6 +117,19 @@ spec: - name: grpc containerPort: {{ .Values.scm.service.grpcPort }} {{- end }} + {{- if gt (int .Values.scm.replicas) 1 }} + readinessProbe: + exec: + command: + - sh + - -c + - | + ozone admin scm roles 2>/dev/null | grep $(hostname -f) | grep -qE 'LEADER|FOLLOWER' && exit 0 || exit 1 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 20 + failureThreshold: 3 + {{- end }} livenessProbe: httpGet: path: /