set up new release tooling for controller/sidecar subrepos
Set up new cloudbuild tooling for the controller/sidecar subrepo layout.
Controller and sidecar are both always built pushed to staging with the current git tag (e.g., v20240905-v0.1.0-58-g80979e8) as well as 'latest'.
Controller pre-release staging build can be initiated by creating a github release (or tag) in the form cloudbuild/TAG.
Similarly, sidecar pre-release staging build can be initiated by creating a github release (or tag) in the form sidecar/TAG.
Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all
I think this is ready, but I want to test at least the basics of this locally in the gcr.io/k8s-testimages/gcb-docker-gcloud:v20240718-5ef92b5c36 image.
I've done the best testing I can do of this at the current moment. Once monorepo is merged to master, the cloudbuild jobs set up for sig-storage projects will start working.
The cloudbuild is only initiated for master, release-*, and semver tags: https://github.com/kubernetes/test-infra/blob/7422cc54466be151982954c115d03d3413045fe3/config/jobs/image-pushing/k8s-staging-sig-storage.yaml#L701-L709
This config comes from a template script, so I think we'll just have to wait. Nothing will be pushed to a release repo without manual action, so it should be safe.
Instead of a make target, I opted for hack/cloudbuild.sh. The cloudbuild environment is pretty particular just for cloudbuild, and it doesn't make sense to me to make a make target for it. A build-and-release make target would imply some kind of support, and it seems best to me if we leave it up to any downstream builders to tailor their tooling for their unique environment. In my experience, downstream builders usually roll their own anyway, sometimes making use of make primitives, which we are doing for cloudbuild using make build.
[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: BlaineEXE, shanduur
The full list of commands accepted by this bot can be found here.
The pull request process is described here
- ~~OWNERS~~ [BlaineEXE,shanduur]
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment