k8s.io/test-infra@v0.0.0-20240520184403-27c6b4c223d8/config/prow/cluster/monitoring/mixins/prometheus/external_secret_alerts.libsonnet (about) 1 { 2 prometheusAlerts+:: { 3 groups+: [ 4 { 5 name: 'external-secret-sync', 6 rules: [ 7 { 8 # https://github.com/external-secrets/kubernetes-external-secrets/blob/master/README.md#metrics 9 alert: 'Failed-syncing-external-secret', 10 # Prometheus scrapes kubernetes external secrets every 30 seconds as defined in servicemonitor, so this counts failures between scrape intervals. 11 # Since kubernetes secret manager runs every 10 seconds, there should be at least 2 runs in every 30s, so this will only report consecutive failures. 12 expr: ||| 13 increase(kubernetes_external_secrets_sync_calls_count{job="kubernetes-external-secrets",status!="success"}[1m]) > 1.5 14 |||, 15 labels: { 16 severity: 'critical', 17 }, 18 annotations: { 19 message: 'ExternalSecret {{ $labels.namespace }}/{{ $labels.name }} failed to be synced. does %s have `roles/secretmanager.viewer` and `roles/secretmanager.secretAccessor` permissions on the google secret manager secret used for this cluster secret?' % $._config.kubernetesExternalSecretServiceAccount, 20 }, 21 } 22 ], 23 }, 24 ], 25 }, 26 }