view tasks.py @ 31:d39a8038227b

reformat
author drewp@bigasterisk.com
date Wed, 19 Jul 2023 21:27:46 -0700
parents eec015e90818
children eb1de82c93aa
line wrap: on
line source

import yaml
from invoke import task
from kubernetes import config

import alert_rules
from k8s_ops import firstPodName, refreshPodCmaps, replaceCmap

config.load_kube_config()


@task
def push_config(ctx):
    configObj = scrapeConfig(ctx)
    rulesObj = alert_rules.allRules()
    rulesObj["groups"] += alert_rules.expectedK8sNodes(ctx)["groups"]
    rulesObj["groups"] += alert_rules.hostsExpectedOnline(ctx)["groups"]

    replaceCmap("victoriametrics-config", {"scrape_main": configObj, "rules": rulesObj})

    refreshPodCmaps(firstPodName("app=victoriametrics"))
    refreshPodCmaps(firstPodName("app=vmalert"))

    # If the VM reloader isn't fast enough, we could do this too:
    # hup(ctx, 'deploy/victoriametrics', 'victoria-metrics-prod')


def scrapeConfig(ctx):
    return yaml.load(open("config/scrape_main.yaml"), yaml.FullLoader)