Releases: containeroo/cloudflare-operator
v1.8.0
Summary
- Adds opt-in Gateway API HTTPRoute support for generating Cloudflare DNSRecords, sharing the same annotations and logic as Ingress.
- Updates Helm chart, RBAC, samples, docs, and tests to enable Gateway API via a dedicated flag/value.
Features
- HTTPRoute reconciliation enabled with "--enable-gateway-api" (requires Gateway API CRDs), using a shared DNS host reconciler.
- Helm value "gatewayAPI.enabled" to append the flag and include HTTPRoute RBAC; sample manifests and docs for Gateway API.
Improvements
- DRYed DNS host reconciliation shared between Ingress and HTTPRoute controllers.
- Gateway API quickstart docs and sample HTTPRoute manifest added; e2e coverage for HTTPRoute flows.
Dependencies
- github.com/fluxcd/pkg/runtime to v0.91.0.
- actions/checkout to v6.
- golangci/golangci-lint-action to v9.
What's Changed
- feat: add support for http routes by @rxbn in #461
- chore(deps): update golangci/golangci-lint-action action to v9 by @app/renovate in #454
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.91.0 by @app/renovate in #457
- chore(deps): update actions/checkout action to v6 by @app/renovate in #459
Full Changelog: v1.7.1...v1.8.0
v1.7.1
Summary
This patch release fixes zone detection for DNSRecords so nested sub-zones resolve correctly and includes dependency updates.
Fixes
- DNSRecords now pick the longest matching Cloudflare zone, resolving nested domains like
tst.example.com(Fixes #458).
Improvements
- Updated controller-runtime, fluxcd runtime, ginkgo, golang.org/x/net, and GitHub CodeQL action to the latest patch levels.
What's Changed
- fix(zone): fix zone matching for nested domains by @rxbn in #460
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.89.0 by @app/renovate in #449
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.22.3 by @app/renovate in #448
- fix(deps): update module golang.org/x/net to v0.46.0 by @app/renovate in #450
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.27.2 by @app/renovate in #452
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.26.0 by @app/renovate in #447
- chore(deps): update github/codeql-action action to v4 by @app/renovate in #451
Full Changelog: v1.7.0...v1.7.1
v1.7.0
Summary
This release of cloudflare-operator introduces a new field for Zones to allow setting ignored DNS records.
Important Upgrade Note: To ensure that the default values for ignoredRecords are applied correctly, please first apply the latest CRDs and only then update cloudflare-operator.
New features
- New field
ignoredRecordsis now available inZonesto allow you to ignore certain DNS records from being pruned- Please check out the documentation to learn more.
Improvements
- Updated Go module dependencies for improved security and compatibility.
If you have any questions, feel free to reach out via GitHub Discussions.
If you encounter any issues, please open an issue!
What's Changed
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.85.0 by @renovate[bot] in #440
- feat(zone): implement dynamic ignored records by @rxbn in #442
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.86.0 by @renovate[bot] in #441
Full Changelog: v1.6.1...v1.7.0
v1.6.1
Summary
This release of cloudflare-operator fixes an oversight, where DNSRecord comments were not supported by Ingress annotations.
Bug fixes
- Added missing
cloudflare-operator.io/commentIngress annotation forDNSRecordcomment support.
If you have any questions, feel free to reach out via GitHub Discussions.
If you encounter any issues, please open an issue!
What's Changed
Full Changelog: v1.6.0...v1.6.1
v1.6.0
Summary
This release of cloudflare-operator introduces a new field for DNSRecords to allow setting comments on DNS records.
New features
- New field
commentis now available inDNSRecordsto support Cloudflares DNS record comment feature
Improvements
- Updated Go module dependencies for improved security and compatibility.
If you have any questions, feel free to reach out via GitHub Discussions.
If you encounter any issues, please open an issue!
What's Changed
- fix(deps): update kubernetes packages to v0.33.4 by @renovate[bot] in #412
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.80.0 by @renovate[bot] in #413
- chore(deps): update golangci/golangci-lint-action action to v8 by @renovate[bot] in #417
- fix(deps): update module golang.org/x/net to v0.43.0 by @renovate[bot] in #418
- fix(deps): update module github.com/prometheus/client_golang to v1.23.0 by @renovate[bot] in #421
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.25.1 by @renovate[bot] in #425
- fix(deps): update module github.com/onsi/gomega to v1.38.1 by @renovate[bot] in #420
- chore(deps): update actions/checkout action to v5 by @renovate[bot] in #423
- feat(dns): add support for dns record comments by @rxbn in #435
- chore(deps): update golang docker tag to v1.25 by @renovate[bot] in #424
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.22.1 by @renovate[bot] in #419
- fix(deps): update module github.com/onsi/gomega to v1.38.2 by @renovate[bot] in #426
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.84.0 by @renovate[bot] in #429
- chore(deps): update actions/setup-go action to v6 by @renovate[bot] in #431
- fix(deps): update module golang.org/x/net to v0.44.0 by @renovate[bot] in #436
- fix(deps): update module github.com/cloudflare/cloudflare-go to v0.116.0 by @renovate[bot] in #433
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.25.3 by @renovate[bot] in #428
Full Changelog: v1.5.1...v1.6.0
v1.5.1
This is a re-release of v1.5.0 to address an oversight where the version displayed at operator startup was not updated.
Summary
This release of cloudflare-operator introduces new flags for enhanced configuration, improves reliability, and addresses several issues related to DNS record management and controller behavior.
New features
- New flag
ip-reconciler-http-client-timeoutto configure the HTTP client timeout for dynamic IPs (default: 10 seconds) - New flag
retry-intervalto configure the interval at which failed operations are retried (default: 10 seconds) - New flag
default-reconcile-intervalto configure the default interval for reconciling resources (default: 5 minutes) - The operator now automatically deletes
DNSRecordresources when Ingress annotations are removed, ensuring proper cleanup. - Zone pruning now ignores certain TXT records (e.g., Let's Encrypt and Cloudflare Email Routing DKIM) to prevent accidental deletion of important records.
Bug Fixes
- Fixed Zone failures when Cloudflare Email Routing is enabled by ignoring DKIM TXT records during pruning.
- Fixed an issue where Zone objects could become stuck in a "NotReady" state unless the operator was restarted.
- Fixed Ingress-to-DNSRecord reconciliation to ensure DNSRecords are deleted when annotations are removed.
Improvements
- Improved self-healing by retrying reconciliation after transient or expected errors, reducing the need for manual intervention.
- Enhanced status condition handling for more accurate reporting of resource readiness.
- Updated Go module dependencies for improved security and compatibility.
- Refactored code for better maintainability and consistency.
If you have any questions, feel free to reach out via GitHub Discussions.
If you encounter any issues, please open an issue!
What's Changed
- fix(zone): ignore cloudflare email routing dkim txt record by @rxbn in #405
- refactor: rename variables by @rxbn in #406
- fix(deps): update module github.com/onsi/gomega to v1.36.3 by @renovate in #404
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.20.4 by @renovate in #401
- fix(deps): update kubernetes packages to v0.32.3 by @renovate in #402
- fix(deps): update module github.com/prometheus/client_golang to v1.21.1 by @renovate in #398
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.58.0 by @renovate in #396
- fix(deps): update module golang.org/x/net to v0.38.0 by @renovate in #399
- chore(deps): update golangci/golangci-lint-action action to v7 by @renovate in #407
- fix(deps): update module github.com/prometheus/client_golang to v1.22.0 by @renovate in #411
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.23.4 by @renovate in #409
- fix(deps): update module golang.org/x/net to v0.39.0 by @renovate in #410
- fix(deps): update module github.com/onsi/gomega to v1.37.0 by @renovate in #408
- fix(ingress): delete orphaned dns records by @rxbn in #414
- fix: retry failures by @rxbn in #397
Full Changelog: v1.4.3...v1.5.1
v1.5.0
Summary
This release of cloudflare-operator introduces new flags for enhanced configuration, improves reliability, and addresses several issues related to DNS record management and controller behavior.
New features
- New flag
ip-reconciler-http-client-timeoutto configure the HTTP client timeout for dynamic IPs (default: 10 seconds) - New flag
retry-intervalto configure the interval at which failed operations are retried (default: 10 seconds) - New flag
default-reconcile-intervalto configure the default interval for reconciling resources (default: 5 minutes) - The operator now automatically deletes
DNSRecordresources when Ingress annotations are removed, ensuring proper cleanup. - Zone pruning now ignores certain TXT records (e.g., Let's Encrypt and Cloudflare Email Routing DKIM) to prevent accidental deletion of important records.
Bug Fixes
- Fixed Zone failures when Cloudflare Email Routing is enabled by ignoring DKIM TXT records during pruning.
- Fixed an issue where Zone objects could become stuck in a "NotReady" state unless the operator was restarted.
- Fixed Ingress-to-DNSRecord reconciliation to ensure DNSRecords are deleted when annotations are removed.
Improvements
- Improved self-healing by retrying reconciliation after transient or expected errors, reducing the need for manual intervention.
- Enhanced status condition handling for more accurate reporting of resource readiness.
- Updated Go module dependencies for improved security and compatibility.
- Refactored code for better maintainability and consistency.
If you have any questions, feel free to reach out via GitHub Discussions.
If you encounter any issues, please open an issue!
What's Changed
- fix(zone): ignore cloudflare email routing dkim txt record by @rxbn in #405
- refactor: rename variables by @rxbn in #406
- fix(deps): update module github.com/onsi/gomega to v1.36.3 by @renovate in #404
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.20.4 by @renovate in #401
- fix(deps): update kubernetes packages to v0.32.3 by @renovate in #402
- fix(deps): update module github.com/prometheus/client_golang to v1.21.1 by @renovate in #398
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.58.0 by @renovate in #396
- fix(deps): update module golang.org/x/net to v0.38.0 by @renovate in #399
- chore(deps): update golangci/golangci-lint-action action to v7 by @renovate in #407
- fix(deps): update module github.com/prometheus/client_golang to v1.22.0 by @renovate in #411
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.23.4 by @renovate in #409
- fix(deps): update module golang.org/x/net to v0.39.0 by @renovate in #410
- fix(deps): update module github.com/onsi/gomega to v1.37.0 by @renovate in #408
- fix(ingress): delete orphaned dns records by @rxbn in #414
- fix: retry failures by @rxbn in #397
Full Changelog: v1.4.3...v1.5.0
v1.4.3
Summary
This release of cloudflare-operator is a maintenance update that improves reliability and fixes multiple issues.
Bug Fixes
- Fixed behavior when Zone prune is enabled and deleting a
DNSRecordfails because it no longer exists. - Fixed object deletion when a
DNSRecordobject has no record ID. - Fixed issues with existing DNS record adoption to ensure proper handling of already-present records.
Improvements
- Fixed unnecessary reconciliations by filtering for relevant events, reducing redundant updates.
- Added test cases to improve coverage and prevent regressions.
- Improved error messages for certain failure scenarios to enhance debugging clarity.
If you have any questions, feel free to reach out via GitHub Discussions.
If you encounter any issues, please open an issue!
What's Changed
- fix(deps): update module github.com/prometheus/client_golang to v1.21.0 by @renovate in #393
- fix: use predicates to filter events by @rxbn in #394
Full Changelog: v1.4.2...v1.4.3
v1.4.2
Summary
This release of cloudflare-operator is a maintenance update that addresses regressions introduced in the previous release.
Bug Fixes
- Fixed an issue with error handling when an
IPSourcereturned an error. Previously, this caused theIPobject to fail even when another source was successful. - Fixed an issue with whitespace trimming in IP validation. The response from an
IPSourceis now trimmed before validation, as some responses contain leading or trailing whitespace. - Fixed a regression that caused exponential backoff when reconciling dynamic
IPobjects. - Fixed
DNSRecordcreation for Ingress objects with wildcard hosts.
If you have any questions, feel free to reach out via GitHub Discussions.
If you encounter any issues, please open an issue!
What's Changed
Full Changelog: v1.4.1...v1.4.2
v1.4.1
Summary
This release of cloudflare-operator is primarily a maintenance update. However, we have significantly cleaned up the code, fixed some bugs, and improved performance.
Bug Fixes
- Fixed an issue that prevented existing DNS records from being correctly adopted by cloudflare-operator.
Other Improvements
- Optimized and significantly improved reconciliation handling.
- DNS records created by Ingress objects are now automatically recreated if deleted.
- Updated dependencies.
Other Changes
- Built with Go 1.24.
- Removed
status.lastObservedIPfrom theIPobject.
Parts of this refactoring were heavily inspired by Flux. We would like to thank the Flux maintainers for not only their great product but also for inspiring us to make cloudflare-operator even better!
If you have any questions, feel free to reach out via GitHub Discussions.
If you encounter any issues, please open an issue!
What's Changed
- fix(deps): update module golang.org/x/net to v0.35.0 by @renovate in #384
- refactor controllers by @rxbn in #385
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.20.2 by @renovate in #388
- fix(deps): update kubernetes packages to v0.32.2 by @renovate in #387
Full Changelog: v1.4.0...v1.4.1