prometheus-operator при настройке конфигурации alertmanager для PagerDuty
Возникла следующая проблема: при попытке настроить конфигурацию alertmanager через CRD возникла неправильная конфигурация модуля. Проблема выглядит так:
- routing_key: |
*****
Параметр маршрутизации_ключа после того, как все компакт-диски используют тип многострочной строки, и это приводит к сбою конфигурации - alertmanager не понимает это как конфигурацию pagerduty и не использует шаблон по умолчанию для пользовательской конфигурации. Не удалось создать ожидаемый json для PD и PD отправить обратно код состояния 400. Ожидаемая конфигурация выглядит так:
- routing_key: ****
Но это только, если я использую CRD. Если я настроил его без CRD (в глобальных значениях), все работало нормально.
Больше информации:
конфиг.yaml:
route:
groupBy: ['alertname', 'namespace']
groupWait: 10s
groupInterval: 30s
repeatInterval: 30m
receiver: 'pagerDuty'
continue: true
receivers:
- name: 'pagerDuty'
pagerdutyConfigs:
- url: 'https://events.eu.pagerduty.com/v2/enqueue'
routingKey: { name: name_of_secret, key: ke_of_secret }
Шаблон диаграммы управления для сборки ее в CRD:
{{- $files := .Files.Glob "alerting/**/config.yaml" }}
{{- if $files }}
{{- range $path, $fileContents := $files }}
---
{{- $namespace := regexReplaceAll "^.*/(.*?)/.*" $path "${1}"}}
apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
name: {{ printf "%s-%s" $namespace "alertmanager-config" }}
namespace: {{ $namespace }}
spec: {{ $.Files.Get $path | nindent 2}}
{{- end }}
{{- end }}
После этого перейдите на ArgoCD и выполните синхронизацию с неправильным типом маршрутизации_ключа.
Попробуйте с API v1 (использует service_key), та же проблема.
У кого-нибудь есть такая же проблема? Как это исправить? Пробуйте многое, но подумайте — это баг.
1 ответ
У меня была такая же проблема с emailConfig.
Это произошло из-за моего пароля в формате Base64, закодированного в секрете с помощью\n
в конце.
Вам следует попытаться сгенерировать секретную строку base64, используя следующую команду:-n
:
echo -n "secretstring" | base64
Я надеюсь, что это поможет.