Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release automation #5866

Open
2 tasks done
antoooks opened this issue Feb 18, 2025 · 2 comments
Open
2 tasks done

Release automation #5866

antoooks opened this issue Feb 18, 2025 · 2 comments
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.

Comments

@antoooks
Copy link
Contributor

antoooks commented Feb 18, 2025

Eschewed features

  • This issue is not requesting templating, unstuctured edits, build-time side-effects from args or env vars, or any other eschewed feature.

What would you like to have added?

Automated release process of Kustomize and its components

Why is this needed?

Releasing kustomize and it's component currently requires 2-3 hours of attended session with a lot of manual steps in between, making the release process slow and inefficient. On top of that, release officer also need to do some extra steps post-release such as unpinning the library versions, returning the branch to dev mode, making PRs, pushing docker image, etc.

Moreover, after the new release scheme, which will synchronise all component's version, the process of determining release size must be reviewed.

By introducing automation we can remove a lot of manual tasks and makes the release experience much smoother and more efficient.

Can you accomplish the motivating task without this feature, and if so, how?

Yes, release can still manually be done by following steps on releasing/README.md

What other solutions have you considered?

Release automation flow will be described as follows:

  1. Release officer will call a release script supplying the component name and release size. Release size not determined automatically due to the consideration that sometimes it needs human judgement to justify the release size.

For example ./release kyaml major

  1. Release script will (a) create a new branch in the format of release-{component}/vX.Y.Z , (b) pin the component version according to the release size supplied, (c) create release draft of that component

  2. Ideally it should notify the maintainers that release has been succeeded / failed. However due to limitation of the implementation we must rely on Github notification or manually check the workflow status

  3. Once release has been completed, release officer will check the release draft and publish them once it's ready.

Automation will be done via Github Workflow

Anything else we should know?

None

Feature ownership

  • I am interested in contributing this feature myself! 🎉
@antoooks antoooks added the kind/feature Categorizes issue or PR as related to a new feature. label Feb 18, 2025
@k8s-ci-robot k8s-ci-robot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Feb 18, 2025
@k8s-ci-robot
Copy link
Contributor

This issue is currently awaiting triage.

SIG CLI takes a lead on issue triage for this repo, but any Kubernetes member can accept issues by applying the triage/accepted label.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@antoooks
Copy link
Contributor Author

Please let me know your feedback on the plan /assign @koba1t

@koba1t koba1t self-assigned this Feb 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.
Projects
None yet
Development

No branches or pull requests

3 participants