cluster-api-provider-aws icon indicating copy to clipboard operation
cluster-api-provider-aws copied to clipboard

Add workflow for regular (nightly or weekly) releases

Open nrb opened this issue 1 year ago • 9 comments
trafficstars

#4748 automated releases with GoReleaser. We can build on this configuration by making regular releases via another workflow. These could be nightly or weekly, depending on CI availability.

This gives us more regular build signal, and versions that users can test out.

CAPV has weekly automated releases (that don't seem to get published), as does upstream CAPI.

These will need to be generated as pre-release GitHub releases to prevent clusterctl picking them up. So #4927 will need to be fixed first.

nrb avatar Apr 23 '24 15:04 nrb

/triage accepted /priority important-longterm /area release

nrb avatar Apr 23 '24 15:04 nrb

One thing that could be tricky here is solving where the container images associated with the release land. We likely will not be able to use kpromo on them, since that will require manual PR approvals.

Another challenge will be cleaning up the images; I don't think we want to keep all of them especially if there are nightly releases. We'll have to decide on how long we'll keep a nightly or weekly around once cut.

nrb avatar Apr 23 '24 15:04 nrb

+1

We will also need to figure out whether we want to add them as actual draft releases in the Release section of the Repo, or if we can deal with this differently. Also if we end up with doing draft releases, we would probably want to clean these up regularly too.

I would be interested in understanding how CAPV and upstream CAPI deals with this at the moment.

Maybe @sbueringer @chrischdi @fabriziopandini can provide some more details on how the process looks like there.

damdo avatar Apr 23 '24 15:04 damdo

We don't do actual releases. The GitHub action is just there to ensure the make target keeps working.

What we do though is publishing nightly manifests & images to GCS

sbueringer avatar Apr 23 '24 17:04 sbueringer

Which is also something that CAPA seems to be doing, or at least trying :D

https://github.com/kubernetes/test-infra/blob/ab1fa006a7950afb4ce54f7c2e9bc79b34672ebc/config/jobs/image-pushing/k8s-staging-cluster-api.yaml#L473 https://prow.k8s.io/view/gs/kubernetes-jenkins/logs/cluster-api-provider-aws-push-images-nightly/1782680957447311360

sbueringer avatar Apr 23 '24 17:04 sbueringer

Looked at the log of the jobs: https://storage.googleapis.com/kubernetes-jenkins/logs/cluster-api-provider-aws-push-images-nightly/1782680957447311360/artifacts/build.log

Looks pretty good already. I would just recommend to change the location of the manifests. See: https://github.com/kubernetes-sigs/cluster-api/pull/10489 (we just did the same for CAPV)

I'll mention it in core CAPI office hours tomorrow, if you have some questions that you want to ask directly there.

sbueringer avatar Apr 23 '24 17:04 sbueringer

@sbueringer I see, I didn't know that, thanks a lot!

As you suggested I opened: https://github.com/kubernetes-sigs/cluster-api-provider-aws/pull/4952 to move to the new bucket.

I will open a separate PR to improve the docs on how to use nightlies.

Thanks again!

damdo avatar Apr 24 '24 12:04 damdo

See https://github.com/kubernetes-sigs/cluster-api/pull/10521 also as we work towards this.

nrb avatar Apr 29 '24 14:04 nrb

@nrb I think #4952 should take care of both nightly and other branches (releases, main) manifests. Let's try and get that one merge, and we can iterate if that needs more work.

damdo avatar Apr 30 '24 14:04 damdo