{{- if .Values.ingress.enabled }}
{{- $servicePort := .Values.service.externalPort -}}
{{- $serviceName := include "stirlingpdf.fullname" . -}}
{{- $ingressExtraPaths := .Values.ingress.extraPaths -}}
---
{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion }}
apiVersion: extensions/v1beta1
{{- else if semverCompare "<1.19-0" .Capabilities.KubeVersion.GitVersion }}
apiVersion: networking.k8s.io/v1beta1
{{- else }}
apiVersion: networking.k8s.io/v1
{{- end }}
kind: Ingress
metadata:
  name: {{ include "stirlingpdf.fullname" . }}
  {{- with .Values.ingress.annotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
  labels:
    {{- include "stirlingpdf.labels" . | nindent 4 }}
    {{- with .Values.ingress.labels }}
    {{- toYaml . | nindent 4 }}
    {{- end }}
spec:
  {{- with .Values.ingress.ingressClassName }}
  ingressClassName: {{ . }}
  {{- end }}
  rules:
  {{- range .Values.ingress.hosts }}
  - host: {{ .name }}
    http:
      paths:
      {{- range $ingressExtraPaths }}
      - path: {{ default "/" .path | quote }}
        backend:
        {{- if semverCompare "<1.19-0" $.Capabilities.KubeVersion.GitVersion }}
          {{- if $.Values.service.servicename }}
          serviceName: {{ $.Values.service.servicename }}
          {{- else }}
          serviceName: {{ default $serviceName .service }}
          {{- end }}
          servicePort: {{ default $servicePort .port }}
        {{- else }}
          service:
            {{- if $.Values.service.servicename }}
            name: {{ $.Values.service.servicename }}
            {{- else }}
            name: {{ default $serviceName .service }}
            {{- end }}
            port:
              number: {{ default $servicePort .port }}
        pathType: {{ default $.Values.ingress.pathType .pathType }}
        {{- end }}
      {{- end }}
      - path: {{ default "/" .path | quote }}
        backend:
        {{- if semverCompare "<1.19-0" $.Capabilities.KubeVersion.GitVersion }}
          {{- if $.Values.service.servicename }}
          serviceName: {{ $.Values.service.servicename }}
          {{- else }}
          serviceName: {{ default $serviceName .service }}
          {{- end }}
          servicePort: {{ default $servicePort .servicePort }}
        {{- else }}
          service:
            {{- if $.Values.service.servicename }}
            name: {{ $.Values.service.servicename }}
            {{- else }}
            name: {{ default $serviceName .service }}
            {{- end }}
            port:
              number: {{ default $servicePort .port }}
        pathType: {{ $.Values.ingress.pathType }}
        {{- end }}
  {{- end }}
  tls:
  {{- range .Values.ingress.hosts }}
  {{- if .tls }}
  - hosts:
    - {{ .name }}
    secretName: {{ .tlsSecret }}
  {{- end }}
  {{- end }}
{{- end -}}
