# Copyright 2019-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.

# 0.1. profile definition
profile:
  comac:
    enabled: true
  base-kubernetes:
    enabled: true
resdentialService:
  enabled: true

# 0.2. enable/disable sub-chart ProgRAN
progran:
  enabled: false

# 3. COMAC parameters
comac:
  onosRestService: cord-platform-onos-ui.default.svc.cluster.local
  kafkaService: cord-platform-kafka.default.svc.cluster.local:9092

  onos-service:
    kafkaService: cord-platform-kafka
    onosRestService: "cord-platform-onos-cord-ui.default.svc.cluster.local"
    enabled: true

  fabric:
    kafkaService: cord-platform-kafka

  volt:
    kafkaService: cord-platform-kafka
    volthaRestService: voltha.voltha.svc.cluster.local
    onosRestService: cord-platform-onos-ui.default.svc.cluster.local

  fabric-crossconnect:
    kafkaService: cord-platform-kafka

  sadis-server:
    kafkaBroker: cord-platform-kafka:9092

  # parameter in mcord service for progran
  progran:
    enabled: false
    image:
      repository: 'omecproject/progran-synchronizer'
      tag: 'comac-1.0.0'
      pullPolicy: 'IfNotPresent'

  mcord-subscriber:
    image:
      repository: 'omecproject/mcord-synchronizer'
      tag: 'comac-1.0.0'
      pullPolicy: 'IfNotPresent'

  resdentialService:
    enabled: true

# 4. base-kubernetes parameters
base-kubernetes:
  kubernetes:
    image:
      repository: 'omecproject/kubernetes-synchronizer'
      tag: 'comac-1.0.0'
      pullPolicy: 'IfNotPresent'
