---
# Copyright 2018-present Open Networking Foundation
#
# 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: {{ template "bbsim.fullname" . }}
  namespace: {{ .Release.Namespace }}
  labels:
    app: "bbsim"
    name: {{ template "bbsim.name" . }}
    chart: {{ template "bbsim.chart" . }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  type: ClusterIP
  ports:
    - name: "bbsim-{{ .Values.olt_id }}"
      port: {{ .Values.olt_tcp_port }}
      protocol: TCP
    - name: "bbsim-{{ .Values.olt_id }}-api"
      port: {{ .Values.bbsim_api_port }}
      protocol: TCP
    - name: "bbsim-{{ .Values.olt_id }}-sadis"
      port: {{ .Values.bbsim_sadis_port }}
      protocol: TCP
    - name: "bbsim-{{ .Values.olt_id }}-rest"
      port: {{ .Values.bbsim_rest_port }}
      protocol: TCP
    - name: "bbsim-{{ .Values.olt_id }}-dmi"
      port: {{ .Values.bbsim_dmi_port }}
      protocol: TCP
  selector:
    app: "bbsim"
    name: {{ template "bbsim.name" . }}
    release: {{ .Release.Name }}
