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

Proposal: split out roles into individual repositories, with versioning, and published to Ansible Galaxy #814

Open
adborden opened this issue May 18, 2020 · 2 comments

Comments

@adborden
Copy link
Contributor

Hey folks,

I'd like to propose that instead of having a single repo that contains all of sovereign, we split each role into its own repository with semver versioning and publishing to Ansible Galaxy. The main Sovereign repo would then become a template repository that users would fork and customize. Users would then receive updates by updating the individual rules (ansible-galaxy install) rather than git pull.

What this will give us:

  • Stability for users
  • Faster integration of PRs
  • Better customization

Stability

Users can upgrade roles individually. When following semver, major version bumps signal breaking changes so users don't need to 🤞 every time they git pull.

Faster integration of PRs

Since each role contains only code for that role, there's fewer tests (manual or automated) that need to run when a change happens. This should make it easier to reivew and test Pull Requests.

Better customization

If roles are published to Ansible Galaxy, the Sovereign roles become not much different than any other Ansible roles and it's pretty striaght forward to mix and match Sovereign roles with other Ansible roles.

@drybjed
Copy link

drybjed commented May 20, 2020

Why not convert the project to be an Ansible Collection? Individual Ansible roles will be phased out in the future when more and more features will be moved into Ansible Collections. These different methods of using Ansible are not really compatible with each other, so I would look into that direction instead.

@adborden
Copy link
Contributor Author

Good point. In terms of this proposal, I think that would mean creating a separate repo for the sovereign collection and the main repo would still become a template repo containing getting started docs, requirements.yml, and the site.yml playbook. Does that sound right?

An Ansible collection would still be a monolithic repo, so we lose some of the benefits I'm after of having less to test when reviewing PRs (not that it's a bad thing).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants