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

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.

S
Description
Woodpecker plugin-docker-buildx image with the internal Vault-PKI CA baked in (trusts artifactapi)
Readme 36 KiB
Languages
Dockerfile 100%