# 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
    v4:
      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
      v4:
        enabled: true
  plugin:
    compiler:
      target: ""
  openpolicyagent:
    enabled: true
    regoConfigMap: aether-roc-umbrella-opa-rbac
