{{- if and .Values.prometheus.enabled .Values.prometheus.servicePerReplica.enabled .Values.prometheus.ingressPerReplica.enabled }}
{{- $pathType := .Values.prometheus.ingressPerReplica.pathType | default "" }}
{{- $count := .Values.prometheus.prometheusSpec.replicas | int -}}
{{- $servicePort := .Values.prometheus.servicePerReplica.port -}}
{{- $ingressValues := .Values.prometheus.ingressPerReplica -}}
{{- $apiIsStable := eq (include "kube-prometheus-stack.ingress.isStable" .) "true" -}}
{{- $ingressSupportsPathType := eq (include "kube-prometheus-stack.ingress.supportsPathType" .) "true" -}}
apiVersion: v1
kind: List
metadata:
  name: {{ include "kube-prometheus-stack.fullname" $ }}-prometheus-ingressperreplica
  namespace: {{ template "kube-prometheus-stack.namespace" $ }}
items:
{{ range $i, $e := until $count }}
  - kind: Ingress
    apiVersion: {{ include "kube-prometheus-stack.ingress.apiVersion" $ }}
    metadata:
      name: {{ include "kube-prometheus-stack.fullname" $ }}-prometheus-{{ $i }}
      namespace: {{ template "kube-prometheus-stack.namespace" $ }}
      labels:
        app: {{ include "kube-prometheus-stack.name" $ }}-prometheus
      {{ include "kube-prometheus-stack.labels" $ | indent 8 }}
      {{- if $ingressValues.labels }}
{{ toYaml $ingressValues.labels | indent 8 }}
      {{- end }}
      {{- if $ingressValues.annotations }}
      annotations:
{{ toYaml $ingressValues.annotations | indent 8 }}
      {{- end }}
    spec:
      {{- if $apiIsStable }}
      {{- if $ingressValues.ingressClassName }}
      ingressClassName: {{ $ingressValues.ingressClassName }}
      {{- end }}
      {{- end }}
      rules:
        - host: {{ $ingressValues.hostPrefix }}-{{ $i }}.{{ $ingressValues.hostDomain }}
          http:
            paths:
      {{- range $p := $ingressValues.paths }}
              - path: {{ tpl $p $ }}
                {{- if and $pathType $ingressSupportsPathType }}
                pathType: {{ $pathType }}
                {{- end }}
                backend:
                  {{- if $apiIsStable }}
                  service:
                    name: {{ include "kube-prometheus-stack.fullname" $ }}-prometheus-{{ $i }}
                    port:
                      number: {{ $servicePort }}
                  {{- else }}
                  serviceName: {{ include "kube-prometheus-stack.fullname" $ }}-prometheus-{{ $i }}
                  servicePort: {{ $servicePort }}
      {{- end }}
      {{- end -}}
      {{- if or $ingressValues.tlsSecretName $ingressValues.tlsSecretPerReplica.enabled }}
      tls:
        - hosts:
            - {{ $ingressValues.hostPrefix }}-{{ $i }}.{{ $ingressValues.hostDomain }}
          {{- if $ingressValues.tlsSecretPerReplica.enabled }}
          secretName: {{ $ingressValues.tlsSecretPerReplica.prefix }}-{{ $i }}
          {{- else }}
          secretName: {{ $ingressValues.tlsSecretName }}
          {{- end }}
      {{- end }}
{{- end -}}
{{- end -}}
