# 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:
  mcord:
    enabled: true
  base-kubernetes:
    enabled: true

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

# 3. mcord parameters
# To-Do: need to change it to COMAC profile in xos-service charts
mcord:
  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
    enabled: true

  # 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'

  seba:
    enabled: false

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