# 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-websocket:
    enabled: true
  aether-roc-gui:
    v3:
      enabled: false
    v4:
      enabled: true
  sdcore-adapter:
    v3:
      enabled: false
    v4:
      enabled: true
  subscriber-proxy:
    enabled: true
  sdcore-test-dummy:
    enabled: true
  plproxy:
    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:
  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

aether-roc-gui-v4:
  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:
  nameOverride: sdcore-adapter-v3
  fullnameOverride: sdcore-adapter-v3
  prometheusEnabled: false

sdcore-adapter-v4:
  prometheusEnabled: false

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

# Prom label Proxy
prom-label-proxy:
  nameOverride: prom-label-proxy-v1
  fullnameOverride: prom-label-proxy-v1
  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-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:
      v3:
        enabled: true
      v4:
        enabled: true
    plproxy:
      v1:
        enabled: true
  plugin:
    compiler:
      target: ""
  openpolicyagent:
    enabled: true
    regoConfigMap: aether-roc-umbrella-opa-rbac
