container-object-storage-interface-api icon indicating copy to clipboard operation
container-object-storage-interface-api copied to clipboard

set up new release tooling for controller/sidecar subrepos

Open BlaineEXE opened this issue 1 year ago • 5 comments

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.

BlaineEXE avatar Sep 10 '24 00:09 BlaineEXE

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

k8s-ci-robot avatar Sep 10 '24 00:09 k8s-ci-robot

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.

BlaineEXE avatar Sep 10 '24 00:09 BlaineEXE

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.

BlaineEXE avatar Sep 10 '24 18:09 BlaineEXE

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.

BlaineEXE avatar Sep 10 '24 18:09 BlaineEXE

[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

Needs approval from an approver in each of these files:
  • ~~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

k8s-ci-robot avatar Sep 27 '24 14:09 k8s-ci-robot