Skip to content

Releases: containeroo/cloudflare-operator

v1.8.0

21 Nov 14:31
0c2c793

Choose a tag to compare

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

21 Nov 07:26
a1c1617

Choose a tag to compare

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

17 Sep 17:06
5cbcc1d

Choose a tag to compare

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 ignoredRecords is now available in Zones to allow you to ignore certain DNS records from being pruned

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

13 Sep 07:44
08b2ffd

Choose a tag to compare

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/comment Ingress annotation for DNSRecord comment 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

  • fix(ingress): add missing comment annotation support by @rxbn in #438

Full Changelog: v1.6.0...v1.6.1

v1.6.0

12 Sep 12:56
45b7aca

Choose a tag to compare

Summary

This release of cloudflare-operator introduces a new field for DNSRecords to allow setting comments on DNS records.

New features

  • New field comment is now available in DNSRecords to 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

01 May 13:01
10b78fb

Choose a tag to compare

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-timeout to configure the HTTP client timeout for dynamic IPs (default: 10 seconds)
  • New flag retry-interval to configure the interval at which failed operations are retried (default: 10 seconds)
  • New flag default-reconcile-interval to configure the default interval for reconciling resources (default: 5 minutes)
  • The operator now automatically deletes DNSRecord resources 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

01 May 12:35
bf34cfe

Choose a tag to compare

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-timeout to configure the HTTP client timeout for dynamic IPs (default: 10 seconds)
  • New flag retry-interval to configure the interval at which failed operations are retried (default: 10 seconds)
  • New flag default-reconcile-interval to configure the default interval for reconciling resources (default: 5 minutes)
  • The operator now automatically deletes DNSRecord resources 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

20 Feb 20:00
1d5278c

Choose a tag to compare

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 DNSRecord fails because it no longer exists.
  • Fixed object deletion when a DNSRecord object 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

17 Feb 13:11
3912ed3

Choose a tag to compare

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 IPSource returned an error. Previously, this caused the IP object to fail even when another source was successful.
  • Fixed an issue with whitespace trimming in IP validation. The response from an IPSource is now trimmed before validation, as some responses contain leading or trailing whitespace.
  • Fixed a regression that caused exponential backoff when reconciling dynamic IP objects.
  • Fixed DNSRecord creation 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

16 Feb 17:59
2ee35f6

Choose a tag to compare

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.lastObservedIP from the IP object.

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