Release/adopt the Onionspray Ansible role
Description
The Mediapart role is a good starting point to build a general Ansible recipe for managing Onionspray.
This ticket is about forking and improving it towards making the official role.
Tasks
-
Fork the Mediapart role into the tpo/onion-services/ansible
subgroup. -
Create a 2.0.0
branch to integrate all changes, so it's easy to run/test/review? -
Improve the existing codebase (one feature/fix per branch/merge request): -
Fix references in the documentation: zoug/onionspray-ansible-role!1 (merged). -
Setup CI (with scheduled builds) using Molecule: zoug/onionspray-ansible-role!2 (merged). -
Add an onionspray_enable_service
, useful not to start the Systemd service on CI: zoug/onionspray-ansible-role!3 (closed). -
Fix: provide a default or a validation rule foronionspray_proxied_domain
, so it's not empty. Maybe not worth doing this. Instead, it's better to focus on supporting multiple projects/sites in the same Onionspray instance. -
Split the tasks into separate "subsystems", so it's easier to integrate features and fixes (!1).
-
-
Add new features: -
Make onionspray_user_homedir
more configurable. -
Incorporate the Project 145 use case into Mediapart role (split this is smaller tasks if needed), including: -
Support for multiple sites/projects in the same Onionspray instances. -
Support for custom procedures for storing and uploading keys and certificates. -
Porting other features from our old (and internal) Onionspray Ansible role.
-
-
Improve the Onionspray config template to support additional options. Task related with tpo/onion-services/onionspray#44.
-
-
Management: -
Improve the role documentation. -
Create a migration guide from 1.0 to 2.0.0, including breaking changes. -
Setup monthly CI jobs. -
Create merge requests in the original Mediapart role. -
Ping the contact point about this fork, since they're the Mediapart role's mantainers, pointing to the changes and inviting to be a co-maintainer in the new, official role repository. -
Remove the forking relationship between the official role and the original role, should be in Project settings > General > Advanced
-
-
Launch: -
Add other needed files ( meta/main.yml
,CODE_OF_CONDUCT.md
,LICENSE.spdx
,.github/*
etc). -
Make a release. -
List it in the deployment tools doc. -
Consider inclusion at the Ansible Galaxy. Check onionprobe-role#3 (closed) for a sample procedure.
-
Time estimation
- Complexity: medium (3 days)
- Uncertainty: high (x2)
- Reference (adapted)
Edited by Silvio Rhatto