Skip to content

fix(cert-manager-config): make the Cloudflare ExternalSecret key configurable - #52

Merged
danielgines merged 1 commit into
mainfrom
fix/cert-manager-cloudflare-secret-key
Aug 11, 2026
Merged

fix(cert-manager-config): make the Cloudflare ExternalSecret key configurable#52
danielgines merged 1 commit into
mainfrom
fix/cert-manager-cloudflare-secret-key

Conversation

@danielgines

Copy link
Copy Markdown
Member

Problem

cluster-issuer-cloudflare.yaml already had a secret-store branch — but its remoteRef.key was hardcoded:

remoteRef:
  key: cloudflare-api-token

That is a flat Azure Key Vault name. On AWS the external-secrets IRSA role is scoped to estabilis/<deploymentId>/*, so a bare key never resolves.

Net effect: the branch was unusable on AWS, leaving those deployments on the direct-injection path — which writes the token in cleartext onto the Application spec. An ArgoCD Application is a CRD, so it sits outside the EKS resources: ["secrets"] envelope encryption, and it is readable in the ArgoCD UI/API and the repo-server cache.

Change

remoteRef.key now reads kvSecrets.cloudflareApiToken, defaulting to the previous literal. platform-root passes the prefixed Secrets Manager path on AWS — companion PR Estabilis/estabilis-platform#200.

Verified by rendering

Input remoteRef.key
default (Azure) "cloudflare-api-token" — unchanged
kvSecrets.cloudflareApiToken=estabilis/demo/platform-cloudflare-api-token the full path
global.cloudflareApiToken set no ExternalSecret — direct path still wins

CHANGELOG entry added under [Unreleased]; no version bump here, per CONTRIBUTING the release moves it and bumps workload-bootstrap/ in its own commit.

🤖 Generated with Claude Code

…igurable

`cluster-issuer-cloudflare.yaml` already had a secret-store branch, but its
`remoteRef.key` was hardcoded to `cloudflare-api-token` — a flat Azure Key
Vault name. On AWS the external-secrets IRSA role is scoped to
`estabilis/<deploymentId>/*`, so a bare key never resolves.

The effect was that the branch was unusable on AWS, leaving those deployments
on the direct-injection path, which writes the token in cleartext onto the
Application spec — an ArgoCD Application is a CRD, so it sits outside the EKS
`resources: ["secrets"]` envelope encryption, and it is readable in the ArgoCD
UI/API and the repo-server cache.

The key now reads from `kvSecrets.cloudflareApiToken`, defaulting to the
previous literal so Azure renders byte-identically. platform-root passes the
prefixed Secrets Manager path on AWS (companion PR in estabilis-platform).

Rendered: default -> "cloudflare-api-token"; with kvSecrets -> the full path;
with a direct token -> no ExternalSecret, direct path still wins.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VefhWrLXRQq6sEVgTTuXk5
@danielgines
danielgines merged commit 5f2a6a4 into main Aug 11, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant