# 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.disableDcaeZookeeper }}
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.disableDcaeKafka }}
---
apiVersion: v1
kind: Service
metadata:
  name: kafka
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: kafka
spec:
  ports:
  - name: kafka1
    port: 9092
  selector:
    app: kafka
  clusterIP: None
#{{ end }}
#{{ if not .Values.disableDcaeDmaap }}
---
apiVersion: v1
kind: Service
metadata:
  name: dmaap
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: dmaap
    version: 1.1.0
spec:
  ports:
  - name: mr1
    port: 3904
    #nodePort: {{ .Values.nodePortPrefix }}27
  - name: mr2
    port: 3905
    #nodePort: {{ .Values.nodePortPrefix }}26
  selector:
    app: dmaap
  #type: NodePort
  clusterIP: None
#{{ end }}
#{{ if not .Values.disableDcaeDcaePgaas }}
---
apiVersion: v1
kind: Service
metadata:
  name: zldciad4vipstg00
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: dcae-pgaas
spec:
  selector:
    app: dcae-pgaas
  ports:
    - port: 5432
      protocol: TCP
      targetPort: 5432
      nodePort: {{ .Values.nodePortPrefix }}45
  type: NodePort
#{{ end }}
#{{ if not .Values.disableDcaeDcaeCollectorCommonEvent }}
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: dcae-collector-common-event
    version: latest
  name: dcae-collector-common-event
  namespace: "{{ .Values.nsPrefix }}"
spec:
  ports:
  - name: dcae-ce1
    port: 8080
    protocol: TCP
    nodePort: {{ .Values.nodePortPrefix }}36
  - name: dcae-ce2
    port: 8443
    protocol: TCP
    nodePort: {{ .Values.nodePortPrefix }}37
  - name: dcae-ce3
    port: 9999
    protocol: TCP
    nodePort: {{ .Values.nodePortPrefix }}38
  selector:
    app: dcae-collector-common-event
  type: NodePort
#{{ end }}
#{{ if not .Values.disableDcaeDcaeCollectorDmaapbc }}
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: dcae-collector-dmaapbc
    version: latest
  name: dcae-collector-dmaapbc
  namespace: "{{ .Values.nsPrefix }}"
spec:
  ports:
  - name: dcae-bc1
    port: 8080
    protocol: TCP
    targetPort: 8080
    nodePort: {{ .Values.nodePortPrefix }}39
  - name: dcae-bc2
    port: 8443
    protocol: TCP
    targetPort: 8443
    nodePort: {{ .Values.nodePortPrefix }}40
  selector:
    app: dcae-collector-dmaapbc
  type: NodePort
#{{ end }}