From c984e2f169226d8cbb5deb9ba137b39a8bca62f9 Mon Sep 17 00:00:00 2001 From: Stephen Taylor Date: Tue, 22 Aug 2023 10:30:17 -0600 Subject: [PATCH] [ceph-rgw] Use Helm toolkit functions for Ceph RGW probes This change converts the readiness and liveness probes in the Ceph RGW chart to use the functions from the Helm toolkit rather than having hard-coded probe definitions. This allows probe configs to be overridden in values.yaml without rebuilding charts. Change-Id: Ia09d06746ee06f96f61a479b57a110c94e77c615 --- ceph-rgw/Chart.yaml | 2 +- ceph-rgw/templates/deployment-rgw.yaml | 37 +++++++++++++++++--------- ceph-rgw/values.yaml | 12 +++++++++ releasenotes/notes/ceph-rgw.yaml | 1 + 4 files changed, 38 insertions(+), 14 deletions(-) diff --git a/ceph-rgw/Chart.yaml b/ceph-rgw/Chart.yaml index 66adb1ae2..f9d1a473c 100644 --- a/ceph-rgw/Chart.yaml +++ b/ceph-rgw/Chart.yaml @@ -15,6 +15,6 @@ apiVersion: v1 appVersion: v1.0.0 description: OpenStack-Helm Ceph RadosGW name: ceph-rgw -version: 0.1.27 +version: 0.1.28 home: https://github.com/ceph/ceph ... diff --git a/ceph-rgw/templates/deployment-rgw.yaml b/ceph-rgw/templates/deployment-rgw.yaml index 07da5dbb7..1fde8afe5 100644 --- a/ceph-rgw/templates/deployment-rgw.yaml +++ b/ceph-rgw/templates/deployment-rgw.yaml @@ -12,6 +12,28 @@ See the License for the specific language governing permissions and limitations under the License. */}} +{{- define "readinessProbeTemplate" }} +{{- $object_store_name := "object_store" }} +{{- if .Values.conf.rgw_s3.enabled }} +{{ $object_store_name = "ceph_object_store" }} +{{- end }} +httpGet: + path: / + port: {{ tuple $object_store_name "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} + scheme: {{ tuple $object_store_name "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_scheme_lookup" | upper }} +{{- end }} + +{{- define "livenessProbeTemplate" }} +{{- $object_store_name := "object_store" }} +{{- if .Values.conf.rgw_s3.enabled }} +{{ $object_store_name = "ceph_object_store" }} +{{- end }} +httpGet: + path: / + port: {{ tuple $object_store_name "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }} + scheme: {{ tuple $object_store_name "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_scheme_lookup" | upper }} +{{- end }} + {{- if and .Values.manifests.deployment_rgw ( and .Values.deployment.ceph .Values.conf.features.rgw ) }} {{- $envAll := . }} @@ -195,19 +217,8 @@ spec: - /tmp/rgw-start.sh ports: - containerPort: {{ tuple $object_store_name "internal" "api" $envAll | include "helm-toolkit.endpoints.endpoint_port_lookup" }} - livenessProbe: - httpGet: - path: / - port: {{ tuple $object_store_name "internal" "api" $envAll | include "helm-toolkit.endpoints.endpoint_port_lookup" }} - scheme: {{ tuple $object_store_name "internal" "api" $envAll | include "helm-toolkit.endpoints.keystone_endpoint_scheme_lookup" | upper }} - initialDelaySeconds: 120 - timeoutSeconds: 5 - readinessProbe: - httpGet: - path: / - port: {{ tuple $object_store_name "internal" "api" $envAll | include "helm-toolkit.endpoints.endpoint_port_lookup" }} - scheme: {{ tuple $object_store_name "internal" "api" $envAll | include "helm-toolkit.endpoints.keystone_endpoint_scheme_lookup" | upper }} - timeoutSeconds: 5 +{{ dict "envAll" . "component" "api" "container" "ceph-rgw" "type" "liveness" "probeTemplate" (include "livenessProbeTemplate" . | fromYaml) | include "helm-toolkit.snippets.kubernetes_probe" | trim | indent 10 }} +{{ dict "envAll" . "component" "api" "container" "ceph-rgw" "type" "readiness" "probeTemplate" (include "readinessProbeTemplate" . | fromYaml) | include "helm-toolkit.snippets.kubernetes_probe" | trim | indent 10 }} volumeMounts: - name: pod-tmp mountPath: /tmp diff --git a/ceph-rgw/values.yaml b/ceph-rgw/values.yaml index d04d8fff4..1eb58c0ee 100644 --- a/ceph-rgw/values.yaml +++ b/ceph-rgw/values.yaml @@ -239,6 +239,18 @@ pod: - key: node-role.kubernetes.io/control-plane operator: Exists effect: NoSchedule + probes: + api: + ceph-rgw: + readiness: + enabled: true + params: + timeoutSeconds: 5 + liveness: + enabled: true + params: + initialDelaySeconds: 120 + timeoutSeconds: 5 network_policy: rgw: diff --git a/releasenotes/notes/ceph-rgw.yaml b/releasenotes/notes/ceph-rgw.yaml index 390f0b358..ec97b6c36 100644 --- a/releasenotes/notes/ceph-rgw.yaml +++ b/releasenotes/notes/ceph-rgw.yaml @@ -28,4 +28,5 @@ ceph-rgw: - 0.1.25 Update all Ceph images to Focal - 0.1.26 Replace node-role.kubernetes.io/master with control-plane - 0.1.27 Update Ceph to 17.2.6 + - 0.1.28 Use Helm toolkit functions for Ceph probes ...