silence-operator release v0.17.0
Added
- Add advanced filtering capabilities for both v1alpha1 and v1alpha2 controllers:
- Add silence selector feature to filter
Silence
resources by labels (configure via--silence-selector
flag). - Add namespace selector for v1alpha2 controller to restrict watched namespaces (configure via
--namespace-selector
flag).
- Add silence selector feature to filter
- Allow filtering of
Silence
custom resources based on a label selector. The operator will only processSilence
CRs that match the selector provided via the--silence-selector
command-line flag or thesilenceSelector
Helm chart value. If no selector is provided, allSilence
CRs are processed. - Add new
observability.giantswarm.io/v1alpha2
API with namespace-scoped Silence CRD for improved multi-tenancy.- Add
MatchType
enum field using Alertmanager operator symbols (=
,!=
,=~
,!~
) for intuitive matching logic. - Add
SilenceV2Reconciler
controller to handle v1alpha2 resources while maintaining full backward compatibility with v1alpha1. - Add comprehensive field validation: matcher names (1-256 chars), values (max 1024 chars), minimum 1 matcher required.
- Add printer columns to v1alpha2 CRD for better
kubectl get silences
output showing Age.
- Add
- Add automated migration script (
hack/migrate-silences.sh
) for v1alpha1 to v1alpha2 conversion.- Automatically converts boolean matcher fields (
isRegex
/isEqual
) to enum format (matchType
). - Intelligently preserves user annotations/labels while filtering out Kubernetes and FluxCD system metadata.
- Supports dry-run mode for safe migration testing.
- Automatically converts boolean matcher fields (
- Add comprehensive migration documentation (
MIGRATION.md
) with examples and best practices. - Add clean service layer architecture (
pkg/service/
) separating business logic from Kubernetes controller concerns.
Changed
- BREAKING (v1alpha2 only): Replace
isRegex
andisEqual
boolean fields with singlematchType
enum field using Alertmanager symbols. - BREAKING (v1alpha2 only): Change from cluster-scoped to namespace-scoped resources for better multi-tenancy and RBAC isolation.
- BREAKING (v1alpha2 only): Remove deprecated fields in v1alpha2:
targetTags
,owner
,postmortem_url
, andissue_url
for cleaner API design. - Improve code organization with dependency injection and clear separation between controller logic and business logic.
Deprecated
- The
monitoring.giantswarm.io/v1alpha1
API is now considered legacy. New deployments should useobservability.giantswarm.io/v1alpha2
. Migration Note: Existing v1alpha1 silences continue to work unchanged. Use the automated migration script and see MIGRATION.md for detailed guidance.