Skip to content

v0.1.0

Choose a tag to compare

@patrickleet patrickleet released this 25 Apr 04:51
· 13 commits to main since this release

v0.1.0 — initial release

ExternalDNS configured for Cloudflare, plus optional cert-manager DNS-01 ClusterIssuer integration and an ExternalSecrets-based DX for the Cloudflare API token.

What it does

  • ExternalDNS Helm Release configured with provider.name: cloudflare. The pod reads CF_API_TOKEN from a K8s Secret (default name cloudflare-api-token, key api-token).
  • cert-manager integration (spec.certManager.enabled: true, default): a Let's Encrypt DNS-01 ClusterIssuer wired to the Cloudflare API token Secret, plus a protection.crossplane.io.Usage that holds the external cert-manager Helm Release until the ClusterIssuer is deleted. This stack does not install cert-manager — pair with aws-cert-stack (or another install) when this is on.
  • ExternalSecrets DX (spec.externalSecrets.enabled: true): one user-supplied backend ref fans out to ExternalSecret resources in both the external-dns and cert-manager namespaces, keeping the same Secret name + key in each.

Install

```yaml
apiVersion: pkg.crossplane.io/v1
kind: Configuration
metadata:
name: cloudflare-dns-stack
spec:
package: ghcr.io/hops-ops/cloudflare-dns-stack:v0.1.0
```

Minimal claim

```yaml
apiVersion: cloudflare.hops.ops.com.ai/v1alpha1
kind: DNSStack
metadata:
name: dns
namespace: default
spec:
clusterName: my-cluster
domains:

See the README for the full configuration reference and the with-external-secrets / standard examples.