/silence-operator

silence-operator manages Alertmanager silences via custom resources

Primary LanguageGoApache License 2.0Apache-2.0

CircleCI Docker Repository on Quay

silence-operator

The silence-operator manages alertmanager silences.

Overview

CustomResourceDefinition

The silence-operator monitors the Kubernetes API server for changes to Silence objects and ensures that the current Alertmanager silences match these objects. The Operator reconciles the Silence Custom Resource Definition (CRD) which can be found here.

How does it work

  1. Deployment runs the Kubernetes controller, which reconciles Silence CRs.
  2. Cronjob runs the synchronization of raw CRs definition from the specified folder by matching tags.

Sample CR:

apiVersion: monitoring.giantswarm.io/v1alpha1
kind: Silence
metadata:
  name: test-silence1
spec:
  targetTags:
  - name: installation
    value: kind
  - name: provider
    value: local
  matchers:
  - name: cluster
    value: test
    isRegex: false
  • targetTags field:
    • defines a list of tags, which sync command uses to match CRs towards a specific environment
    • each target tag consists of name and value which is a regexp matched against corresponding name tag given on the command line
    • if a Silence doesn't specify any targetTags it is assumed to match any environment and is synced
    • otherwise for a Silence to be synced, all tags defined in its targetTags must match all tags given on the sync command line

For example, to ensure raw CR, stored at /folder/cr.yaml, run:

silence-operator sync --tag installation=kind --tag provider=local --dir /folder
  • matchers field corresponds to the Alertmanager silence matchers each of which consists of:
    • name - name of tag on an alert to match
    • value - fixed string or expression to match against the value of the tag named by name above on an alert
    • isRegex - a boolean specifying whether to treat value as a regex (=~) or a fixed string (=)
    • isEqual - a boolean specifying whether to use equal signs (= or =~) or to negate the matcher (!= or !~)

Getting the Project

Download the latest release: https://github.com/giantswarm/silence-operator/releases/latest

Clone the git repository: https://github.com/giantswarm/silence-operator.git

Download the latest docker image from here: https://quay.io/repository/giantswarm/silence-operator

How to build

Build the standard way.

go build github.com/giantswarm/silence-operator

Contact

Contributing & Reporting Bugs

See CONTRIBUTING for details on submitting patches, the contribution workflow as well as reporting bugs.

For security issues, please see the security policy.

License

silence-operator is under the Apache 2.0 license. See the LICENSE file for details.

Credit