From bad619b441dcd669cdbc88431ccdd10999e8504b Mon Sep 17 00:00:00 2001
From: David Burke <david@burkesoftware.com>
Date: Sat, 14 Jan 2023 16:24:15 -0500
Subject: [PATCH] Add flower ingress and port

---
 templates/flower/deployment.yaml |  5 ++-
 templates/flower/ingress.yaml    | 66 ++++++++++++++++++++++++++++++++
 2 files changed, 70 insertions(+), 1 deletion(-)
 create mode 100644 templates/flower/ingress.yaml

diff --git a/templates/flower/deployment.yaml b/templates/flower/deployment.yaml
index 3e13e1b..05f1229 100644
--- a/templates/flower/deployment.yaml
+++ b/templates/flower/deployment.yaml
@@ -37,7 +37,10 @@ spec:
             {{- toYaml .Values.securityContext | nindent 12 }}
           image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
-          containerPort: 5555
+          ports:
+          - containerPort: 5555
+            name: http
+            protocol: TCP
           resources:
             {{- toYaml .Values.flower.resources | nindent 12 }}
           env:
diff --git a/templates/flower/ingress.yaml b/templates/flower/ingress.yaml
new file mode 100644
index 0000000..3e9d97f
--- /dev/null
+++ b/templates/flower/ingress.yaml
@@ -0,0 +1,66 @@
+{{- if .Values.flower.ingress.enabled -}}
+{{- $fullName := include "django.fullname" . -}}
+{{- $svcPort := .Values.flower.service.port -}}
+{{- if and .Values.flower.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
+  {{- if not (hasKey .Values.flower.ingress.annotations "kubernetes.io/ingress.class") }}
+  {{- $_ := set .Values.flower.ingress.annotations "kubernetes.io/ingress.class" .Values.flower.ingress.className}}
+  {{- end }}
+{{- end }}
+{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1
+{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1beta1
+{{- else -}}
+apiVersion: extensions/v1beta1
+{{- end }}
+kind: Ingress
+metadata:
+  name: {{ $fullName }}-flower
+  labels:
+    {{- include "django.labels" . | nindent 4 }}
+  {{- with .Values.flower.ingress.annotations }}
+  annotations:
+    {{- toYaml . | nindent 4 }}
+  {{- end }}
+spec:
+  {{- if and .Values.flower.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
+  ingressClassName: {{ .Values.flower.ingress.className }}
+  {{- end }}
+  {{- if .Values.flower.ingress.tls }}
+  tls:
+    {{- range .Values.flower.ingress.tls }}
+    - hosts:
+        {{- range .hosts }}
+        - {{ . | quote }}
+        {{- end }}
+      secretName: {{ .secretName }}
+    {{- end }}
+  {{- end }}
+  rules:
+    {{- range .Values.flower.ingress.hosts }}
+    - host: {{ .host | quote }}
+      http:
+        paths:
+          {{- range .paths }}
+          - path: {{ .path }}
+            {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
+            pathType: {{ .pathType }}
+            {{- end }}
+            {{- if .backend }}
+            backend:
+              {{- toYaml .backend | nindent 14 }}
+            {{- else }}
+            backend:
+              {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
+              service:
+                name: {{ $fullName }}-flower
+                port:
+                  number: {{ $svcPort }}
+              {{- else }}
+              serviceName: {{ $fullName }}
+              servicePort: {{ $svcPort }}
+              {{- end }}
+            {{- end }}
+          {{- end }}
+    {{- end }}
+{{- end }}