# Copyright © 2017 Amdocs, Bell Canada
#
# 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.disableMsbMsbConsul }}
apiVersion: v1
kind: Service
metadata:
  name: msb-consul
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: msb-consul
spec:
  ports:
    - port: {{ .Values.consulPort }}
      nodePort: {{ .Values.consulNodePort }}
  selector:
    app: msb-consul
  type: NodePort
#{{ end }}
#{{ if not .Values.disableMsbMsbDiscovery }}
---
apiVersion: v1
kind: Service
metadata:
  name: msb-discovery
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: msb-discovery
spec:
  clusterIP: "{{ .Values.discoveryClusterIP }}"
  ports:
    - port: {{ .Values.discoveryPort }}
      nodePort: {{ .Values.discoveryNodePort }}
  selector:
    app: msb-discovery
  type: NodePort
#{{ end }}
#{{ if not .Values.disableMsbMsbIag }}
---
apiVersion: v1
kind: Service
metadata:
  name: msb-iag
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: msb-iag
spec:
  ports:
    - name: http
      port: {{ .Values.iagPort }}
      nodePort: {{ .Values.iagNodePort }}
    - name: https
      port: {{ .Values.iagPort_https }}
      nodePort: {{ .Values.iagNodePort_https }}
  selector:
    app: msb-iag
  type: NodePort
#{{ end }}
#{{ if not .Values.disableMsbMsbEag }}
---
apiVersion: v1
kind: Service
metadata:
  name: msb-eag
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: msb-eag
spec:
  ports:
    - name: http
      port: {{ .Values.eagPort }}
      nodePort: {{ .Values.eagNodePort }}
    - name: https
      port: {{ .Values.eagPort_https }}
      nodePort: {{ .Values.eagNodePort_https }}
  selector:
    app: msb-eag
  type: NodePort
#{{ end }}
