Just jotting down some take-aways from the follow up zoom call with the team:
Some changes to the proposal based on feedback and discussion
-
unstable
should be the foyer for package promotion to other release channels liketesting
etc.
Next steps:
- Double check Nexus’ support for RPM package management
- Primarily to get a preview of the future cost of supporting that ecosystem
- Stand up an “alpha” draft backoffice infrastructure for Nexus plus a dedicated GitLab runner (for uploads to nexus) on Digital Ocean
- Should be infrastructure-as-code, driven from “source” in a GitLab repo
- First attempt will be using a k8s based deployment and DO’s managed k8s
- Create an “alpha” draft of a toolkit for package builds and uploads that package maintainers can use in their respective package’s source repositories
- Host it in its “source” in its own GitLab repo
- Some of the toolkit will be a mix of
- gitlab-cicd.yml dot files that can be included into other ci/cd yaml configs to setup custom steps etc.
- docker images with packaging tooling baked in, for local package builds as well as identical workflows within ci/cd jobs
- A selection of tailored packaging and package upload tools/scripts
- Create a strawman package project that uses the above, and acts as a living example of the “alpha” edition of the methodology
- A docs-as-code repo describing the “alpha” edition of the release management / engineering “architecture”, conventions, and assumptions. user guide / design guide to the release engineering
- Invite package maintainers to start using this alpha ecosystem in parallel with the legacy release management approaches, and evolve the alpha ecosystem based on the feedback from those experiences
- As part of this, look at how to reduce some the ergonomic headaches with things like cross-project integration testing
- Also how/where to wire in automated integration/system test harnesses