#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#
---
extraArgs:
  log.level: debug
service:
  type: NodePort
  nodePort: 9093
  port: 9093
config:
  receivers:
    - name: default-receiver
    - name: vdu-webhook
      webhook_configs:
       - url: http://webhook-translator/alert_vdu
    - name: scaleout-webhook
      webhook_configs:
       - url: http://webhook-translator/scaleout_vdu
    - name: scalein-webhook
      webhook_configs:
       - url: http://webhook-translator/scalein_vdu
  route:
    group_wait: 10s
    group_interval: 2m
    receiver: default-receiver
    routes:
    - receiver: vdu-webhook
      repeat_interval: 15m
      matchers:
      - alertname = "vdu_down"
    - receiver: 'scaleout-webhook'
      repeat_interval: 5m
      matchers:
      - alertname =~ "^scaleout_.*"
    - receiver: 'scalein-webhook'
      repeat_interval: 5m
      matchers:
      - alertname =~ "^scalein_.*"
