Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
roadmap [2016/03/12 12:40]
ypid Spelling, wiki syntax, added github issue ref.
roadmap [2016/05/28 15:24] (current)
drybjed
Line 1: Line 1:
 +====== Project roadmap ======
  
 +This is a rough list of things that are being worked on or planned to do in the DebOps playbooks, roles and scripts. Not sure about the structure of this page yet, so these are things you should probably be aware of if you plan to use DebOps.
 +
 +More changes will be added in the future as I remember them. :-)
 +
 +===== Project-wide changes =====
 +
 +=== Move hard role dependencies to debops-playbooks ===
 +
 +This allows different roles like ''​debops.nginx''​ to be used with external Ansible roles. Hard dependencies like '​debops.ferm',​ databases, programming languages are moved to the playbooks.
 +
 +This shouldn'​t result in any serious problems if you use ''​debops-playbooks''​. If you use your own set of playbooks, you might need to track the changes and add missing roles to your plays as needed.
 +
 +Refs: [[https://​github.com/​debops/​debops-playbooks/​issues/​192|RFC]]
 +
 +=== Move all role variables from '​vars/'​ to '​defaults/'​ ===
 +
 +The old roles have some of their variables in ''​vars/​main.yml''​ instead of ''​defaults/​main.yml'',​ for various reasons. This makes their modification through the inventory impossible. These variables should be moved to the ''​defaults/​main.yml''​ file.
 +
 +=== Convert variables to have more distinct namespace ===
 +
 +This is done so that interaction between roles is easier to notice, because there are longer and longer variable names. This is more important when roles are interacting.
 +
 +For example:
 +
 +<code yaml>
 +iscsi_unattended_upgrades_dependent_blacklist:​ [ '​some-package'​ ]
 +unattended_upgrades_dependent_blacklist:​ '{{ iscsi_unattended_upgrades_dependent_blacklist }}'
 +</​code>​
 +
 +becomes:
 +
 +<code yaml>
 +iscsi__unattended_upgrades__dependent_blacklist:​ [ '​some-package'​ ]
 +unattended_upgrades__dependent_blacklist:​ '{{ iscsi__unattended_upgrades__dependent_blacklist }}'
 +</​code>​
 +
 +This is a long-term task and will result in some roles being broken for a bit when variable names are synchronized between them. New roles should be written with this variable namespacing in mind.
 +
 +=== Roles should provide a way to change the package list they install ===
 +
 +Each role should use, preferably, at least one list of APT packages that are installed as a "​base"​ and a separate list for additional packages, if needed. That way users can specify any packages that are missing at the correct time in the playbook run.
 +
 +===== Other changes =====
 +
 +=== Move the mailing list to Mailman ===
 +
 +[[https://​groups.io/​g/​debops|Current DebOps mailing list]] is not very convenient, especially that it lacks support for monospace font and the server strips out GPG signatures (apparently). The mailing list could be moved to project'​s own Mailman instance, allowing multiple mailing lists and better support for GPG. It will also provide a readily available "proof of concept"​ host that uses multiple DebOps roles for its configuration.
 +
 +=== Create a design document? ===
 +
 +It might be beneficial to create a general design document which would contain information about what is the overall direction of the project, what is the scope of various Ansible roles, etc.
Print/export