Files
plugin-docker-buildx/README.md
T
unkin-agent b13a8cec78 Add CA-baked plugin-docker-buildx image + buildah CI
Bake the internal Vault-PKI CA into a rebuild of
woodpeckerci/plugin-docker-buildx so k8s buildx jobs can push to
artifactapi's docker-internal registry over TLS.

- Dockerfile: copy unkin-ca.crt into /etc/docker/certs.d/<registry>/ca.crt
  and the system trust store
- unkin-ca.crt: vault-ca-cert bundle (root + intermediate)
- .woodpecker/build.yaml: PR gate, buildah build-only
- .woodpecker/release.yaml: on v* tag, buildah build + credless push to
  docker-internal with --tls-verify=false (bootstrap)
2026-08-15 15:22:11 +10:00

31 lines
1.2 KiB
Markdown

# plugin-docker-buildx
A drop-in rebuild of `woodpeckerci/plugin-docker-buildx` with the internal
Vault-PKI CA baked in.
## Why
The stock `woodpeckerci/plugin-docker-buildx` image does not trust artifactapi's
internal CA, so k8s Woodpecker buildx jobs cannot push to
`artifactapi.k8s.syd1.au.unkin.net/docker-internal/*` — buildkit needs
`/etc/docker/certs.d/<registry>/ca.crt` inside the plugin container, and the k8s
backend has no way to inject it.
This image copies the `vault-ca-cert` bundle (root + intermediate) into that path
plus the system trust store, so pipelines can `settings.registry:
artifactapi.k8s.syd1.au.unkin.net` and push over TLS.
## Published as
`artifactapi.k8s.syd1.au.unkin.net/docker-internal/plugin-docker-buildx:<tag>` (and `:latest`)
## Bootstrap
This image is itself built and pushed by **buildah** (`.woodpecker/release.yaml`),
not by buildx, using `buildah push --tls-verify=false`. buildah is used precisely
because it sidesteps the buildx CA-trust problem that this image exists to fix —
its own push therefore cannot rely on that trust yet.
Once published, point Woodpecker docker-buildx steps at this image instead of the
upstream one to push to the docker-internal registry.