# SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org>
#
# SPDX-License-Identifier: Apache-2.0

import:
  onos-classic:
    enabled: true
  stratum:
    enabled: true
  pfcp-agent:
    enabled: true
  dbuf:
    enabled: false
  int-host-reporter:
    enabled: false
  di-topology-watchdog:
    enabled: false
  di-metrics-exporter:
    enabled: false

onos-classic:
  image:
    repository: registry.aetherproject.org/tost/tost
    tag: 1.0.2

  replicas: 3

  ports:
    - name: up4
      port: 51001
    - name: east-west
      port: 9876
    - name: cli
      port: 8101
    - name: ui
      port: 8181

  apps:
    - org.onosproject.lldpprovider
    - org.onosproject.hostprovider
    - org.onosproject.netcfghostprovider
    - org.onosproject.gui
    - org.onosproject.drivers.barefoot
    - org.onosproject.segmentrouting
    - org.onosproject.t3
    - org.omecproject.up4
    - org.stratumproject.fabric-tna
    - org.onosproject.dhcprelay
    - org.onosproject.hostprobingprovider

  logging:
    karafVersion: 4.2.14
    config: |
      # Common pattern layout for appenders
      log4j2.stdout.pattern = %d{RFC3339} %-5level [%c{1}] %msg%n%throwable

      # Root logger
      log4j2.rootLogger.level = INFO

      # OSGi appender
      log4j2.rootLogger.appenderRef.PaxOsgi.ref = PaxOsgi
      log4j2.appender.osgi.type = PaxOsgi
      log4j2.appender.osgi.name = PaxOsgi
      log4j2.appender.osgi.filter = *

      # stdout appender
      log4j2.rootLogger.appenderRef.Console.ref = Console
      log4j2.appender.console.type = Console
      log4j2.appender.console.name = Console
      log4j2.appender.console.layout.type = PatternLayout
      log4j2.appender.console.layout.pattern = ${log4j2.stdout.pattern}

      # SSHD logger
      log4j2.logger.sshd.name = org.apache.sshd
      log4j2.logger.sshd.level = INFO

      # Spifly logger
      log4j2.logger.spifly.name = org.apache.aries.spifly
      log4j2.logger.spifly.level = WARN

  annotations:
    fluentbit.io/parser: onos

  atomix:
    replicas: 3
    persistence:
      enabled: false

  # Please check the README to learn more
  config:
    componentConfig:
      "org.onosproject.net.host.impl.HostManager": >
        {
          "monitorHosts": "true",
          "probeRate": "10000"
        }
    # Please check the README to learn more
    # netcfg: >
    #     {
    #     "devices": {
    #         "device:leaf1": {
    #             "segmentrouting": {
    #                 "ipv4NodeSid": 101,
    #                 "ipv4Loopback": "10.11.22.33",
    #                 "routerMac": "aa:bb:cc:dd:ee:ff",
    #                 "pairDeviceId" : "device:leaf2",
    #                 "pairLocalPort" : 260,
    #                 "isEdgeRouter": true,
    #                 "adjacencySids": []
    #             }
    #         }
    #     }
    # }

stratum:
  image:
    registry: docker.io
    repository: stratumproject/stratum-bfrt
    tag: 21.12-9.5.0
    pullPolicy: IfNotPresent

  extraParams:
    - "-max_log_size=0"
    - "-write_req_log_file=''"
    - "-read_req_log_file=''"
    - "-v=0"
    - "-minloglevel=0"
    - "-bf_switchd_background=false"
    - "-colorlogtostderr=false"
    - "-logtostderr=true"

  annotations:
    fluentbit.io/parser: stratum

  # Specify nodeSelector to pin Stratum to switches only
  nodeSelector:
    node-role.aetherproject.org: switch

  # Override NoSchedule for Stratum to be scheduled on switches
  tolerations:
    - key: node-role.aetherproject.org
      value: switch
      effect: NoSchedule

  # Please check the README to learn more
  # chassis_config:
  #   "leaf1": >
  #     description: "Default Chassis Config for Edgecore Wedge100BF-32X"
  #     chassis {
  #       platform: PLT_GENERIC_BAREFOOT_TOFINO
  #       name: "Edgecore Wedge100BF-32x"
  #     }
  #     nodes {
  #       id: 1
  #       slot: 1
  #       index: 1
  #     }
  #     singleton_ports {
  #       id: 164
  #       name: "5/0"
  #       slot: 1
  #       port: 5
  #       speed_bps: 40000000000
  #       config_params {
  #         admin_state: ADMIN_STATE_ENABLED
  #         autoneg: TRI_STATE_FALSE
  #       }
  #       node: 1
  #     }
