Releases: containeroo/cloudflare-operator
v1.10.0
v1.9.1
Summary
This patch release fixes the release container build so the operator binary receives the tagged version at link time.
Fixes
- Docker builds now consume the
LDFLAGSbuild argument passed by GoReleaser, so startup logs report the release tag instead ofdev.
Full Changelog: v1.9.0...v1.9.1
v1.9.0
Summary
- Adds Gateway API TLSRoute support for generating Cloudflare DNSRecords from TLSRoute hostnames.
- Keeps TLSRoute controlled by the existing
--enable-gateway-apiflag and starts Gateway API route controllers based on installed CRDs. - Includes reconcile stability/account routing work, CI/config maintenance, and dependency/tooling updates since
v1.8.0.
Features
- TLSRoute reconciliation for Gateway API
TLSRouteresources, using the same Cloudflare DNS annotations as Ingress and HTTPRoute. - Explicit account references for DNSRecords and related reconcile behavior hardening.
Improvements
- Gateway API controller startup now skips unsupported route CRDs when at least one supported Gateway route kind is installed.
- Expanded Gateway API samples, RBAC, and e2e coverage for TLSRoute.
- CI, Renovate, Go, and release tooling maintenance.
Dependencies
- Gateway API to v1.5.1.
- controller-runtime to v0.24.0 and Kubernetes packages to v0.35.4.
- fluxcd runtime to v0.106.0.
- ginkgo to v2.28.3 and gomega to v1.40.0.
What's Changed
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.92.0 by @renovate[bot] in #465
- fix(deps): update module sigs.k8s.io/gateway-api to v1.4.1 by @renovate[bot] in #464
- fix(deps): update module github.com/itchyny/gojq to v0.12.18 by @renovate[bot] in #463
- chore(deps): update actions/cache action to v5 by @renovate[bot] in #471
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.27.5 by @renovate[bot] in #466
- fix(deps): update kubernetes packages to v0.35.0 by @renovate[bot] in #467
- fix(deps): update module github.com/onsi/gomega to v1.39.0 by @renovate[bot] in #469
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.96.0 by @renovate[bot] in #468
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.23.0 - autoclosed by @renovate[bot] in #470
- chore(config): migrate Renovate config by @renovate[bot] in #477
- chore(deps): update dependency operator-framework/operator-sdk to v1.42.0 by @renovate[bot] in #476
- chore(deps): update dependency operator-framework/operator-registry to v1.62.0 by @renovate[bot] in #475
- chore(deps): update dependency kubernetes-sigs/kind to v0.31.0 by @renovate[bot] in #474
- chore(deps): update dependency kubernetes-sigs/controller-tools to v0.20.0 by @renovate[bot] in #473
- chore(deps): update dependency golangci/golangci-lint to v2.8.0 by @renovate[bot] in #472
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.23.1 by @renovate[bot] in #478
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.97.0 by @renovate[bot] in #479
- fix(deps): update module github.com/onsi/gomega to v1.39.1 by @renovate[bot] in #480
- chore(deps): update dependency operator-framework/operator-registry to v1.63.0 by @renovate[bot] in #482
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.101.0 by @renovate[bot] in #483
- fix(deps): update kubernetes packages to v0.35.1 by @renovate[bot] in #484
- chore(deps): update dependency golangci/golangci-lint to v2.9.0 by @renovate[bot] in #485
- chore(deps): update golang docker tag to v1.26 by @renovate[bot] in #486
- chore(deps): update dependency kubernetes-sigs/controller-tools to v0.20.1 by @renovate[bot] in #487
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.28.1 - autoclosed by @renovate[bot] in #481
- chore(deps): update dependency golangci/golangci-lint to v2.10.1 by @renovate[bot] in #489
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.102.0 by @renovate[bot] in #490
- chore(deps): update goreleaser/goreleaser-action action to v7 by @renovate[bot] in #491
- fix(deps): update module sigs.k8s.io/gateway-api to v1.5.0 by @renovate[bot] in #492
- fix(deps): update kubernetes packages to v0.35.2 by @renovate[bot] in #493
- chore(deps): update dependency operator-framework/operator-registry to v1.64.0 by @renovate[bot] in #494
- chore(deps): update docker/setup-qemu-action action to v4 by @renovate[bot] in #495
- chore(deps): update docker/login-action action to v4 by @renovate[bot] in #496
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.23.3 by @renovate[bot] in #498
- chore(deps): update docker/setup-buildx-action action to v4 - autoclosed by @renovate[bot] in #497
- chore(deps): update dependency golangci/golangci-lint to v2.11.1 by @renovate[bot] in #499
- chore(deps): update dependency golangci/golangci-lint to v2.11.2 by @renovate[bot] in #500
- chore(deps): update dependency operator-framework/operator-sdk to v1.42.1 by @renovate[bot] in #501
- chore(deps): update dependency golangci/golangci-lint to v2.11.3 by @renovate[bot] in #502
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.103.0 by @renovate[bot] in #503
- fix(deps): update module sigs.k8s.io/gateway-api to v1.5.1 by @renovate[bot] in #504
- chore(deps): update dependency operator-framework/operator-sdk to v1.42.2 by @renovate[bot] in #506
- fix(deps): update kubernetes monorepo to v0.35.3 by @renovate[bot] in #505
- chore(deps): update dependency golangci/golangci-lint to v2.11.4 by @renovate[bot] in #507
- chore(deps): update dependency operator-framework/operator-registry to v1.65.0 by @renovate[bot] in #508
- fix(deps): update module github.com/itchyny/gojq to v0.12.19 by @renovate[bot] in #509
- [codex] Stabilize reconcile behavior and add account routing by @rxbn in #510
- fix(deps): update kubernetes monorepo to v0.35.4 by @renovate[bot] in #511
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.104.0 by @renovate[bot] in #512
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.105.0 by @renovate[bot] in #514
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.28.2 - autoclosed by @renovate[bot] in #515
- chore(deps): update dependency operator-framework/operator-registry to v1.66.0 by @renovate[bot] in #516
- chore(deps): update dependency golangci/golangci-lint to v2.12.1 by @renovate[bot] in #520
- chore(deps): update dependency operator-framework/operator-registry to v1.67.0 by @renovate[bot] in #521
- fix(deps): update module sigs.k8s.io/controller-runtime to v0.24.0 by @renovate[bot] in #519
- fix(deps): update module github.com/onsi/gomega to v1.40.0 by @renovate[bot] in #518
- fix(deps): update module github.com/onsi/ginkgo/v2 to v2.28.3 by @renovate[bot] in #517
- chore(deps): update dependency kubernetes-sigs/controller-tools to v0.21.0 by @renovate[bot] in #525
- chore(deps): update dependency golangci/golangci-lint to v2.12.2 by @renovate[bot] in #524
- fix(deps): update module github.com/fluxcd/pkg/runtime to v0.106.0 by @renovate[bot] in #526
- [codex] Add Gateway API TLSRoute support by @rxbn in https://github...
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