Merge pull request #21 from gimlet-io/multiple-ingresses

Supporting multiple ingresses
This commit is contained in:
Laszlo Fogas
2021-05-12 13:13:37 +02:00
committed by GitHub
3 changed files with 64 additions and 34 deletions
+25 -17
View File
@@ -1,34 +1,42 @@
{{- $labels := include "helm-chart.labels" . -}}
{{- with .Values.ingress -}}
{{- $robustName := include "robustName" $.Release.Name -}}
{{- if semverCompare ">=1.14-0" $.Capabilities.KubeVersion.GitVersion -}}
{{/* OneChart ingress snippet */}}
{{- define "onechart.ingress" }}
{{- $robustName := include "robustName" .root.Release.Name -}}
---
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
{{- if .longName }}
name: {{ $robustName }}-{{ template "robustName" .ingress.host }}
{{- else }}
name: {{ $robustName }}
namespace: {{ $.Release.Namespace }}
{{- end }}
namespace: {{ .root.Release.Namespace }}
labels:
{{- $labels | nindent 4 }}
{{- with .annotations }}
{{- include "helm-chart.labels" .root | nindent 4 }}
{{- with .ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if default false .tlsEnabled }}
{{- if default false .ingress.tlsEnabled }}
tls:
- hosts:
- {{ template "robustName" .host | quote }}
- {{ template "robustName" .ingress.host | quote }}
secretName: {{ printf "tls-%s" $robustName }}
{{- end }}
rules:
- host: {{ template "robustName" .host | quote }}
- host: {{ template "robustName" .ingress.host | quote }}
http:
paths:
- backend:
serviceName: {{ template "robustName" $.Release.Name }}
servicePort: {{ $.Values.containerPort }}
- backend:
serviceName: {{ $robustName }}
servicePort: {{ .root.Values.containerPort }}
{{- end }}
{{- with .Values.ingress }}
{{- template "onechart.ingress" (dict "root" $ "ingress" .) }}
{{- end }}
{{- range .Values.ingresses }}
{{template "onechart.ingress" (dict "root" $ "ingress" . "longName" true) }}
{{- end }}
@@ -55,3 +55,31 @@ tests:
path: metadata.annotations
value:
kubernetes.io/ingress.class: nginx
- it: Should generate multiple ingresses
set:
ingresses:
- host: chart-example.local
annotations:
kubernetes.io/ingress.class: nginx
- host: another.local
annotations:
kubernetes.io/ingress.class: nginx
asserts:
- hasDocuments:
count: 2
- it: Should generate multiple ingresses
set:
ingress:
host: chart-example.local
annotations:
kubernetes.io/ingress.class: nginx
ingresses:
- host: chart-example.local
annotations:
kubernetes.io/ingress.class: nginx
- host: another.local
annotations:
kubernetes.io/ingress.class: nginx
asserts:
- hasDocuments:
count: 3