- Status: accepted
- Deciders: @jam01
- Date: 2020-11
How do we package multiple playbooks, plugins, and how do we distribute them when creating a customer's platform?
Designing pre-configured components and their extension points through Kustomizations is increasingly complex. Is there a way to simplify and make it more maintainable?
- Maintainability of the code
- Easier to add customer configurability of components
- Support for distribution
- Ansible Collection
We'll use Ansible Collection structure and packaging for our Ansible code. We'll refactor the platform from multiple layers of Kustomizations to be entirely driven by an Ansible Collection. Ansible is migrating all their re-usable artifacts to be Collections so that seems to be where all support and tooling is to be found, including distribution from a git repository. Moving the component configuration and extension points to Ansible makes it much easier to structure and maintain, as well as add points of extension.
- Higher maintainability as it's all Ansible
- Easier to add customer configurability as everything can be templated
- A bit more complexity