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

# Default values for all Aether Helm charts.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

global:
  fullnameOverride: "onos"
  nameOverride: ""
  image:
    registry: ""
    tag: ""
  store:
    consensus:
      enabled: true
      name: ""
      image:
        registry: ""
        repository: atomix/atomix-raft-storage-node
        tag: ""
        pullPolicy: IfNotPresent
        pullSecrets: []
      clusters: 1
      replicas: 1
      partitions: 1
      raft: {}
      persistence:
        storageClass: ""
        storageSize: 1Gi

import:
  onos-topo:
    enabled: true
  onos-config:
    enabled: true
  onos-gui:
    enabled: false
  onos-cli:
    enabled: true
  aether-roc-api:
    enabled: true
  aether-roc-gui:
    v2_1:
      enabled: false
    v3:
      enabled: true
  sdcore-adapter:
    v2_1:
      enabled: true
    v3:
      enabled: true
  subscriber-proxy:
    enabled: true
  sdcore-test-dummy:
    enabled: true
  grafana:
    enabled: true #also enable the proxy below
  prometheus:
    enabled: true #also enable the proxy below

# ONOS-TOPO
onos-topo:
  store:
    consensus:
      enabled: false

# ONOS-GUI
onos-gui: {}

# ONOS-CLI
onos-cli: {}

# Aether ROC API
aether-roc-api: {}

# Aether ROC GUI
aether-roc-gui-v3:
  websocket:
    proxyEnabled: true
  grafana:
    proxyEnabled: true
    service: aether-roc-umbrella-grafana # the grafana hostname - use FQDN for other namespaces
  prometheus:
    proxyEnabled: true
    service: aether-roc-umbrella-prometheus-server

# SD-Core Adapter
sdcore-adapter-v21:
  nameOverride: sdcore-adapter-v21
  fullnameOverride: sdcore-adapter-v21
  prometheusEnabled: false

# Subscriber Proxy
subscriber-proxy:
  nameOverride: subscriber-proxy
  fullnameOverride: subscriber-proxy
  prometheusEnabled: false

sdcore-adapter-v3:
  nameOverride: sdcore-adapter-v3
  fullnameOverride: sdcore-adapter-v3
  prometheusEnabled: false

grafana:
  orgs:
    acme:
      vcs:
        - acme-chicago-robots
      devicegroup:
        - acme-chicago-robots:
            production: "0-3"
            warehouse: "10-12"
    starbucks:
      vcs:
        - starbucks-newyork-cameras
        - starbucks-seattle-cameras
      devicegroup:
        - starbucks-newyork-cameras:
            front: "40-41"
            store: "50-55"
        - starbucks-seattle-pos:
            tills: "20-22"
            store: "30-34"
        - starbucks-seattle-cameras:
            counter: "0-3"
            store: "10-14"

  tidyUpPostInstall: true
  grafana.ini:
    log:
      level: debug
    server:
      domain: aether-roc-gui
      root_url: "%(protocol)s://%(domain)s:%(http_port)s/grafana/"
      serve_from_sub_path: true
    auth.anonymous:
      enabled: true
      hide_version: true
# Commented out for the moment - see aether-roc-gui/docs/grafana.md
#    auth.jwt:
#      enabled: true
#      header_name: X-JWT-Assertion
#      username_claim: name
#      email_claim: email
#      jwk_set_url: https://dex.aetherproject.org/dex/keys
#      cache_ttl: 60m
#    auth.generic_oauth:
#      enabled: true
#      client_id: aether-roc-gui
##      client_secret: YWV0aGVyLXJvYy1ndWkK
#      scopes: "openid profile email groups"
#      empty_scopes: false
#      auth_url: "http://dex-ldap-umbrella:5556/auth"
#      token_url: "http://dex-ldap-umbrella:5556/token"
#      api_url: "http://dex-ldap-umbrella:5556/userinfo"
#      allowed_domains: opennetworking.org
#      allow_sign_up: true

prometheus:
  pushgateway:
    enabled: false
  nodeExporter:
    enabled: false
  kubeStateMetrics:
    enabled: false
  alertmanager:
    configMapOverrideName: alertmanager
    webhook_url: "http://aether-roc-api-websocket/webhook"
  serverFiles:
    alerting_rules.yml:
     groups:
       - name: UeAlerts
         rules:
           - alert: UeThroughputLow
             expr: ue_throughput < 9000
             for: 1m
             labels:
               severity: info
             annotations:
               description: 'UE {{ $labels.id }} on VCS {{ $labels.slice }} throughput has been low for more than 1 minutes.'
               summary: 'UE {{ $labels.id }} on VCS {{ $labels.slice }} throughput low'
           - alert: UeLatencyHigh
             expr: ue_latency > 8
             for: 1m
             labels:
               severity: info
             annotations:
               description: 'UE {{ $labels.id }} on VCS {{ $labels.slice }} latency has been high for more than 1 minutes.'
               summary: 'UE {{ $labels.id }} on VCS {{ $labels.slice }} latency high'
       - name: VcsAlerts
         rules:
           - alert: VcsThroughputLow
             expr: vcs_throughput < 9000
             for: 1m
             labels:
               severity: info
             annotations:
               description: 'VCS {{ $labels.vcs_id }} throughput has been low for more than 1 minutes.'
               summary: 'VCS {{ $labels.vcs_id }} throughput low'
           - alert: VcsLatencyHigh
             expr: vcs_latency > 30
             for: 1m
             labels:
               severity: warn
             annotations:
               description: 'VCS {{ $labels.vcs_id }} latency has been high for more than 1 minutes.'
               summary: 'VCS {{ $labels.vcs_id }} latency high'
           - alert: VcsJitterHigh
             expr: vcs_jitter > 8
             for: 1m
             labels:
               severity: page
             annotations:
               description: 'VCS {{ $labels.vcs_id }} jitter has been high for more than 1 minutes.'
               summary: 'VCS {{ $labels.vcs_id }} jitter high'
    prometheus.yml:
      scrape_configs:
        - job_name: sdcore-exporter
          scrape_interval: 2s
          static_configs:
            - targets:
                - sdcore-adapter-v3-exporter:2112

# SD-Core Test Dummy
# proxy_pass has to be added or nginx will not log the $request_body
sdcore-test-dummy:
  service:
    type: ClusterIP
  existingServerBlockConfigmap: aether-roc-umbrella-sdcore-test-dummy

# ONOS-CONFIG
onos-config:
  store:
    consensus:
      enabled: false
  models:
    aether:
      v2_1:
        enabled: true
      v2_2:
        enabled: false
      v3:
        enabled: true
  plugin:
    compiler:
      target: ""
  openpolicyagent:
    enabled: true
    regoConfigMap: aether-roc-umbrella-opa-rbac
