# 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.disableUuiUui }}
apiVersion: v1
kind: Service
metadata:
  labels:
    app: uui
  name: uui
  namespace: "{{ .Values.nsPrefix }}"
  annotations:
    msb.onap.org/service-info: '[
      {
          "serviceName": "usecaseui-gui",
          "version": "v1",
          "url": "/usecase-ui",
          "path":"/iui/usecaseui",
          "protocol": "UI"
          "port": "8080",
          "visualRange":"1|0"
      }
      ]'
spec:
  ports:
  - name: uui
    nodePort: {{ .Values.uuiPortPrefix }}98
    port: 8080
  selector:
    app: uui
  type: NodePort
#{{ end }}
#{{ if not .Values.disableUuiServer }}
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: uui-server
  name: uui-server
  namespace: "{{ .Values.nsPrefix }}"
  annotations:
    msb.onap.org/service-info: '[
      {
          "serviceName": "usecaseui-server",
          "version": "v1",
          "url": "/api/usecaseui/server/v1",
          "protocol": "UI"
          "port": "8080",
          "visualRange":"1|0"
      }
      ]'
spec:
  ports:
  - name: uui-server
    nodePort: {{ .Values.uuiPortPrefix }}99
    port: 8082
  selector:
    app: uui-server
  type: NodePort
#{{ end }}