-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Problem
kdevops modules today consist of multiple components: Ansible playbooks, Ansible roles, Kconfig files, and Makefile files. However, there is no standardized or documented module structure, and modules place their files in inconsistent locations.
This creates confusion for adding or extending modules and/or automated tooling or AI that rely on predictiable patterns.
For example, the ansible_cfg module is formed by:
./playbooks/roles/ansible_cfg/*./playbooks/ansible_cfg.yml./kconfigs/Kconfig.ansible_cfg./Makefile
Another example:
./playbooks/build_qemu.yml./Makefile.build_qemu./playbooks/roles/build_qemukconfigs/Kconfig.libvirt
The lack of a well-defined structure makes it unclear what files constitute a module and where new module components should be placed.
Task
-
Review current kdevops module patterns and establish a new directory structure. Review
workflows/as well asscripts/,playbooks/andkconfigs/directories. Shall we keep/reorganize the way Kconfig menu is displayed? Do we need kdevops modules and submodules? e.g. libvirt module and largeio submodule? -
Define and document what a “kdevops module” is, including:
- Required components (Role, Playbook, Kconfig, Makefile fragment).
- Naming conventions.
- Directory structure.
- How output yaml export integrates with modules.
-
Create an official recommended directory structure for all modules.
Example structure (to be refined during design):
playbooks/<module>.yml
playbooks/roles/<module>/
kconfigs/Kconfig.<module>
makefiles/Makefile.<module> -
Audit all existing modules, map them to the new structure, and migrate them. Ensure documentation is updated to reflect the new module standard.