# 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: {{ include "common.release" . }}
    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: {{ include "common.release" . }}
