canonical / alertmanager-k8s-operator

This charmed operator automates operation procedures of Alertmanager, the alerting component of Prometheus and Loki, among others.
https://charmhub.io/alertmanager-k8s
Apache License 2.0
4 stars 16 forks source link

`show-config` action fails #246

Closed slapcat closed 2 months ago

slapcat commented 2 months ago

Bug Description

After adding a custom config to the charm, the show-config action fails. First, it fails because of a missing template file, which should not be required for custom config. Then, if that is set, it will fail because of a missing .pem file. Speaking to Mateusz, he mentioned it could be because of TLS, but TLS is not enabled in the environment.

To Reproduce

  1. juju deploy cos-lite --trust
  2. Create config file:
    cat > /home/ubuntu/alertmanager.yml <<EOF
    receivers:
    - name: datadog
    webhook_configs:
    - send_resolved: true
    url: https://app.datadoghq.eu/intake/webhook/prometheus?api_key=<API_KEY>
    route:
    group_by: ['alertname']
    group_wait: 10s
    group_interval: 5m
    receiver: datadog
    repeat_interval: 3h
    EOF
  3. juju config alertmanager config_file="@/home/ubuntu/alertmanager.yml"
  4. juju run -m mk8s-localhost: alertmanager/0 show-config
    
    Running operation 11 with 1 task
    - task 12 on unit-alertmanager-0

Waiting for task 12... 14:40:18 Fetching /etc/alertmanager/alertmanager.yml

Action id 12 failed: not-found - stat /etc/alertmanager/templates.tmpl: no such file or directory


5. `juju config alertmanager templates_file=''@/home/ubuntu/templates.tmpl"`
6. `juju run -m mk8s-localhost: alertmanager/0 show-config`

Running operation 9 with 1 task

Waiting for task 10... 14:33:33 Fetching /etc/alertmanager/alertmanager.yml

Action id 10 failed: not-found - stat /etc/alertmanager/alertmanager.cert.pem: no such file or directory


### Environment

Model Controller Cloud/Region Version SLA Timestamp cos mk8s-localhost mk8s/localhost 3.4.2 unsupported 14:45:14-04:00

App Version Status Scale Charm Channel Rev Address Exposed Message alertmanager 0.27.0 active 1 alertmanager-k8s latest/stable 106 10.152.183.245 no
catalogue active 1 catalogue-k8s latest/stable 33 10.152.183.52 no
grafana 9.5.3 active 1 grafana-k8s latest/stable 107 10.152.183.115 no
loki 2.9.5 active 1 loki-k8s latest/stable 128 10.152.183.199 no
prometheus 2.50.1 active 1 prometheus-k8s latest/stable 173 10.152.183.250 no
traefik v2.11.0 active 1 traefik-k8s latest/stable 176 10.10.2.0 no

Unit Workload Agent Address Ports Message alertmanager/0 active idle 10.1.199.225
catalogue/0
active idle 10.1.199.204
grafana/0 active idle 10.1.199.252
loki/0
active idle 10.1.199.226
prometheus/0 active idle 10.1.199.247
traefik/0
active idle 10.1.199.217

Integration provider Requirer Interface Type Message alertmanager:alerting loki:alertmanager alertmanager_dispatch regular
alertmanager:alerting prometheus:alertmanager alertmanager_dispatch regular
alertmanager:grafana-dashboard grafana:grafana-dashboard grafana_dashboard regular
alertmanager:grafana-source grafana:grafana-source grafana_datasource regular
alertmanager:replicas alertmanager:replicas alertmanager_replica peer
alertmanager:self-metrics-endpoint prometheus:metrics-endpoint prometheus_scrape regular
catalogue:catalogue alertmanager:catalogue catalogue regular
catalogue:catalogue grafana:catalogue catalogue regular
catalogue:catalogue prometheus:catalogue catalogue regular
catalogue:replicas catalogue:replicas catalogue_replica peer
grafana:grafana grafana:grafana grafana_peers peer
grafana:metrics-endpoint prometheus:metrics-endpoint prometheus_scrape regular
grafana:replicas grafana:replicas grafana_replicas peer
loki:grafana-dashboard grafana:grafana-dashboard grafana_dashboard regular
loki:grafana-source grafana:grafana-source grafana_datasource regular
loki:metrics-endpoint prometheus:metrics-endpoint prometheus_scrape regular
loki:replicas loki:replicas loki_replica peer
prometheus:grafana-dashboard grafana:grafana-dashboard grafana_dashboard regular
prometheus:grafana-source grafana:grafana-source grafana_datasource regular
prometheus:prometheus-peers prometheus:prometheus-peers prometheus_peers peer
traefik:ingress alertmanager:ingress ingress regular
traefik:ingress catalogue:ingress ingress regular
traefik:ingress-per-unit loki:ingress ingress_per_unit regular
traefik:ingress-per-unit prometheus:ingress ingress_per_unit regular
traefik:metrics-endpoint prometheus:metrics-endpoint prometheus_scrape regular
traefik:peers traefik:peers traefik_peers peer
traefik:traefik-route grafana:ingress traefik_route regular


### Relevant log output

```shell
Running operation 9 with 1 task
  - task 10 on unit-alertmanager-0

Waiting for task 10...
14:33:33 Fetching /etc/alertmanager/alertmanager.yml

Action id 10 failed: not-found - stat /etc/alertmanager/alertmanager.cert.pem: no such file or directory

Additional context

No response