# SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org>
#
# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0

image:
  credential:
    secretName: &image-secret-name registry-credential
    registry: registry.aetherproject.org
    username: changeit
    password: changeit

import:
  onos-classic:
    enabled: true
  stratum:
    enabled: true
  pfcp-agent:
    enabled: false
  dbuf:
    enabled: false
  int-host-reporter:
    enabled: false

onos-classic:
  image:
    repository: registry.aetherproject.org/tost/tost
    tag: 1.0.2
    pullSecrets:
      - *image-secret-name

  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:
    netcfg: >
      {}
    componentConfig: {}
  # 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": []
  #             }
  #         }
  #     }
  # }
  # componentConfig:
  #   "org.onosproject.net.host.impl.HostManager": >
  #     {
  #       "monitorHosts": "true",
  #       "probeRate": "10000"
  #     }

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


pfcp-agent:
  images:
    tags:
      init: registry.aetherproject.org/tools/busybox:stable
      pfcpiface: "registry.aetherproject.org/proxy/omecproject/upf-epc-pfcpiface:master-fcdbc95"
    pullPolicy: Always
    pullSecrets:
      - *image-secret-name
  nodeSelectors:
    enabled: false
    pfcp:
      label: omec-upf
      value: enabled
  resources:
    enabled: true
    pfcpiface:
      requests:
        cpu: 256m
        memory: 128Mi
      limits:
        cpu: 256m
        memory: 128Mi
  config:
    coreDump:
      enabled: false
      path: /tmp/coredump
    pfcp:
      cfgFiles:
        upf.json:
          measure: true
          enable_p4rt: true
          p4rtciface:
            # Should be the same as s1uAddr in ONOS netcfg for the UP4 app.
            access_ip: "172.17.0.1/32"
            # Do not change unless you are deploying ONOS in a custom way.
            p4rtc_server: "sdfabric-onos-classic-hs.sdfabric"
            p4rtc_port: "51001"
  service:
    type: ClusterIP
    #externalIp:
    #annotations:

dbuf:
  image:
    repository: registry.aetherproject.org/tost/dbuf
    pullPolicy: Always
    tag: "1.0.0"
    pullSecrets:
      - *image-secret-name
  extraParams:
    - '"-max_queues=1024"'
  replicaCount: 1
  sriovNICSize: 1
  sriovResourceName: intel_sriov_netdevice
  # Change both in the same time
  multusNetworkName: dbuf-sriov
  podAnnotations:
    k8s.v1.cni.cncf.io/networks: dbuf-sriov@net0
  podSecurityContext: {}
  resources:
    requests:
      intel.com/intel_sriov_netdevice: "1"
    limits:
      intel.com/intel_sriov_netdevice: "1"
  nodeSelector: {}
  tolerations: []
  affinity: {}
  # onos inforamtion
  onos:
    server: sdfabric-onos-classic-hs.sdfabric
    port: 8181
    username: onos
    password: rocks
  dataplane:
    port: 2152
    interface: "net0"
  prometheus_enable: true
  service:
    stats:
      port: 8080
      protocol: TCP
    grpc:
      port: 10000
      protocol: TCP
  # two options for ipam, dhcp or host-local
  # static is for host-local ipam
  network:
    #  ipam: dhcp
    ipam: host-local
    static:
      subnets: "10.56.217.0/24"
      gateway: "10.56.217.1"
    # route the following subnets via sr-iov interface
    # route: 10.56.215.0/24,10.56.214.0/24
    route: ""
    #vlan:

int-host-reporter:
  image:
    repository: registry.hub.docker.com/opennetworking/int-host-reporter
    pullPolicy: Always
    # Overrides the image tag whose default is the chart appVersion.
    tag: "latest"

  cni: cilium
  dataInterface: enp0s8
  intCollector: 192.168.33.50:30001

  intWatchlistRules:
    # - protocol: "UDP"
    #   src-addr: "192.168.99.50/32"
    #   dst-addr: "192.168.99.20/32"
    # - protocol: "TCP"
    #   src-addr: "192.168.99.50/32"
    #   dst-addr: "192.168.99.20/32"
