{{/*
# Copyright © 2020 Bitnami, Orange
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
*/}}

{{- if not .Values.global.mariadbGalera.useOperator }}
{{-   if default false .Values.global.metrics.enabled }}
---
apiVersion: v1
kind: Service
metadata:
  name: {{ printf "%s-metrics" (include "common.fullname" .) }}
  namespace: {{ include "common.namespace" . }}
  labels: {{- include "common.labels" . | nindent 4 }}
  {{- if .Values.metrics.service.annotations }}
  annotations: {{- include "common.tplValue" (dict "value" .Values.metrics.service.annotations "context" .) | nindent 4 }}
  {{- end }}
spec:
  type: {{ .Values.metrics.service.type }}
  ports:
    - name: tcp-metrics
      port: {{ .Values.metrics.service.port }}
      targetPort: tcp-metrics
  selector: {{- include "common.matchLabels" . | nindent 4 }}
{{-   end }}
{{- end }}
