Add release automation for api, kyaml, cmd/config, and kustomize CLI
Eschewed features
- [X] 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?
We need github action definitions for
- Releasing
apimodule - Releasing
kyamlmodule - Releasing
cmd/configmodule - Releasing kustomize CLI
- Notify release and test result to messaging channels (e.g. Slack)
Why is this needed?
- As part of release automation improvement https://github.com/kubernetes-sigs/kustomize/issues/3952
- We need to automate current release process to ensure stability and efficiency
- Reducing toil of releasing
Can you accomplish the motivating task without this feature, and if so, how?
Yes, by following the release documentation on releasing/README.md with several manual task. This task simply act as an improvement for current release process
What other solutions have you considered?
For releasing process, I have considered pure bash scripting as alternative. While it might give flexibility, it's more difficult maintain and less readable. Decided to use Github action instead considering it as current tools used for releasing and can integrate seamlessly with Github features.
For notification feature, I have discussed with the maintainer and we have decided to send the notifications to maintainers' email, considering creating Slack account will require additional wait for action from kubernetes' Slack maintainer. However this decision might change if Github action is not suitable for this feature.
Anything else we should know?
CI/CD design should follow CI/CD best practices, there is no single rule on what best practice is. But generally guides share common characteristics:
- CI/CD steps should be split into individual stages
- Automate as much as possible
- Operations are idempotent and retryable
- Enable roll back mechanism
- Enable manual mechanism
- Notify people for faster reaction, notification feature is more of a nice-to-have
- For more, refer to this page: https://resources.github.com/ci-cd/
I have discussed with the maintainers for the release design and there's a collaboration page as a reference. Please find it here
Feature ownership
- [X] I am interested in contributing this feature myself! 🎉
/triage accepted /assign @antoooks
This issue has not been updated in over 1 year, and should be re-triaged.
You can:
- Confirm that this issue is still relevant with
/triage accepted(org members only) - Close this issue with
/close
For more details on the triage process, see https://www.kubernetes.dev/docs/guide/issue-triage/
/remove-triage accepted
/triage accepted
This issue has not been updated in over 1 year, and should be re-triaged.
You can:
- Confirm that this issue is still relevant with
/triage accepted(org members only) - Close this issue with
/close
For more details on the triage process, see https://www.kubernetes.dev/docs/guide/issue-triage/
/remove-triage accepted
/triage accepted