# 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.disableAppcAppcDbhost }}
apiVersion: v1
kind: Service
metadata:
  name: appc-dbhost
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: appc-dbhost
spec:
  ports:
  - name: "appc-dbhost-port"
    port: 3306
  selector:
    app: appc-dbhost
  clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
  name: appc-sdnctldb01
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: appc-dbhost
spec:
  ports:
    - port: 3306
  selector:
    app: appc-dbhost
  clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
  name: appc-sdnctldb02
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: appc-dbhost
spec:
  ports:
    - port: 3306
  selector:
    app: appc-dbhost
  clusterIP: None
#{{ end }}
#{{ if not .Values.disableAppcAppc }}
---
apiVersion: v1
kind: Service
metadata:
  name: appc-sdnhost
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: appc
spec:
  ports:
  - name: "appc-port-8282"
    port: 8282
    targetPort: 8181
    nodePort: {{ .Values.nodePortPrefix }}30
  - name: "appc-port-1830"
    port: 1830
    nodePort: {{ .Values.nodePortPrefix }}31
  type: NodePort
  selector:
    app: appc
#{{ end }}
#{{ if not .Values.disableAppcAppcDgbuilder }}
---
apiVersion: v1
kind: Service
metadata:
  name: appc-dgbuilder
  namespace: "{{ .Values.nsPrefix }}"
  labels:
    app: appc-dgbuilder
spec:
  ports:
  - name: "appc-dgbuilder-port"
    port: 3000
    targetPort: 3100
    nodePort: {{ .Values.nodePortPrefix }}28
  type: NodePort
  selector:
    app: appc-dgbuilder
#{{ end }}
