Observability

  • Changed

    • Change the names of Keda related fields in the values to match mimir upstream.
  • Changed

    • upgrade grafana chart: 9.2.1 => 9.2.10
    • upgrade grafana : 12.0.0-security-01 => 12.0.2
  • Changed

    • Disable ScaledObject resources and enable back hpa for read and gateway components.
  • Added

    • Add ScaledObject resources for loki-read and loki-gateway.

    Changed

    • Replace HPA scaling for loki-read and loki-gateway in favor of Keda
  • Changed

    • Updated pg-cluster-recovery-test subchart: v0.1.5 => v0.1.6
  • 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).
    • Allow filtering of Silence custom resources based on a label selector. The operator will only process Silence CRs that match the selector provided via the --silence-selector command-line flag or the silenceSelector Helm chart value. If no selector is provided, all Silence 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 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.
    • 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 and isEqual boolean fields with single matchType 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, and issue_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 use observability.giantswarm.io/v1alpha2. Migration Note: Existing v1alpha1 silences continue to work unchanged. Use the automated migration script and see MIGRATION.md for detailed guidance.
  • Changed

    • Updated dependencies (pg-cluster-recovery-test subchart, architect and docker tags).
  • Added

    • Add pg-cluster-recovery-test as chart dependency.
  • Removed

    • Clean up old and deprecated telemetry collectors:
      • promtail
      • grafana-agent
      • promtheus-agent
    • Disable PodSecurityPolicies by default as PodSecurityPolicies are deprecated and removed in Kubernetes v1.25+ clusters
  • Changed

    • Disable PodSecurityPolicies by default as PodSecurityPolicies are deprecated and removed in Kubernetes v1.25+ clusters