-
Notifications
You must be signed in to change notification settings - Fork 17
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
Refactor Ansible repository to use collection #441
Comments
Several topics are aimed to be treated by the proposition (Ansible collection) such as :
To be able to give a thoughtful opinion on the subject, some questions need to be answered :
|
I will try to answer the questions:
The common part is:
Actually, in the debian-main branch it have the following distribution of playbooks codes:
SEAPATH maintainer's would need to ensure that common branch would work for reference design. In case of conflict, they could decide to move some common part into specific playbooks. The adding of a new reference approach would be decided by TSC voting members after demonstrating a tested and maintained solution in a context of digital substation.
It's up for discussion.
The gains are already described in "Benefit to SEAPATH" section. About the risk, the main change is that it will no longer possible for a SEAPATH variant to implement only a part of SEAPATH features. As a result, if a SEAPATH variant becomes no more compliant with the common part, it will remain locked to an earlier version of SEAPATH.
The one shot effort is difficult to evaluate. The challenge of the long-term effort is to keep each SEAPATH variant compliant with the changes made in common. The effort required will depend on the modification, bearing in mind that Ansible already provides an abstraction layer. As far as I'm concerned, given SEAPATH's progress, I don't see any big changes coming that would require a great deal of effort on these parts.
You can find all the public Ansible collections here: https://galaxy.ansible.com/ui/collections/
I think we'll be able to answer this question once the proof of concept has been completed. |
Abstract
Currently, the Ansible is a monolithic repository containing Ansible's playbooks to perform various action such as the first initialization, maintenance and VM installation. It also contains some CI-specific files.
Each SEAPATH variant (Yocto or Debian) has different git branches.
There is currently no plan to provide users or hardware manufacturer specific Ansible files.
The goal of this changes proposal is to solve those lacks using Ansible collections.
Ansible collections are a distribution format for Ansible content that can include playbooks, roles, modules, and plugins. Collection can be placed in their all repository and be fetched by Ansible-galaxy only if needed. It can be used in SEAPATH to separate all Ansible files by theme (e.g. setup, vm_management, Debian specific) and offer a way for hardware manufacturers and users to add specific features.
Current status
Detailed Description
Ansible collection mechanism is described here: https://docs.ansible.com/ansible/latest/collections_guide/index.html.
Ansible collection brings the following features:
We propose to create the following collections:
The Ansible repository will only contain examples and documentation.
We also suggest creating an example of ansible-requirements.yaml which make the glue between collections.
With these modifications, the setup flow changes to respect this order:
Benefit to SEAPATH
Works to be done
The text was updated successfully, but these errors were encountered: