# 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
  bess-upf:
    enabled: false
  bess-upf-cni:
    enabled: false

onos-classic:
  java_opts: -Xmx4G -Dlog4j2.formatMsgNoLookups=true -XX:+UnlockExperimentalVMOptions -XX:+UseZGC
  image:
    repository: opennetworking/sdfabric-onos
    tag: master-2022-02-10

  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.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"
        }
      "org.onosproject.provider.general.device.impl.GeneralDeviceProvider": >
        {
          "readPortId": true
        }
    # 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:
    repository: stratumproject/stratum-bfrt
    tag: 22.02.04-9.7.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"
    - "-experimental_enable_p4runtime_translation"
    - "-incompatible_enable_bfrt_legacy_bytestring_responses"

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