{{- if .Values.ingress.enabled -}} {{- $fullName := include "opensearch-dashboards.fullname" . -}} {{- $ingressApiIsStable := eq (include "opensearch-dashboards.ingress.isStable" .) "true" -}} {{- $ingressSupportsIngressClassName := eq (include "opensearch-dashboards.ingress.supportsIngressClassName" .) "true" -}} {{- $svcPort := .Values.service.port -}} {{- 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 }} labels: {{- include "opensearch-dashboards.labels" . | nindent 4 }} {{- with .Values.ingress.labels }} {{- toYaml . | nindent 4 }} {{- end }} {{- with .Values.ingress.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: {{- if and $ingressSupportsIngressClassName .Values.ingress.ingressClassName }} ingressClassName: {{ .Values.ingress.ingressClassName }} {{- end -}} {{- if .Values.ingress.tls }} tls: {{- range .Values.ingress.tls }} - hosts: {{- range .hosts }} - {{ . | quote }} {{- end }} secretName: {{ .secretName }} {{- end }} {{- end }} rules: {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.Version -}} {{- range .Values.ingress.hosts }} - host: {{ .host | quote }} http: paths: {{- range .paths }} - path: {{ .path }} pathType: Prefix backend: service: name: {{ .backend.serviceName | default $fullName }} port: {{- if and .backend.servicePort (kindIs "string" .backend.servicePort) }} name: {{ .backend.servicePort }} {{- else }} number: {{ .backend.servicePort | default $svcPort }} {{- end }} {{- end }} {{- end }} {{- else -}} {{- range .Values.ingress.hosts }} - host: {{ .host | quote }} http: paths: {{- range .paths }} - path: {{ .path }} backend: serviceName: {{ .backend.serviceName | default $fullName }} servicePort: {{ .backend.servicePort | default $svcPort }} {{- end }} {{- end }} {{- end }} {{- end }}