main
{{- if .Values.ingress.enabled }}
{{- $fullName := include "gitdata.fullname" . }}
{{- $controller := default "nginx" .Values.ingress.controller }}
{{- $tlsSecret := default (printf "%s-tls" $fullName) .Values.ingress.tls.secretName }}
{{- $annotations := deepCopy .Values.ingress.annotations }}
{{- if eq $controller "nginx" }}
{{- /* ingress-nginx:正则路由 + 大包/长连接超时(用户 annotations 优先于这里的默认值) */}}
{{- $nginxDefaults := dict
"nginx.ingress.kubernetes.io/use-regex" "true"
"nginx.ingress.kubernetes.io/proxy-body-size" .Values.ingress.proxyBodySize
"nginx.ingress.kubernetes.io/proxy-read-timeout" (printf "%v" .Values.ingress.proxyReadTimeout)
"nginx.ingress.kubernetes.io/proxy-send-timeout" (printf "%v" .Values.ingress.proxySendTimeout)
"nginx.ingress.kubernetes.io/proxy-connect-timeout" (printf "%v" .Values.ingress.proxyConnectTimeout)
}}
{{- $annotations = mergeOverwrite (mustFromJson (toJson $nginxDefaults)) $annotations }}
{{- end }}
{{- if and .Values.ingress.tls.enabled .Values.ingress.tls.clusterIssuer }}
{{- $_ := set $annotations "cert-manager.io/cluster-issuer" .Values.ingress.tls.clusterIssuer }}
{{- end }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- include "gitdata.labels" . | nindent 4 }}
{{- if $annotations }}
annotations:
{{- toYaml $annotations | nindent 4 }}
{{- end }}
spec:
{{- with .Values.ingress.className }}
ingressClassName: {{ . }}
{{- end }}
{{- if .Values.ingress.tls.enabled }}
tls:
- hosts:
- {{ .Values.ingress.host | quote }}
secretName: {{ $tlsSecret }}
{{- end }}
rules:
- host: {{ .Values.ingress.host | quote }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ printf "%s-apihost" $fullName }}
port:
name: http
{{- end }}