{{- if .Values.metrics.prometheus }}
{{- if .Values.metrics.prometheus.service }}
{{- if (.Values.metrics.prometheus.service).enabled -}}

{{- $fullname := include "traefik.fullname" . }}
{{- if ge (len $fullname) 50 }}
  {{- fail "ERROR: Cannot create a metrics service when name contains more than 50 characters" }}
{{- end }}
apiVersion: v1
kind: Service
metadata:
  name: {{ template "traefik.service-name" (dict "root" . "name" "metrics") }}
  namespace: {{ template "traefik.namespace" . }}
  {{- template "traefik.metrics-service-metadata" . }}
  annotations:
  {{- with .Values.metrics.prometheus.service.annotations }}
    {{- toYaml . | nindent 4 }}
  {{- end }}
spec:
  type: ClusterIP
  selector:
    {{- include "traefik.labelselector" . | nindent 4 }}
  ports:
  - port: {{ .Values.ports.metrics.port }}
    name: "metrics"
    targetPort: metrics
    protocol: TCP
    {{- if .Values.ports.metrics.nodePort }}
    nodePort: {{ .Values.ports.metrics.nodePort }}
    {{- end }}
{{- end }}
{{- end }}
{{- end }}