# 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.disableMessageRouterZookeeper }}
apiVersion: v1
kind: Service
metadata:
  name: zookeeper
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: zookeeper
spec:
  ports:
  - name: zookeeper1
    port: 2181
  selector:
    app: zookeeper
  clusterIP: None
#{{ end }}
#{{ if not .Values.disableMessageRouterGlobalKafka }}
---
apiVersion: v1
kind: Service
metadata:
  name: global-kafka
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: global-kafka
spec:
  ports:
  - name: kafka1
    port: 9092
  selector:
    app: global-kafka
  clusterIP: None
#{{ end }}
#{{ if not .Values.disableMessageRouterDmaap }}
---
apiVersion: v1
kind: Service
metadata:
  name: dmaap
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: dmaap
    version: 1.0.0
  annotations:
    msb.onap.org/service-info: '[
      {
          "serviceName": "message-router",
          "version": "v1",
          "url": "/",
          "protocol": "REST",
          "port": "3904",
          "visualRange":"1"
      }
      ]'
spec:
  ports:
  - name: mr1
    port: 3904
    nodePort: {{ .Values.nodePortPrefix }}27
  - name: mr2
    port: 3905
    nodePort: {{ .Values.nodePortPrefix }}26
  selector:
    app: dmaap
  type: NodePort
#{{ end }}