# Copyright © 2018 AT&T USA
#
# 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.
apiVersion: v1
kind: Service
metadata:
  name: {{ include "common.servicename" . }}
  namespace: {{ include "common.namespace" . }}
  labels:
    app: {{ include "common.name" . }}
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
  annotations:
    msb.onap.org/service-info: '[
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/cloudResources/{version:[vV][1]}/operationalEnvironments",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/cloudResources/{version:[vV][1]}/operationalEnvironments/{operationalEnvironmentId}/activate",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/cloudResources/{version:[vV][1]}/operationalEnvironments/{operationalEnvironmentId}/deactivate",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/cloudResourcesRequests/{version:[vV][1]}/{requestId}/unlock",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/cloudResourcesRequests/{version:[vV][1]}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/orchestrationRequests/{version:[vV][4-7]}/{requestId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/orchestrationRequests/{version:[vV][4-7]}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/orchestrationRequests/{version:[vV][4-7]}/{requestId}/unlock",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/activate",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/deactivate",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][7]}/serviceInstances/assign",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/unassign",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/enablePort",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/disablePort",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/activate",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/deactivate",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/addRelationships",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/removeRelationships",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/replace",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/applyUpdatedConfig",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}/replace",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/inPlaceSoftwareUpdate",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}/deactivateAndCloudDelete",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/scaleOut",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupInstanceId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
         {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupInstanceId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks/{networkInstanceId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         },
          {
        "serviceName": "so",
        "version": "v1",
        "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks/{networkInstanceId}",
        "protocol": "REST",
        "port": "{{ .Values.service.internalPort }}",
        "visualRange":"0",
        "lb_policy":"ip_hash"
         }
         ]'
spec:
  type: {{ .Values.service.type }}
  ports:
    {{if eq .Values.service.type "NodePort" -}}
    - port: {{ .Values.service.internalPort }}
      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
      name: {{ .Values.service.portName }}
    {{- else -}}
    - port: {{ .Values.service.externalPort }}
      targetPort: {{ .Values.service.internalPort }}
      name: {{ .Values.service.portName }}
    {{- end}}
  selector:
    app: {{ include "common.name" . }}
    release: {{ .Release.Name }}
