# 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.disableSdcSdcEs }}
apiVersion: v1
kind: Service
metadata:
  labels:
    app: sdc-es
  name: sdc-es
  namespace: "{{ .Values.nsPrefix }}"
spec:
  ports:
  - name: sdc-es-port-9200
    port: 9200
  - name: sdc-es-port-9300
    port: 9300
  selector:
    app: sdc-es
  clusterIP: None
#{{ end }}
#{{ if not .Values.disableSdcSdcCs }}
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: sdc-cs
  name: sdc-cs
  namespace: "{{ .Values.nsPrefix }}"
spec:
  ports:
  - name: sdc-cs-port-9042
    port: 9042
  - name: sdc-cs-port-9160
    port: 9160
  selector:
    app: sdc-cs
  clusterIP: None
#{{ end }}
#{{ if not .Values.disableSdcSdcKb }}
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: sdc-kb
  name: sdc-kb
  namespace: "{{ .Values.nsPrefix }}"
spec:
  ports:
  - name: sdc-kb-port-5601
    port: 5601
  selector:
    app: sdc-kb
  clusterIP: None
#{{ end }}
#{{ if not .Values.disableSdcSdcBe }}
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: sdc-be
  name: sdc-be
  namespace: "{{ .Values.nsPrefix }}"
  annotations:
    msb.onap.org/service-info: '[
      {
          "serviceName": "sdc",
          "version": "v1",
          "url": "/sdc/v1",
          "protocol": "REST",
          "port": "8080",
          "visualRange":"1"
      },
      {
          "serviceName": "sdc-deprecated",
          "version": "v1",
          "url": "/sdc/v1",
          "protocol": "REST",
          "port": "8080",
          "visualRange":"1",
          "path":"/sdc/v1"
      }
      ]'
spec:
  ports:
  - name: sdc-be-port-8443
    nodePort: {{ .Values.nodePortPrefix }}04
    port: 8443
  - name: sdc-be-port-8080
    nodePort: {{ .Values.nodePortPrefix }}05
    port: 8080
  selector:
    app: sdc-be
  type: NodePort
#{{ end }}
#{{ if not .Values.disableSdcSdcFe }}
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: sdc-fe
  name: sdc-fe
  namespace: "{{ .Values.nsPrefix }}"
  annotations:
    msb.onap.org/service-info: '[
      {
          "serviceName": "sdc-gui",
          "version": "v1",
          "url": "/sdc1",
          "protocol": "UI",
          "port": "8181",
          "visualRange":"0|1"
      }
      ]'
spec:
  ports:
  - name: sdc-fe-port-9443
    nodePort: {{ .Values.nodePortPrefix }}07
    port: 9443
  - name: sdc-fe-port-8181
    nodePort: {{ .Values.nodePortPrefix }}06
    port: 8181
  selector:
    app: sdc-fe
  type: NodePort
#{{ end }}