All notable changes to this project are documented in this file.
Release date: 2024-09-27
This minor release comes with various bug fixes and improvements.
MS Teams Provider has been updated to support MS Adaptive Card payloads.
This allows users to migrate from the deprecated
Office 365 Connector for Incoming Webhooks
to the new Microsoft Teams Incoming Webhooks with Workflows.
See the Provider API documentation
for more information. After getting the URL for the new Incoming Webhook Workflow,
update the secret used by the msteams
Provider object with the new URL.
In addition, the Kubernetes dependencies have been updated to v1.31.1 and various other controller dependencies have been updated to their latest version. The controller is now built with Go 1.23.
Fixes:
- telegram notifier should escape with metadata key #829
- docs: use stringData for secret of GitHub PAT #873
- Fix incorrect use of format strings with the conditions package. #879
Improvements:
- New flag to disable detailed metrics for path #841
- Fix telegram test flake #894
- Build with Go 1.23 #907
- Add MS Adaptive Card payload to msteams Provider #920
- Various dependency updates #845 #855 #854 #857 #865 #866 #905 #903 #912 #925 #931 #932 #933 #934
Release date: 2024-05-06
This minor release comes with new features, improvements and bug fixes.
The Receiver
API has been extended to support CDEvents,
for more information, please see the
CDEvents Receiver API documentation.
Starting with this version, the controller allows grouping alerts for Alertmanager
by setting the startsAt
label instead of timestamp
. When sending alerts to
OpsGenie, the controller now sets the severity
field to the alert's details.
In addition, the controller dependencies have been updated to Kubernetes v1.30 and controller-runtime v0.18. Various other dependencies have also been updated to their latest version to patch upstream CVEs.
Lastly, the controller is now built with Go 1.22.
Improvements:
- Add CDEvent Receiver Support #772
- Add severity to opsgenie alerts #796
- Alertmanager: Change timestamp label to .StartsAt #795
- Use
password
as fallback for the Git providertoken
auth #790 - Add support for Bitbucket Context path #747
- Various dependency updates #816 #814 #813 #810 #809 #787 #783 #763
Fixes:
- Sanitize provider data loaded from secret #789
- Fix timeout propagation for alerts #757
- Fix Telegram MarkdownV2 escaping #776
- Remove
genclient:Namespaced
tag #749
Release date: 2024-02-01
This patch release fixes various issues, updates the Kubernetes dependencies to v1.28.6 and various other dependencies to their latest version to patch upstream CVEs.
Improvements:
Fixes:
- Fix BitBucket status update panic #722
- fix typo in docs/spec/v1beta3/providers.md #699
- fix(grafana-provider): replace ":" character in eventMetadata #703
- Remove old/incorrect API version usage #693
Release date: 2023-12-14
This patch release fixes various issues, most notably, the Provider v1beta3 API
backwards compatibility issue when .spec.interval
was explicitly set in a
v1beta2 version of Provider.
Fixes:
- Exclude eventv1.MetaTokenKey from event metadata #686
- Add .spec.interval in v1beta3 Provider #683
- Remove URL syntax validation for provider address entirely #682
Release date: 2023-12-11
This patch releases updates a variety of dependencies, including an update of the container base image to Alpine v3.19.
Improvements:
Release date: 2023-12-08
This patch release updates the Go version the controller is built with to
1.21.x
, while mitigating recently published security vulnerabilities in the
net/http
package.
In addition, it ensures static analyzers no longer detect a vulnerability in the
whilp/git-urls
module by using chainguard-dev/git-urls
. For which the
(potential) issue itself got already addressed internally in the previous
v1.2.0 release.
Lastly, a small number of dependencies got updated to their latest versions.
Improvements:
- Update Go to 1.21.x #666
- Replace whilp/git-urls module by chainguard-dev/git-urls #667
- Update dependencies #669
Release date: 2023-12-05
This minor release graduates the notification Alert
and Provider
APIs to
v1beta3
. In addition, this version comes with alert Provider support for
BitBucket
Server
and
NATS.
After upgrading the controller to v1.2.0, please update the notification Custom
Resources for Alert
and Provider
in Git by replacing
notification.toolkit.fluxcd.io/v1beta2
with
notification.toolkit.fluxcd.io/v1beta3
in all the YAML manifests.
The notification Alert and Provider API resources will become static objects
with configurations that will be used by the event handlers for processing the
respective incoming events. They will no longer be reconciled by a reconciler
and will not advertise any status. Once Alerts
and Providers
are created,
they can be considered ready. Users of
kstatus
shouldn't see any difference. Existing Alerts
and Providers
objects in
v1beta2
API will undergo a one-time automatic migration to be converted into
static objects without any status.
The event handler will emit Kubernetes native events on the respective Alert object for any relevant information, including failures due to any misconfiguration.
Improvements:
- Add Provider for NATS Subject #651
- Cap provider address at 2048 bytes #654
- Refactor events and introduce v1beta3 API for Alert and Provider #540
- Add Bitbucket server/Bitbucket Data Center provider for git commit status #639
- Address miscellaneous issues throughout code base #627
- Update dependencies #609 #612 #613 #617 #621 #623 #628 #629 #632 #635 #637 #641 #643 #646 #648 #652 #656 #657
Fixes:
- Fix README.md links to notification APIs #619
Release date: 2023-08-23
This minor release comes with support for sending alerts to PagerDuty.
In addition, this version deprecates the usage of the caFile
key in favor of ca.crt
for the .spec.certSecretRef
secret in the Provider v1beta2 API.
Starting with this version, the controller now stops exporting an object's metrics as soon as the object has been deleted.
Improvements:
- Add support for Datadog #592
- Adopt Kubernetes style TLS Secret #597
- Remove checks for empty user and channel parameters in Rocket notifier #603
- Clarify permission requirements for Gitea provider token #583
- Align docs structure with other controllers #582
- Update dependencies #600 #606
Fixes:
- Use TrimPrefix instead of TrimLeft #590
- Handle delete before adding finalizer #584
- Delete stale metrics on object delete #599
- docs: change key type to
[]byte
in provider spec #585
Release date: 2023-07-04
This is the first stable release of the controller. From now on, this controller follows the Flux 2 release cadence and support pledge.
Starting with this version, the build, release and provenance portions of the Flux project supply chain provisionally meet SLSA Build Level 3.
This release comes with support for sending alerts to PagerDuty and Google Pub/Sub.
In addition, dependencies have been updated to their latest version, including an update of Kubernetes to v1.27.3.
For a comprehensive list of changes since v0.33.x
, please refer to the
changelog for v1.0.0-rc.1, v1.0.0-rc.2,
v1.0.0-rc.3 and `v1.0.0-rc.4.
Improvements:
- Add support for PagerDuty #527
- Add support for Google Pub/Sub #543
- Lift HTTP/S validation from Provider spec.address #565
- Improve error messages in Gitea notifier #556
- Make Gitea tests independent of 3rd-party service #558
- Align go.mod version with Kubernetes (Go 1.20) #558
- Update dependencies #563
- Update GCP dependencies #569
Fixes:
- Fix Alert
.spec.eventMetadata
documentation #541 - Fix
TestProviderReconciler_Reconcile/finalizes_suspended_object
to use patch instead of update #550
Release date: 2023-05-26
This release candidate comes with support for Kubernetes v1.27.
The Event
API has been modified to have a dedicated key for metadata
called
token
. The value of the token
key is meant to be defined on a per event
emitter basis for uniquely identifying the contents of the event payload.
This key if present, is included in calculating the unique key used for rate
limiting events.
Furthermore, the event attributes are prefixed with an identifier to avoid
collisions between different event attributes.
In addition, a bug in the event rate limiting key calculation logic which led
to the inconsideration of the revision specified in .metadata
of the event has
been fixed.
Lastly, the behavior of .spec.eventMetadata
has been modified such that if a
key present in the map already exists in the original event's metadata
, then
the key in the latter takes precedence and an error log is printed for visibility.
Improvements:
- Include eventv1.MetaTokenKey on event rate limiting key calculation #530
- Update dependencies and Kubernetes to 1.27.2 #532
- Remove the tini supervisor #533
- Prefix event key attributes with identifier #534
- Update workflows and enable dependabot #535
- build(deps): bump github/codeql-action from 2.3.3 to 2.3.4 #536
Fixes:
- Fix revision discarded on event rate limiting key calculation #517
- Fix Alert .spec.eventMetadata behavior #529
Release date: 2023-05-12
This release candidate comes with support for
adding custom metadata
to Flux events. A new field was added to the Alert v1beta2 API named
.spec.eventMetadata
that allows users to enrich the alerts with
information about the cluster name, region, environment, etc.
In addition, the controller dependencies have been updated to patch CVE-2023-1732 and the base image has been updated to Alpine 3.18.
Improvements:
- Add event metadata field to Alert spec #519
- Update Alpine to 3.18 #524
- build(deps): bump github.com/cloudflare/circl from 1.3.2 to 1.3.3 #525
Release date: 2023-05-09
This release candidate comes with performance improvements for Receivers
and removes the deprecated .status.url
field from the Receiver v1 API.
A new field was added to the Alert v1beta2 API named .spec.inclusionList
for
better control over events filtering.
In addition, the controller dependencies have been updated to their latest versions.
Improvements:
- Index receivers using webhook path as key #506
- Append the Alert summary to Azure DevOps genre field #514
- Add InclusionList to Alert CRD #515
- Update dependencies #520
- Improve event handler tests #521
- receiver/v1: Remove deprecated
.status.url
field #482
Release date: 2023-03-30
This release candidate promotes the Receiver API from v1beta2 to v1. The Receiver v1 API now supports triggering the reconciliation of multiple resources using match labels.
The Receiver
kind was promoted from v1beta2 to v1 (GA). All other kinds of the notification.toolkit.fluxcd.io group stay at version v1beta2.
The receivers.notification.toolkit.fluxcd.io CRD contains the following versions:
- v1 (storage version)
- v1beta2 (deprecated)
- v1beta1 (deprecated)
The Receiver
v1 API is backwards compatible with v1beta2.
To upgrade from v1beta2, after deploying the new CRD and controller, set apiVersion: notification.toolkit.fluxcd.io/v1
in the YAML files that
contain Receiver
definitions. Bumping the API version in manifests can be done gradually. It is advised to not delay this procedure as the beta
versions will be removed after 6 months.
Improvements:
- GA: Promote Receiver API to notification.toolkit.fluxcd.io/v1 #498
- support multiple resources in Receivers by using match labels #482
- docs: fixes to the Receiver documentation #495
Release date: 2023-03-08
This release updates to Go version the controller is build with to 1.20
,
and updates the dependencies to their latest versions.
In addition, klog
is now configured to log using the same logger as the rest
of the controller (providing a consistent log format).
Improvements:
Release date: 2023-02-28
This prerelease comes with a fix to the version of the ImageRepository API
when it is not specified in the Receiver spec, now defaulting to
image.toolkit.fluxcd.io/v1beta2
.
In addition, the controller dependencies have been updated to their latest versions.
Fixes:
- receiver: update default ImageRepository version #479
Improvements:
Release date: 2023-02-16
This prerelease adds support for parsing
RFC-0005
revision format. Similar to artifact Checksum
, the new Digest
metadata is
also removed from Alerts.
In addition, the controller dependencies have been updated to their latest versions.
Improvements:
Release date: 2023-02-01
This prerelease disables caching of Secrets and ConfigMaps to improve memory
usage. To opt-out from this behavior, start the controller with:
--feature-gates=CacheSecretsAndConfigMaps=true
.
In addition, the controller dependencies have been updated to Kubernetes v1.26.1 and controller-runtime v0.14.2. The controller base image has been updated to Alpine 3.17.
Improvements:
- docs: fix up typos in providers document and changelog #459
- Remove erroneous mention of wildcard in Receivers #462
- docs: fix secret name in example #463
- Set rate limiter option in test reconcilers #465
- Update dependencies #466
- build: Enable SBOM and SLSA Provenance #467
- Disable caching of Secrets and ConfigMaps #468
Release date: 2022-12-22
This prerelease comes with a fix for the Provider and Receiver
custom resources upgrade to v1beta2
.
Fixes:
- Remove interval default value from CRDs #457
Release date: 2022-12-21
This prerelease comes with a fix to prevent the controller from panicking
when the Kubernetes conversion webhook upgrades the Provider and Receiver
custom resources from v1beta1
to v1beta2
without setting the
default value for spec.interval
.
Fixes:
- Fix panic when upgrading to v1beta2 #455
Release date: 2022-12-20
This prerelease graduates the notification APIs to v1beta2
.
In addition, this version comes with support for
Gitea commit status updates.
After upgrading the controller to v0.30.0, you need to update the notification
Custom Resources in Git
by replacing notification.toolkit.fluxcd.io/v1beta1
with
notification.toolkit.fluxcd.io/v1beta2
in all YAML manifests.
- The
Alert.spec.summary
has a max length of 255 characters. - The
Provider.spec.address
andProvider.spec.proxy
have a max length of 2048 characters. - The
Receiver.status.url
was deprecated in favour ofReceiver.status.webhookPath
.
The new specifications for the v1beta2
API
have been written in a new format with the aim to be more valuable to a user.
Featuring separate sections with examples, and information on how to write
and work with them.
Notification API resources will now advertise more explicit Condition types,
provide Reconciling
and Stalled
Conditions where applicable for
better integration with kstatus
,
and record the Observed Generation on the Condition.
Starting with this version, the controller uses the Provider
cluster assigned UID
to compose a unique Git commit status ID to avoid name collisions
when multiple clusters write to the same repository.
Improvements:
- Refactor reconcilers and introduce v1beta2 API #435
- feat: add gitea notifier #451
Release date: 2022-12-01
This prerelease comes with a minor improvement in the receiver to use its own ServeMux instead of using the default global one.
Fixes:
- receiver: Use new ServeMux #448
Improvements:
- build: Fix cifuzz and improve fuzz tests' reliability #446
Release date: 2022-11-22
This prerelease comes with a change to the Event API, which is now declared
in the github.com/fluxcd/pkg/apis/event/v1beta1
package. For more information, refer to the updated Event API
documentation.
In addition, dependencies have been updated.
Fixes:
- Remove
nsswitch.conf
creation #439
Improvements:
- Refactor notifiers to use Flux Event v1beta1 API #442
- Update dependencies #442
- docs: update spec to reflect v1beta1 Event API #443
Release date: 2022-10-20
This prerelease comes with a new Alert Provider type named generic-hmac
for authenticating the webhook requests coming from notification-controller.
In addition, the controller dependencies have been updated to Kubernetes v1.25.3.
The golang.org/x/text
package was updated to v0.4.0 (fix for CVE-2022-32149).
Features:
- Add
generic-hmac
Provider #426
Improvements:
- Update dependencies #430
Release date: 2022-09-27
This prerelease comes with strict validation rules for API fields which define a
(time) duration. Effectively, this means values without a time unit (e.g. ms
,
s
, m
, h
) will now be rejected by the API server. To stimulate sane
configurations, the units ns
, us
and µs
can no longer be configured, nor
can h
be set for fields defining a timeout value.
In addition, the controller dependencies have been updated to Kubernetes controller-runtime v0.13.
Provider.spec.timeout
new validation pattern is"^([0-9]+(\\.[0-9]+)?(ms|s|m))+$"
Improvements:
- api: add custom validation for v1.Duration types #420
- Update dependencies #423
- Dockerfile: Build with Go 1.19 #424
- docs: Fix table with git commit status providers #421
Release date: 2022-09-12
This prerelease comes with with finalizers to properly record the reconciliation metrics for deleted resources. In addition, the controller dependencies have been updated to Kubernetes controller-runtime v0.12.
Improvements:
- Align controller logs to Kubernetes structured logging #412
- Add finalizers to the custom resources #416
- Add
.spec.timeout
to the Provider API #410 - Refactor Fuzzers based on Go native fuzzing #414
- Fuzz optimisations #413
Release date: 2022-08-29
This prerelease comes with panic recovery, to protect the controller from crashing when reconciliations lead to a crash.
In addition, the controller dependencies have been updated to Kubernetes v1.25.0.
Fixes:
- Fix context cancel defer for commit status updates #408
Improvements:
Release date: 2022-08-11
This prerelease comes with a fix to GitHub Container Registry webhook receivers.
Starting with this version, Flux Receivers
can be used to trigger OCIRepositories
reconciliation when pushing OCI artifacts to GHCR from GH Action.
Fixes:
- Remove code for parsing github payload #401
Improvements:
- Add flags to configure exponential back-off retry #399
Release date: 2022-08-08
This prerelease comes with support for sending alerts based on OCIRepository
events.
In addition, various dependencies have been updated to their latest versions.
Improvements:
- Add OCIRepository event source #396
- Update dependencies #397
- Add missing language to fenced code block #394
Release date: 2022-07-13
This prerelease comes with some minor improvements and updates dependencies to patch upstream CVEs.
Improvements:
- Force github.com/emicklei/go-restful to v2.16.0 #390
- Update flux types api versions #381
- Update Azure DevOps Go API #384
- Update dependencies #387
- Use masktoken pkg for redacting token #388
- build: Upgrade to Go 1.18 #389
Release date: 2022-05-27
This prerelease comes with support for triggering GitHub Actions workflows using the repository dispatch provider. For more information on how to configure this integration see the alerting provider docs.
Features:
- Add GitHub dispatch provider #369
Improvements:
- Better error messages for alert providers #375
- Add docs for Microsoft Teams #370
- Update dependencies #371 #373 #379
Release date: 2022-05-03
This prerelease comes with dependencies updates, and improvements to the BitBucket commit status notifications.
Improvements:
Release date: 2022-04-21
This prerelease updates the Go golang.org/x/crypto
dependency to latest to
please static security analysers (CVE-2022-27191).
Fixes:
- Update golang.org/x/crypto #367
Release date: 2022-04-19
This prerelease solves an issue with invalid UTF-8 characters while redacting tokens. Furthermore, dependencies have been updated to their latest versions.
Improvements:
- Update dependencies #364
Fixes:
- Return err on invalid UTF-8 character in token #361
Release date: 2022-03-30
This prerelease comes with updates to the Webex notification provider and its integration docs.
In addition, various dependencies have been updated to their latest versions.
Improvements:
- Update the webex notification provider and markdown #352
- Align version of dependencies when Fuzzing #354
- Update fluxcd/pkg/runtime to v0.13.4 #355
Release date: 2022-03-23
This prerelease comes with strict filtering of events metadata. Starting with this version, the metadata keys considered for alerting must be prefixed with the involved object API group.
Improvements:
- Filter event metadata based on the object group #350
Release date: 2022-03-21
This prerelease updates various dependencies to their latest versions.
The code base was refactored to align with fluxcd/pkg/runtime
v0.13 release.
Improvements:
- Update
pkg/runtime
andapis/meta
#345 - Update dependencies #346
- Cleanup metadata fields before alerting #347
Release date: 2022-03-15
This prerelease patches the Deployment manifest to set the
.spec.securityContext.fsGroup
, which may be required for some EKS setups as
reported in fluxcd/flux2#2537.
In addition, it also updates nhooyr.io/websocket
to v1.8.7
and
github.com/gin-gonic/gin
to v1.7.7
, to please static security analysers and
fix any warnings.
Improvements:
Release date: 2022-02-23
This prerelease patches the container image tag in the Deployment manifest that was previously missed in 0.22.1.
Release date: 2022-02-22
This prerelease comes with support for using basic auth when sending alerts to Grafana annotations API.
Improvements:
- Add basic auth support to Grafana provider #334
- Allow the proxy address to specified in the Kubernetes Secret from Alert
spec.secretRef
#331 - Switch to controller-runtime metadata client #330
- Update dependencies #333
Release date: 2022-02-16
This prerelease comes with support for sending alerts to Grafana annotations API.
In addition, the Alert API comes with an optional field spec.eventSources[].matchLabels
that allows selecting event sources based on labels.
Features:
Improvements:
- Update documentation for alert provider type #321
- Make username and channel field optional for Discord provider #324
Release date: 2022-01-28
This prerelease comes with security improvements for multi-tenant clusters.
Platform admins can disable cross-namespace references with the
--no-cross-namespace-refs=true
flag.
When this flag is set, alerts can only refer to event sources in the same namespace
as the alert object, preventing tenants from subscribing to another tenant's events.
Starting with this version, the controller deployment conforms to the Kubernetes restricted pod security standard:
- all Linux capabilities were dropped
- the root filesystem was set to read-only
- the seccomp profile was set to the runtime default
- run as non-root was enabled
- the user and group ID was set to 65534
Breaking changes:
- The use of new seccomp API requires Kubernetes 1.19.
- The controller container is now executed under 65534:65534 (userid:groupid). This change may break deployments that hard-coded the user ID of 'controller' in their PodSecurityPolicy.
Features:
- Pass headers to generic provider through secretRef #317
Improvements:
- Allow disabling cross-namespace event sources #319
- Drop capabilities, enable seccomp and enforce runAsNonRoot #313
- Publish SBOM and sign release artifacts #314
- Add fuzz testing for notifiers #306
- Add documentation for gitea #308
- Update development documentation #309
Fixes:
- Fix(Provider/Matrix): Load CA from CertSecretRef #318
- Fix the missing protocol for the first port in manager config #315
Release date: 2022-01-11
This prerelease comes with a fix for the Prometheus Alertmanager provider and
downgrades the fluxcd/pkg/apis/meta
package from v0.11.0-rc.3
to v0.10.2
which is required by flux2.
Fixes:
- Downgrade fluxcd/pkg/apis/meta to v0.10.2 #303
- Add timestamp as label for Prometheus Alertmanager #298
Release date: 2022-01-11
This prerelease comes with an update to the Kubernetes and controller-runtime dependencies to align them with the Kubernetes 1.23 release.
In addition, the controller is now built with Go 1.17 and Alpine 3.15.
Improvements:
- Update Go to v1.17 and controller-runtime to v0.11 #279
- Update dependencies (fix CVE-2021-43565) #301
- Update Dockerfile xx base and bump alpine to 3.15 #297
- Update docs for telegram #300
Release date: 2021-11-23
This prerelease introduces the Reconciling
and Stalled
Condition Types
to indicate if a resource is under reconciliation, or has failed to reach
a Ready==True
state. This is most beneficial to consumers making use of
kstatus
,
which uses the information to return early instead of timing out.
It introduces support for Slack apps bots. See the Provider spec for more information on how to get started.
Lastly, controller-runtime
has been updated to v0.10.2
, solving an
issue with rest_client_request_latency_seconds_.*
high cardinality
metrics.
Improvements:
- Add support for Slack app #245
- chore: Drop deprecated io/ioutil #277
- Use condition helpers in reconciler (kstatus compat) #282
- Update Alpine to v3.14 #285
- Update controller-runtime v0.10.2 #289
Fixes:
Release date: 2021-10-22
This prerelease comes with support for self-signed certificates when forwarding events to a TLS endpoint.
Fixes:
- Fixed missing setter for Forwarder CertPool #262
- Fix MSTeams certificates #257
- Use regex to find and replace token #271
Release date: 2021-10-19
This prerelease comes with support for sending alerts to Prometheus Alertmanager.
Features:
- Add alertmanager provider #258
Release date: 2021-10-13
This prerelease comes with a fix to the readiness status reporting of the notification custom resources.
Fixes:
- Set observed generation when recording status #261
Release date: 2021-10-08
This prerelease comes with support for sending alerts to Opsgenie.
Features:
- Add opsgenie provider #252
Fixes:
- Escape metadata string for Telegram notification #249
Release date: 2021-08-26
This prerelease comes with support for sending alerts to Telegram, Lark and Matrix.
Features:
- Add Telegram alerting provider #232
- Add Matrix alerting provider #233
- Add Lark alerting provider #236
Release date: 2021-08-05
This prerelease comes with extended support for Sentry such as: using channel configuration for Sentry environment to re-use the same DSN for multiple clusters, and sending info event as Sentry traces.
Improvements:
- providers/sentry: send traces #224
- providers/sentry: add environment support #223
- Request reconcile using patch instead of update #217
- Update dependencies #226
Fixes:
- providers/sentry: fix default HTTP Transport causing panic #221
Release date: 2021-06-08
This prerelease comes with an update to the Kubernetes and controller-runtime dependencies to align them with the Kubernetes 1.21 release.
Improvements:
- Update Kubernetes dependencies #210
- Add cert pool to Slack provider requests #207
- Make Slack channel optional #208
Release date: 2021-05-26
This prerelease comes with a bug fix to the parsing of revisions to make it accept branches with slashes.
Fixes:
- Fix revision parsing when branch contains slash #201
Release date: 2021-05-11
This prerelease comes with support for sending events to Azure Event Hub.
Features:
- Add support for Azure EventHub provider #191
Improvements:
Release date: 2021-04-21
This prerelease comes with support for sending alerts to HTTPS servers with self-signed TLS certs.
Features:
- Add self-signed cert to provider #184
Release date: 2021-03-26
This prerelease comes with support for sending alerts to Sentry.
Starting with this version, events are subject to rate limiting to
reduce the amount of duplicate alerts sent by notification-controller.
The interval of the rate limit is set by default to 5m
but can be configured with the --rate-limit-interval
command arg.
The event server exposes HTTP request metrics to track the amount of rate limited events. The following promql will get the rate at which requests are rate limited:
rate(gotk_event_http_request_duration_seconds_count{code="429"}[30s])
Features:
- Add support for Sentry provider #176
Improvements:
- Add rate limiter to event http servers #167
Release date: 2021-03-26
This is the eleventh MINOR prerelease.
This prerelease comes with support for sending alerts to Webex and for posting commit status updates to GitHub enterprise.
This prerelease comes with a breaking change: the leader election ID
was renamed from 4ae6d3b3.fluxcd.io
to
notification-controller-leader-election
.
This change should however not have a direct impact.
The suspended status of resources is now recorded to a
gotk_suspend_status
Prometheus gauge metric.
Features:
- Add support for Webex as an alert provider #168
- Add support for GitHub enterprise commit status #162
Improvements:
Fixes:
Release date: 2021-03-16
This is the tenth MINOR prerelease.
This prerelease comes with support for sending alerts to Google Chat and for triggering container image updates to Git using Azure Container Registry.
Features:
Improvements:
- Use controller-runtime structured logging #156
- Use unstructured client to annotate receiver targets #151
- Update runtime dependencies #157
Fixes:
Release date: 2021-02-24
This is the ninth MINOR prerelease.
This prerelease comes with a fix to the alerting exclusion list.
The Kubernetes custom resource definitions are packaged as a multi-doc YAML asset and published on the GitHub release page.
Improvements:
Fixes:
- Fix alerts regex filtering #144
Release date: 2021-02-12
This is the eight MINOR prerelease.
This prerelease comes with support for excluding messages form alerting using regular expressions.
Golang pprof
endpoints have been enabled on the metrics server,
making it easier to collect runtime information to debug performance issues.
Features:
- Implement regex exclusions for alerts #138
Improvements:
- Enable pprof endpoints on metrics server #136
Release date: 2021-01-26
This prerelease adds *Kind
string constants for the kind objects
exposed by the API to further normalise it to GitOps Toolkit standards.
Improvements
- Add kinds to API types #131
Release date: 2021-01-22
This is the seventh MINOR prerelease.
The Receiver
API gains a new webhook type called generic-hmac
,
that validates the caller legitimacy using HMAC signatures.
The Alert
API comes with support for image update notifications
and is now possible to trigger container image updates to Git
using Sonatype Nexus webhooks.
Two new argument flags are introduced to support configuring the QPS
(--kube-api-qps
) and burst (--kube-api-burst
) while communicating
with the Kubernetes API server.
The LocalObjectReference
from the Kubernetes core has been replaced
with our own, making Name
a required field. The impact of this should
be limited to direct API consumers only, as the field was already
required by controller logic.
Features:
Improvements:
- Add the object kind to notification messages #124
- Allow ImageUpdateAutomations in object refs #128
- Update fluxcd/pkg/runtime to v0.8.0 #129
Release date: 2021-01-19
This prerelease comes with support for triggering container image updates to Git using Quay and GCR webhooks.
The Kubernetes packages were updated to v1.20.2 and controller-runtime to v0.8.0.
Features:
Improvements:
- Update Kubernetes packages to v1.20.2 #119
Release date: 2021-01-14
This prerelease comes with support for triggering
container image updates to Git using webhook receiver and
fixes a regression bug introduced in v0.6.0
that caused
reconciliation request annotations to be ignored in certain scenarios.
Features:
- Trigger ImageRepository reconciliation with webhook receivers #110
- Implement DockerHub webhook receiver #112
Improvements:
- Upgrade runtime package to v0.6.2 #111
Release date: 2021-01-12
This is the sixth MINOR prerelease, upgrading the controller-runtime
dependencies to v0.7.0
.
The container image for ARMv7 and ARM64 that used to be published
separately as notification-controller:*-arm64
has been merged with
the AMD64 image.
Release date: 2020-12-10
This is the fifth MINOR prerelease. It comes with support for
customising the alert message with spec.summary
.
Improvements:
Fixes:
- Lookup ready receivers in all namespaces #96
- Add check for duplicate status to avoid spamming the same status #93
Release date: 2020-11-26
This is the fourth MINOR prerelease. It comes with support for Azure DevOps commit status updates.
Improvements:
Release date: 2020-11-20
This is the third MINOR prerelease. It introduces a breaking change to
the API package; the status condition type has changed to the type
introduced in Kubernetes API machinery v1.19.0
.
Improvements:
- Add support for sending a
Notification-Controller
HTTP header from the forward notifier #84 - Verify repository ID in Git notifiers #82
- Use subgroup in GitLab #80
Release date: 2020-11-09
This prerelease comes with support for Bitbucket commit status updates.
Improvements:
Release date: 2020-10-29
This is the second MINOR prerelease, it comes with breaking changes:
- the histogram metric
gotk_reconcile_duration
was renamed togotk_reconcile_duration_seconds
- the annotation
fluxcd.io/reconcileAt
was renamed toreconcile.fluxcd.io/requestedAt
Release date: 2020-10-19
This prerelease adds support for HTTP/S proxies when sending alerts.
An optional field called Proxy
was added to the Provider API.
Features:
- Add support for http(s) proxy when sending alerts #62
Release date: 2020-10-13
This prerelease comes with Prometheus instrumentation for the controller's resources.
For each kind, the controller exposes a gauge metric to track the Ready
condition status,
and a histogram with the reconciliation duration in seconds:
gotk_reconcile_condition{kind, name, namespace, status, type="Ready"}
gotk_reconcile_duration{kind, name, namespace}
Release date: 2020-09-30
This is the first MINOR prerelease, it promotes the
notification.toolkit.fluxcd.io
API to v1beta1
and removes support for v1alpha1
.
Going forward, changes to the API will be accompanied by a conversion mechanism. With this release the API becomes more stable, but while in beta phase there are no guarantees about backwards compatibility between beta releases.
Release date: 2020-09-22
This prerelease comes with support for publishing events
to GitLab commit status API.
The alerts and receivers were extended to support
S3 Bucket sources.
Container images for ARMv7 and ARMv8 are published to
ghcr.io/fluxcd/notification-controller-arm64
.
Release date: 2020-09-12
This prerelease comes with the option to watch for resources in the runtime namespace of the controller or at cluster level.
Release date: 2020-09-11
This prerelease makes the api
package available as
a dedicated versioned module.
Release date: 2020-09-02
This prerelease comes with support for publishing events to GitHub commit status API.
Release date: 2020-08-05
This prerelease comes with a fix to the Prometheus scraping endpoint.
Release date: 2020-07-31
This prerelease comes with a breaking change, the CRDs group
has been renamed to notification.toolkit.fluxcd.io
.
The dependency on source-controller
has been updated to v0.0.7
to
be able to work with source.toolkit.fluxcd.io
resources.
Release date: 2020-07-20
This prerelease drops support for Kubernetes <1.16.
The CRDs have been updated to apiextensions.k8s.io/v1
.
Release date: 2020-07-16
This prerelease comes with improvements to logging and fixes a bug preventing alerts to be dispatched for resources outside of the controller's namespace.
Release date: 2020-07-14
This prerelease allows alert rules to be reconciled outside of the controller's namespace.
Release date: 2020-07-13
This prerelease comes with improvements to logging. The default logging format is JSON and the timestamp format is ISO8601.
Release date: 2020-07-07
This prerelease comes with webhook receivers support. With the Receiver API you can define a webhook receiver (GitHub, GitLab, Bitbucket, Harbour, generic) that triggers reconciliation for a group of resources.
Release date: 2020-07-03
This beta release comes with wildcard support for defining alerts that target all resources of a particular kind in a namespace.
Release date: 2020-07-02
This alpha release comes with improvements to alerts delivering. The alert delivery method is at-most once with a timeout of 15 seconds. The controller performs automatic retries for connection errors and 500-range response code. If the webhook receiver returns an error, the controller will retry sending an alert for four times with an exponential backoff of maximum 30 seconds.
Release date: 2020-07-01
This is the first alpha release of notifications controller.