
silence-operator
The Silence Operator automates the management of Alertmanager silences using Kubernetes Custom Resources. This allows you to define and manage silences declaratively, just like other Kubernetes objects, integrating them into your GitOps workflows.
Prerequisites
Get Helm Repository Info
helm repo add giantswarm https://giantswarm.github.io/control-plane-catalog/
helm repo update
See helm repo for command documentation.
Install Helm Chart
helm install [RELEASE_NAME] giantswarm/silence-operator
See helm install for command documentation.
CRDs are not created by this chart and should be manually deployed:
kubectl apply --server-side -f https://raw.githubusercontent.com/giantswarm/silence-operator/main/config/crd/monitoring.giantswarm.io_silences.yaml
Uninstall Helm Chart
helm uninstall [RELEASE_NAME]
This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
CRDs are not removed by default and should be manually cleaned up:
kubectl delete crd silences.monitoring.giantswarm.io
Upgrading Chart
helm upgrade [RELEASE_NAME] giantswarm/silence-operator
CRDs should be manually updated:
kubectl apply --server-side -f https://raw.githubusercontent.com/giantswarm/silence-operator/main/config/crd/monitoring.giantswarm.io_silences.yaml
See helm upgrade for command documentation.
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.
The Silence CRD generated at config/crd/monitoring.giantswarm.io_silences.yaml is deployed via management-cluster-bases repository.
How does it work
Deployment runs the Kubernetes controller, which reconciles Silence CRs.
Sample CR:
apiVersion: monitoring.giantswarm.io/v1alpha1
kind: Silence
metadata:
name: test-silence1
spec:
matchers:
- name: cluster
value: test
isRegex: false
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
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
This project is licensed under the Apache 2.0 License. See the LICENSE file for the full license text.
Copyright (c) 2025 Giant Swarm GmbH