Skip to content

Commit

Permalink
Fix flower ingress annotations in chart (#13615)
Browse files Browse the repository at this point in the history
apache/airflow#12010 introduced
a small bug in the way annotations are handled for the
flower ingress.

A test have been added to prevent this from occuring againg.

Also more conditionnals have been added to the
flower-ingress.yaml file to make it compatible with schema
validation.

GitOrigin-RevId: eb842f288f40ae22e39f85d81bbf90dae677e448
  • Loading branch information
Florent Chehab authored and Cloud Composer Team committed Sep 12, 2024
1 parent 9ccc923 commit 7e64103
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 5 deletions.
13 changes: 8 additions & 5 deletions chart/templates/flower/flower-ingress.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,8 @@ metadata:
release: {{ .Release.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
heritage: {{ .Release.Service }}
{{- with .Values.ingress.flower.annotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- if .Values.ingress.flower.annotations }}
annotations: {{ toYaml .Values.ingress.flower.annotations | nindent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.flower.tls.enabled }}
Expand All @@ -43,9 +42,13 @@ spec:
rules:
- http:
paths:
- path: {{ .Values.ingress.flower.path }}
backend:
- backend:
serviceName: {{ .Release.Name }}-flower
servicePort: flower-ui
{{- if .Values.ingress.flower.path }}
path: {{ .Values.ingress.flower.path }}
{{- end }}
{{- if .Values.ingress.flower.host }}
host: {{ .Values.ingress.flower.host }}
{{- end }}
{{- end }}
40 changes: 40 additions & 0 deletions chart/tests/test_ingress_flower.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

import unittest

import jmespath

from tests.helm_template_generator import render_chart


class IngressFlowerTest(unittest.TestCase):
def test_should_pass_validation_with_just_ingress_enabled(self):
render_chart(
values={"ingress": {"enabled": True}, "executor": "CeleryExecutor"},
show_only=["templates/flower/flower-ingress.yaml"],
) # checks that no validation exception is raised

def test_should_allow_more_than_one_annotation(self):
docs = render_chart(
values={
"ingress": {"enabled": True, "flower": {"annotations": {"aa": "bb", "cc": "dd"}}},
"executor": "CeleryExecutor",
},
show_only=["templates/flower/flower-ingress.yaml"],
)
assert jmespath.search("metadata.annotations", docs[0]) == {"aa": "bb", "cc": "dd"}

0 comments on commit 7e64103

Please sign in to comment.