This series is trying to consolidate the number of config files we currently
recognize under ~/.config/lcitool to a single global YAML config file. Thanks
to this effort we can expose more seetings than we previously could which will
come handy in terms of generating cloudinit images for OpenStack.
Patches 1-4 (ACKed)
Since RFC:
- replaced TOML with YAML which simplified some aspects of the code, thanks
Andrea
- instead of hardcoding the default values, the config within the repo is used
as a template and overriden with user-selected options
Since v1:
- uncommented the mandatory options in the default template YAML config so that
we know about all the supported keys which is useful for validating the user
config
- removed guests/group_vars/all/install.yaml in patch 11 (which I forgot in v1)
- added checks for value types we get from the config
- use yaml.safe_load instead of yaml.load
- added code snippet to delete keys we don't recognize so as not to introduce a
security issue, because we essentially just take the config and pass it to
ansible, we don't want users to use to re-define some of Ansible's variables
- added the last patch just to demonstrate a number of test cases I used as a
proof for correctness of this revision (feel free to add more cases), but
this is not the right series to add pytest support into lcitool
Erik Skultety (13):
requirements: Introduce a requirements.txt file
lcitool: Decrease the indent when creating a tempdir for initrd
injection
lcitool: Prefer tempfile's native wrappers over low level primitives
lcitool: Use a temporary JSON file to pass extra variables
config: Introduce a new global config.yaml configuration file
lcitool: Introduce methods to load and validate the YAML config
lcitool: Update the config values with internal playbook settings
lcitool: Drop the get_flavor() method
lcitool: Drop the get_root_password_file() method
lcitool: Drop the gitlab-related getter methods
config: Move the virt-install settings from install.yml to the config
guests: README: Document the existence and usage of config.yaml
DO NOT MERGE: Demonstrate functionality with pytest unit tests
guests/README.markdown | 18 +-
guests/config.yaml | 42 +++++
guests/group_vars/all/install.yml | 11 --
guests/{lcitool => lcitool.py} | 209 +++++++++++-----------
guests/playbooks/build/main.yml | 2 +-
guests/playbooks/update/main.yml | 6 +-
guests/playbooks/update/tasks/gitlab.yml | 4 +-
guests/playbooks/update/tasks/kludges.yml | 2 +-
guests/playbooks/update/tasks/users.yml | 42 ++---
guests/requirements.txt | 4 +
guests/test_config.py | 165 +++++++++++++++++
11 files changed, 353 insertions(+), 152 deletions(-)
create mode 100644 guests/config.yaml
delete mode 100644 guests/group_vars/all/install.yml
rename guests/{lcitool => lcitool.py} (88%)
create mode 100644 guests/requirements.txt
create mode 100644 guests/test_config.py
--
2.25.3