For more information on the overall KubeBuilder project, see the main branch.
This is the branch we use to build the "KubeBuilder testing tools" binaries, which consist of a copy of kubectl, kube-apiserver, and etcd for use in integration testing with envtest.
GCP Cloud Build watches this branch. On every push, it runs the pipeline defined in build/cloudbuild_tools.yaml once each with the following sets of configuration:
_GOARCH=amd64 _GOOS=darwin
_GOARCH=amd64 _GOOS=linux
_GOARCH=arm64 _GOOS=linux
_GOARCH=arm64 _GOOS=darwin
_GOARCH=ppc64le _GOOS=linux
_GOARCH=amd64 _GOOS=windows
(we may add more the in the future).
The pipline then collects or builds the relevant binaries, and publishes them to a GCS bucket.
Each platform has a Dockerfile in build/thirdparty to assist in the process:
-
For Linux, this involves simply downloading the canonical releases from the offically Kubernetes and etcd releases & taring them up.
-
For Darwin/Windows, since the official Kubernetes releases don't build the control plane, we instead build kube-apiserver ourselves, but use etcd & kubectl from official releases.
To update, simply update all references to the old Kubernetes & etcd versions across the pipeline YAML & Dockerfiles, then submit a PR against this branch.