{{/*
# Copyright © 2018 Amdocs, Bell Canada
# Copyright © 2020 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.
*/}}

{{ include "common.service" . }}
---
{{ include "common.headlessService" . }}
{{- if (include "common.onServiceMesh" .) }}
{{- if eq (default "istio" .Values.global.serviceMesh.engine) "istio" }}
---
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: {{ include "common.servicename" . }}
  namespace: {{ include "common.namespace" . }}
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: {{ include "common.servicename" . }}
  portLevelMtls:
    {{ .Values.service.internalPort }}:
      mode: DISABLE
{{- end}}
{{- end}}
