From 551cc83c4eee7b769656e3d3ec7d7a7978fca919 Mon Sep 17 00:00:00 2001 From: Seokyun Ha Date: Mon, 19 Feb 2024 10:44:25 +0900 Subject: [PATCH 1/6] flower probe config values --- chart/templates/flower/flower-deployment.yaml | 12 ++++++------ chart/values.yaml | 13 +++++++++++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/chart/templates/flower/flower-deployment.yaml b/chart/templates/flower/flower-deployment.yaml index 00f8f4a9afcb9..1839c34066953 100644 --- a/chart/templates/flower/flower-deployment.yaml +++ b/chart/templates/flower/flower-deployment.yaml @@ -116,7 +116,7 @@ spec: - name: flower-ui containerPort: {{ .Values.ports.flowerUI }} livenessProbe: - failureThreshold: 10 + failureThreshold: {{ .Values.flower.livenessProbe.failureThreshold }} exec: command: - curl @@ -125,10 +125,10 @@ spec: - $AIRFLOW__CELERY__FLOWER_BASIC_AUTH {{- end }} - {{ printf "localhost:%s" (.Values.ports.flowerUI | toString) }} - initialDelaySeconds: 10 - periodSeconds: 5 + initialDelaySeconds: {{ .Values.flower.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.flower.livenessProbe.periodSeconds }} readinessProbe: - failureThreshold: 10 + failureThreshold: {{ .Values.flower.readinessProbe.failureThreshold }} exec: command: - curl @@ -137,8 +137,8 @@ spec: - $AIRFLOW__CELERY__FLOWER_BASIC_AUTH {{- end }} - {{ printf "localhost:%s" (.Values.ports.flowerUI | toString) }} - initialDelaySeconds: 10 - periodSeconds: 5 + initialDelaySeconds: {{ .Values.flower.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.flower.readinessProbe.periodSeconds }} envFrom: {{- include "custom_airflow_environment_from" . | default "\n []" | indent 10 }} env: diff --git a/chart/values.yaml b/chart/values.yaml index 9e8b333acb0cc..8ea95043e5bce 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -1708,6 +1708,19 @@ flower: # Enable flower. # If True, and using CeleryExecutor/CeleryKubernetesExecutor, will deploy flower app. enabled: false + + ivenessProbe: + initialDelaySeconds: 10 + timeoutSeconds: 5 + failureThreshold: 10 + periodSeconds: 5 + + readinessProbe: + initialDelaySeconds: 10 + timeoutSeconds: 5 + failureThreshold: 10 + periodSeconds: 5 + # Max number of old replicasets to retain revisionHistoryLimit: ~ From d04a355bb7b5b54555d6214a13990ef4a74d1a80 Mon Sep 17 00:00:00 2001 From: Seokyun Ha Date: Mon, 19 Feb 2024 10:53:03 +0900 Subject: [PATCH 2/6] fix typo --- chart/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chart/values.yaml b/chart/values.yaml index 8ea95043e5bce..c16f5088ce679 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -1709,7 +1709,7 @@ flower: # If True, and using CeleryExecutor/CeleryKubernetesExecutor, will deploy flower app. enabled: false - ivenessProbe: + livenessProbe: initialDelaySeconds: 10 timeoutSeconds: 5 failureThreshold: 10 From d073a4b713a9d01b5a0698bf321fd6f40499c9a6 Mon Sep 17 00:00:00 2001 From: Seokyun Ha Date: Mon, 19 Feb 2024 12:39:19 +0900 Subject: [PATCH 3/6] flower probe config to values schema --- chart/values.schema.json | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/chart/values.schema.json b/chart/values.schema.json index 7df2adf3fd1fc..fa7accbbf3d72 100644 --- a/chart/values.schema.json +++ b/chart/values.schema.json @@ -4955,6 +4955,60 @@ "type": "boolean", "default": false }, + "livenessProbe": { + "description": "Liveness probe configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "initialDelaySeconds": { + "description": "Flower Liveness probe initial delay.", + "type": "integer", + "default": 10 + }, + "timeoutSeconds": { + "description": "Flower Liveness probe timeout seconds.", + "type": "integer", + "default": 5 + }, + "failureThreshold": { + "description": "Flower Liveness probe failure threshold.", + "type": "integer", + "default": 10 + }, + "periodSeconds": { + "description": "Flower Liveness probe period seconds.", + "type": "integer", + "default": 5 + } + } + }, + "readinessProbe": { + "description": "Readiness probe configuration.", + "type": "object", + "additionalProperties": false, + "properties": { + "initialDelaySeconds": { + "description": "Flower Readiness probe initial delay.", + "type": "integer", + "default": 10 + }, + "timeoutSeconds": { + "description": "Flower Readiness probe timeout seconds.", + "type": "integer", + "default": 5 + }, + "failureThreshold": { + "description": "Flower Readiness probe failure threshold.", + "type": "integer", + "default": 10 + }, + "periodSeconds": { + "description": "Flower Readiness probe period seconds.", + "type": "integer", + "default": 5 + } + } + }, "revisionHistoryLimit": { "description": "Number of old replicasets to retain.", "type": [ From 4394c72e7a5372fb65fa455cd9b4cc5366d3900a Mon Sep 17 00:00:00 2001 From: Seokyun Ha Date: Mon, 19 Feb 2024 16:04:50 +0900 Subject: [PATCH 4/6] flower probe timeout seconds --- chart/templates/flower/flower-deployment.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chart/templates/flower/flower-deployment.yaml b/chart/templates/flower/flower-deployment.yaml index 1839c34066953..83737c6d0cdca 100644 --- a/chart/templates/flower/flower-deployment.yaml +++ b/chart/templates/flower/flower-deployment.yaml @@ -127,6 +127,7 @@ spec: - {{ printf "localhost:%s" (.Values.ports.flowerUI | toString) }} initialDelaySeconds: {{ .Values.flower.livenessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.flower.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.flower.livenessProbe.timeoutSeconds }} readinessProbe: failureThreshold: {{ .Values.flower.readinessProbe.failureThreshold }} exec: @@ -139,6 +140,7 @@ spec: - {{ printf "localhost:%s" (.Values.ports.flowerUI | toString) }} initialDelaySeconds: {{ .Values.flower.readinessProbe.initialDelaySeconds }} periodSeconds: {{ .Values.flower.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.flower.readinessProbe.timeoutSeconds }} envFrom: {{- include "custom_airflow_environment_from" . | default "\n []" | indent 10 }} env: From 8b48abe5b55c2e8918a7bb1d4bbc1f0391daba88 Mon Sep 17 00:00:00 2001 From: Seokyun Ha Date: Mon, 19 Feb 2024 22:15:14 +0900 Subject: [PATCH 5/6] probe values configurable test --- helm_tests/other/test_flower.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/helm_tests/other/test_flower.py b/helm_tests/other/test_flower.py index 48512776a98e0..391b074ef5ad3 100644 --- a/helm_tests/other/test_flower.py +++ b/helm_tests/other/test_flower.py @@ -363,6 +363,34 @@ def test_should_add_component_specific_annotations(self): assert "annotations" in jmespath.search("metadata", docs[0]) assert jmespath.search("metadata.annotations", docs[0])["test_annotation"] == "test_annotation_value" + @pytest.mark.parametrize("probe", ["livenessProbe", "readinessProbe"]) + def test_probe_values_are_configurable(self, probe): + docs = render_chart( + values={ + "flower": { + "enabled": True, + probe: { + "initialDelaySeconds": 111, + "timeoutSeconds": 222, + "failureThreshold": 333, + "periodSeconds": 444, + }, + }, + }, + show_only=["templates/flower/flower-deployment.yaml"], + ) + + assert 111 == jmespath.search( + f"spec.template.spec.containers[0].{probe}.initialDelaySeconds", docs[0] + ) + assert 222 == jmespath.search( + f"spec.template.spec.containers[0].{probe}.timeoutSeconds", docs[0] + ) + assert 333 == jmespath.search( + f"spec.template.spec.containers[0].{probe}.failureThreshold", docs[0] + ) + assert 444 == jmespath.search(f"spec.template.spec.containers[0].{probe}.periodSeconds", docs[0]) + class TestFlowerService: """Tests flower service.""" From e8ab301bb41fc95e02d29e6d3773fb9e04b065c5 Mon Sep 17 00:00:00 2001 From: Seokyun Ha Date: Mon, 19 Feb 2024 22:30:39 +0900 Subject: [PATCH 6/6] static checks lint --- helm_tests/other/test_flower.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/helm_tests/other/test_flower.py b/helm_tests/other/test_flower.py index 391b074ef5ad3..93a40ac38a518 100644 --- a/helm_tests/other/test_flower.py +++ b/helm_tests/other/test_flower.py @@ -383,12 +383,8 @@ def test_probe_values_are_configurable(self, probe): assert 111 == jmespath.search( f"spec.template.spec.containers[0].{probe}.initialDelaySeconds", docs[0] ) - assert 222 == jmespath.search( - f"spec.template.spec.containers[0].{probe}.timeoutSeconds", docs[0] - ) - assert 333 == jmespath.search( - f"spec.template.spec.containers[0].{probe}.failureThreshold", docs[0] - ) + assert 222 == jmespath.search(f"spec.template.spec.containers[0].{probe}.timeoutSeconds", docs[0]) + assert 333 == jmespath.search(f"spec.template.spec.containers[0].{probe}.failureThreshold", docs[0]) assert 444 == jmespath.search(f"spec.template.spec.containers[0].{probe}.periodSeconds", docs[0])