cert-manager-webhook-porkbun
cert-manager ships no solver for Porkbun. This webhook adds one, so Let's Encrypt can answer DNS-01 challenges against your zones — the only challenge type that issues a wildcard.
helm repo add octabits https://octabits-io.github.io/cert-manager-webhook-porkbun
helm repo update
helm install cert-manager-webhook-porkbun octabits/cert-manager-webhook-porkbun \
--namespace cert-manager \
--set groupName=acme.example.com \
--set 'rbac.secretAccess.secretNames={porkbun-api-credentials}'
Also published as an OCI artifact at
oci://ghcr.io/octabits-io/charts/cert-manager-webhook-porkbun. Credentials,
the ClusterIssuer and Certificate examples, the solver options
and every chart value are in the
README.
The one that catches everybody: Porkbun disables API access per domain by default. Enable it under Domain Management → Details → API Access, or the API returns an error that never mentions the setting.
Upstream bound a ClusterRole granting get,watch,list on every Secret in
the cluster. Access here is a namespaced Role, get only, optionally
restricted to named Secrets.
A malformed response used to panic the pod, requests had no timeout at all, and API errors surfaced with Porkbun's message field stripped out. All fixed, each with a test.
The Porkbun API is addressed by registered domain, not by DNS zone. The solver derives one from the other using the public suffix list, so a challenge in a delegated sub-zone resolves correctly.
Distroless, uid 65532, read-only root filesystem, all capabilities dropped —
compatible with the restricted Pod Security Standard. Images are signed
with cosign and carry SBOM and provenance attestations.