From 22b4342300c3fdb2e016d604e561f55074552d7c Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Wed, 9 Jul 2025 02:03:32 +0200 Subject: [PATCH] Implemented schema/main.yml und config/main.yml file --- cli/generate_applications.py | 4 ++-- cli/generate_playbook.py | 2 +- cli/utils/manager/inventory.py | 4 ++-- filter_plugins/load_configuration.py | 10 +++++----- .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 roles/service-rdbms-mariadb/vars/README.md | 2 +- .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml.j2 => config/main.yml.j2} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../web-app-gitea/{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 roles/web-app-lam/{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../web-app-mailu/{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 roles/web-app-pgadmin/tasks/main.yml | 2 +- .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../web-app-taiga/{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{meta/schema.yml => schema/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml => config/main.yml} | 0 .../{vars/configuration.yml.j2 => config/main.yml.j2} | 0 .../web-app/{meta/schema.yml.j2 => schema/main.yml.j2} | 0 .../test_configuration_database_dependency.py | 4 ++-- tests/integration/test_configuration_non_empty.py | 6 +++--- .../integration/test_csp_configuration_consistency.py | 4 ++-- tests/integration/test_deprecated_version_key.py | 8 ++++---- tests/integration/test_docker_images_configuration.py | 8 ++++---- tests/integration/test_oauth2_acl_mutual_exclusive.py | 2 +- tests/integration/test_oauth2_proxy_ports.py | 6 +++--- tests/unit/cli/test_create_credentials.py | 9 +++++---- .../cli/test_generate_applications_defaults_users.py | 3 ++- tests/unit/cli/test_generate_default_applications.py | 3 ++- tests/unit/cli/test_inventory_manager.py | 8 ++++---- tests/unit/filter_plugins/test_load_configuration.py | 8 ++++---- 114 files changed, 48 insertions(+), 45 deletions(-) rename roles/desktop-browser-firefox/{vars/configuration.yml => config/main.yml} (100%) rename roles/desktop-gnome/{vars/configuration.yml => config/main.yml} (100%) rename roles/desktop-libreoffice/{vars/configuration.yml => config/main.yml} (100%) rename roles/service-openldap/{vars/configuration.yml => config/main.yml} (100%) rename roles/service-openldap/{meta/schema.yml => schema/main.yml} (100%) rename roles/service-rdbms-mariadb/{vars/configuration.yml => config/main.yml} (100%) rename roles/service-rdbms-mariadb/{meta/schema.yml => schema/main.yml} (100%) rename roles/service-rdbms-postgres/{vars/configuration.yml => config/main.yml} (100%) rename roles/service-rdbms-postgres/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-akaunting/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-akaunting/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-attendize/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-attendize/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-baserow/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-baserow/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-bigbluebutton/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-bigbluebutton/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-bluesky/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-bluesky/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-collabora/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-coturn/{vars/configuration.yml.j2 => config/main.yml.j2} (100%) rename roles/web-app-discourse/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-discourse/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-elk/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-espocrm/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-espocrm/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-friendica/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-friendica/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-funkwhale/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-funkwhale/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-gitea/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-gitea/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-gitlab/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-gitlab/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-jenkins/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-joomla/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-joomla/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-keycloak/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-keycloak/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-lam/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-lam/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-libretranslate/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-libretranslate/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-listmonk/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-listmonk/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-mailu/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-mailu/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-mastodon/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-mastodon/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-matomo/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-matomo/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-matrix/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-matrix/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-mediawiki/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-mobilizon/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-mobilizon/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-moodle/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-moodle/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-mybb/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-nextcloud/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-nextcloud/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-oauth2-proxy/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-openproject/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-openproject/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-peertube/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-peertube/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-pgadmin/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-pgadmin/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-phpldapadmin/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-phpldapadmin/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-phpmyadmin/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-phpmyadmin/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-pixelfed/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-pixelfed/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-portfolio/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-presentation/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-pretix/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-pretix/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-roulette-wheel/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-simpleicons/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-snipe-it/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-snipe-it/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-sphinx/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-syncope/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-taiga/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-taiga/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-wordpress/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-wordpress/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-app-xmpp/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-yourls/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-app-yourls/{meta/schema.yml => schema/main.yml} (100%) rename roles/web-service-assets/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-service-files/{vars/configuration.yml => config/main.yml} (100%) rename roles/web-service-html/{vars/configuration.yml => config/main.yml} (100%) rename templates/roles/web-app/{vars/configuration.yml.j2 => config/main.yml.j2} (100%) rename templates/roles/web-app/{meta/schema.yml.j2 => schema/main.yml.j2} (100%) diff --git a/cli/generate_applications.py b/cli/generate_applications.py index 8a8ac97c..0c13aaab 100644 --- a/cli/generate_applications.py +++ b/cli/generate_applications.py @@ -47,7 +47,7 @@ def main(): for role_dir in sorted(roles_dir.iterdir()): role_name = role_dir.name vars_main = role_dir / "vars" / "main.yml" - config_file = role_dir / "vars" / "configuration.yml" + config_file = role_dir / "config" / "main.yml" if not vars_main.exists(): print(f"[!] Skipping {role_name}: vars/main.yml missing") @@ -68,7 +68,7 @@ def main(): continue if not config_file.exists(): - print(f"[!] Skipping {role_name}: vars/configuration.yml missing") + print(f"[!] Skipping {role_name}: config/main.yml missing") continue config_data = load_yaml_file(config_file) diff --git a/cli/generate_playbook.py b/cli/generate_playbook.py index bb5079ad..426a86fb 100644 --- a/cli/generate_playbook.py +++ b/cli/generate_playbook.py @@ -21,7 +21,7 @@ def load_run_after(meta_file): def load_application_id(role_path): """Load the application_id from the vars/main.yml of the role.""" - vars_file = os.path.join(role_path, 'vars', 'main.yml') + vars_file = os.path.join(role_path, 'main', 'main.yml') if os.path.exists(vars_file): with open(vars_file, 'r') as f: data = yaml.safe_load(f) or {} diff --git a/cli/utils/manager/inventory.py b/cli/utils/manager/inventory.py index acc96781..1803d11f 100644 --- a/cli/utils/manager/inventory.py +++ b/cli/utils/manager/inventory.py @@ -17,7 +17,7 @@ class InventoryManager: self.vault_pw = vault_pw self.overrides = overrides self.inventory = YamlHandler.load_yaml(inventory_path) - self.schema = YamlHandler.load_yaml(role_path / "meta" / "schema.yml") + self.schema = YamlHandler.load_yaml(role_path / "schema" / "main.yml") self.app_id = self.load_application_id(role_path) self.vault_handler = VaultHandler(vault_pw) @@ -38,7 +38,7 @@ class InventoryManager: target = apps.setdefault(self.app_id, {}) # Load the data from vars/main.yml - vars_file = self.role_path / "vars" / "configuration.yml" + vars_file = self.role_path / "config" / "main.yml" data = YamlHandler.load_yaml(vars_file) # Check if 'central-database' is enabled in the features section of data diff --git a/filter_plugins/load_configuration.py b/filter_plugins/load_configuration.py index 78c9ddb9..38213092 100644 --- a/filter_plugins/load_configuration.py +++ b/filter_plugins/load_configuration.py @@ -30,10 +30,10 @@ def load_configuration(application_id, key): except Exception: md = {} if md.get('application_id') == application_id: - cf = os.path.join(roles_dir, role, 'vars', 'configuration.yml') + cf = os.path.join(roles_dir, role, "config" , "main.yml") if not os.path.exists(cf): raise AnsibleFilterError( - f"Role '{role}' declares '{application_id}' but missing configuration.yml" + f"Role '{role}' declares '{application_id}' but missing config/main.yml" ) config_path = cf break @@ -41,7 +41,7 @@ def load_configuration(application_id, key): # 2) fallback nested if config_path is None: for role in os.listdir(roles_dir): - cf = os.path.join(roles_dir, role, 'vars', 'configuration.yml') + cf = os.path.join(roles_dir, role, "config" , "main.yml") if not os.path.exists(cf): continue try: @@ -55,7 +55,7 @@ def load_configuration(application_id, key): # 3) fallback flat if config_path is None: for role in os.listdir(roles_dir): - cf = os.path.join(roles_dir, role, 'vars', 'configuration.yml') + cf = os.path.join(roles_dir, role, "config" , "main.yml") if not os.path.exists(cf): continue try: @@ -74,7 +74,7 @@ def load_configuration(application_id, key): try: parsed = yaml.safe_load(open(config_path)) or {} except Exception as e: - raise AnsibleFilterError(f"Error loading configuration.yml at {config_path}: {e}") + raise AnsibleFilterError(f"Error loading config/main.yml at {config_path}: {e}") # detect nested vs flat is_nested = isinstance(parsed, dict) and (application_id in parsed) diff --git a/roles/desktop-browser-firefox/vars/configuration.yml b/roles/desktop-browser-firefox/config/main.yml similarity index 100% rename from roles/desktop-browser-firefox/vars/configuration.yml rename to roles/desktop-browser-firefox/config/main.yml diff --git a/roles/desktop-gnome/vars/configuration.yml b/roles/desktop-gnome/config/main.yml similarity index 100% rename from roles/desktop-gnome/vars/configuration.yml rename to roles/desktop-gnome/config/main.yml diff --git a/roles/desktop-libreoffice/vars/configuration.yml b/roles/desktop-libreoffice/config/main.yml similarity index 100% rename from roles/desktop-libreoffice/vars/configuration.yml rename to roles/desktop-libreoffice/config/main.yml diff --git a/roles/service-openldap/vars/configuration.yml b/roles/service-openldap/config/main.yml similarity index 100% rename from roles/service-openldap/vars/configuration.yml rename to roles/service-openldap/config/main.yml diff --git a/roles/service-openldap/meta/schema.yml b/roles/service-openldap/schema/main.yml similarity index 100% rename from roles/service-openldap/meta/schema.yml rename to roles/service-openldap/schema/main.yml diff --git a/roles/service-rdbms-mariadb/vars/configuration.yml b/roles/service-rdbms-mariadb/config/main.yml similarity index 100% rename from roles/service-rdbms-mariadb/vars/configuration.yml rename to roles/service-rdbms-mariadb/config/main.yml diff --git a/roles/service-rdbms-mariadb/meta/schema.yml b/roles/service-rdbms-mariadb/schema/main.yml similarity index 100% rename from roles/service-rdbms-mariadb/meta/schema.yml rename to roles/service-rdbms-mariadb/schema/main.yml diff --git a/roles/service-rdbms-mariadb/vars/README.md b/roles/service-rdbms-mariadb/vars/README.md index 745c71c6..8ed70335 100644 --- a/roles/service-rdbms-mariadb/vars/README.md +++ b/roles/service-rdbms-mariadb/vars/README.md @@ -6,7 +6,7 @@ This directory contains variable definition files for the `service-rdbms-mariadb ## files and their purpose -### 1. `configuration.yml` +### 1. `config/main.yml` Contains configuration values that determine which Docker image version to use and what hostname the container will be registered under. diff --git a/roles/service-rdbms-postgres/vars/configuration.yml b/roles/service-rdbms-postgres/config/main.yml similarity index 100% rename from roles/service-rdbms-postgres/vars/configuration.yml rename to roles/service-rdbms-postgres/config/main.yml diff --git a/roles/service-rdbms-postgres/meta/schema.yml b/roles/service-rdbms-postgres/schema/main.yml similarity index 100% rename from roles/service-rdbms-postgres/meta/schema.yml rename to roles/service-rdbms-postgres/schema/main.yml diff --git a/roles/web-app-akaunting/vars/configuration.yml b/roles/web-app-akaunting/config/main.yml similarity index 100% rename from roles/web-app-akaunting/vars/configuration.yml rename to roles/web-app-akaunting/config/main.yml diff --git a/roles/web-app-akaunting/meta/schema.yml b/roles/web-app-akaunting/schema/main.yml similarity index 100% rename from roles/web-app-akaunting/meta/schema.yml rename to roles/web-app-akaunting/schema/main.yml diff --git a/roles/web-app-attendize/vars/configuration.yml b/roles/web-app-attendize/config/main.yml similarity index 100% rename from roles/web-app-attendize/vars/configuration.yml rename to roles/web-app-attendize/config/main.yml diff --git a/roles/web-app-attendize/meta/schema.yml b/roles/web-app-attendize/schema/main.yml similarity index 100% rename from roles/web-app-attendize/meta/schema.yml rename to roles/web-app-attendize/schema/main.yml diff --git a/roles/web-app-baserow/vars/configuration.yml b/roles/web-app-baserow/config/main.yml similarity index 100% rename from roles/web-app-baserow/vars/configuration.yml rename to roles/web-app-baserow/config/main.yml diff --git a/roles/web-app-baserow/meta/schema.yml b/roles/web-app-baserow/schema/main.yml similarity index 100% rename from roles/web-app-baserow/meta/schema.yml rename to roles/web-app-baserow/schema/main.yml diff --git a/roles/web-app-bigbluebutton/vars/configuration.yml b/roles/web-app-bigbluebutton/config/main.yml similarity index 100% rename from roles/web-app-bigbluebutton/vars/configuration.yml rename to roles/web-app-bigbluebutton/config/main.yml diff --git a/roles/web-app-bigbluebutton/meta/schema.yml b/roles/web-app-bigbluebutton/schema/main.yml similarity index 100% rename from roles/web-app-bigbluebutton/meta/schema.yml rename to roles/web-app-bigbluebutton/schema/main.yml diff --git a/roles/web-app-bluesky/vars/configuration.yml b/roles/web-app-bluesky/config/main.yml similarity index 100% rename from roles/web-app-bluesky/vars/configuration.yml rename to roles/web-app-bluesky/config/main.yml diff --git a/roles/web-app-bluesky/meta/schema.yml b/roles/web-app-bluesky/schema/main.yml similarity index 100% rename from roles/web-app-bluesky/meta/schema.yml rename to roles/web-app-bluesky/schema/main.yml diff --git a/roles/web-app-collabora/vars/configuration.yml b/roles/web-app-collabora/config/main.yml similarity index 100% rename from roles/web-app-collabora/vars/configuration.yml rename to roles/web-app-collabora/config/main.yml diff --git a/roles/web-app-coturn/vars/configuration.yml.j2 b/roles/web-app-coturn/config/main.yml.j2 similarity index 100% rename from roles/web-app-coturn/vars/configuration.yml.j2 rename to roles/web-app-coturn/config/main.yml.j2 diff --git a/roles/web-app-discourse/vars/configuration.yml b/roles/web-app-discourse/config/main.yml similarity index 100% rename from roles/web-app-discourse/vars/configuration.yml rename to roles/web-app-discourse/config/main.yml diff --git a/roles/web-app-discourse/meta/schema.yml b/roles/web-app-discourse/schema/main.yml similarity index 100% rename from roles/web-app-discourse/meta/schema.yml rename to roles/web-app-discourse/schema/main.yml diff --git a/roles/web-app-elk/vars/configuration.yml b/roles/web-app-elk/config/main.yml similarity index 100% rename from roles/web-app-elk/vars/configuration.yml rename to roles/web-app-elk/config/main.yml diff --git a/roles/web-app-espocrm/vars/configuration.yml b/roles/web-app-espocrm/config/main.yml similarity index 100% rename from roles/web-app-espocrm/vars/configuration.yml rename to roles/web-app-espocrm/config/main.yml diff --git a/roles/web-app-espocrm/meta/schema.yml b/roles/web-app-espocrm/schema/main.yml similarity index 100% rename from roles/web-app-espocrm/meta/schema.yml rename to roles/web-app-espocrm/schema/main.yml diff --git a/roles/web-app-friendica/vars/configuration.yml b/roles/web-app-friendica/config/main.yml similarity index 100% rename from roles/web-app-friendica/vars/configuration.yml rename to roles/web-app-friendica/config/main.yml diff --git a/roles/web-app-friendica/meta/schema.yml b/roles/web-app-friendica/schema/main.yml similarity index 100% rename from roles/web-app-friendica/meta/schema.yml rename to roles/web-app-friendica/schema/main.yml diff --git a/roles/web-app-funkwhale/vars/configuration.yml b/roles/web-app-funkwhale/config/main.yml similarity index 100% rename from roles/web-app-funkwhale/vars/configuration.yml rename to roles/web-app-funkwhale/config/main.yml diff --git a/roles/web-app-funkwhale/meta/schema.yml b/roles/web-app-funkwhale/schema/main.yml similarity index 100% rename from roles/web-app-funkwhale/meta/schema.yml rename to roles/web-app-funkwhale/schema/main.yml diff --git a/roles/web-app-gitea/vars/configuration.yml b/roles/web-app-gitea/config/main.yml similarity index 100% rename from roles/web-app-gitea/vars/configuration.yml rename to roles/web-app-gitea/config/main.yml diff --git a/roles/web-app-gitea/meta/schema.yml b/roles/web-app-gitea/schema/main.yml similarity index 100% rename from roles/web-app-gitea/meta/schema.yml rename to roles/web-app-gitea/schema/main.yml diff --git a/roles/web-app-gitlab/vars/configuration.yml b/roles/web-app-gitlab/config/main.yml similarity index 100% rename from roles/web-app-gitlab/vars/configuration.yml rename to roles/web-app-gitlab/config/main.yml diff --git a/roles/web-app-gitlab/meta/schema.yml b/roles/web-app-gitlab/schema/main.yml similarity index 100% rename from roles/web-app-gitlab/meta/schema.yml rename to roles/web-app-gitlab/schema/main.yml diff --git a/roles/web-app-jenkins/vars/configuration.yml b/roles/web-app-jenkins/config/main.yml similarity index 100% rename from roles/web-app-jenkins/vars/configuration.yml rename to roles/web-app-jenkins/config/main.yml diff --git a/roles/web-app-joomla/vars/configuration.yml b/roles/web-app-joomla/config/main.yml similarity index 100% rename from roles/web-app-joomla/vars/configuration.yml rename to roles/web-app-joomla/config/main.yml diff --git a/roles/web-app-joomla/meta/schema.yml b/roles/web-app-joomla/schema/main.yml similarity index 100% rename from roles/web-app-joomla/meta/schema.yml rename to roles/web-app-joomla/schema/main.yml diff --git a/roles/web-app-keycloak/vars/configuration.yml b/roles/web-app-keycloak/config/main.yml similarity index 100% rename from roles/web-app-keycloak/vars/configuration.yml rename to roles/web-app-keycloak/config/main.yml diff --git a/roles/web-app-keycloak/meta/schema.yml b/roles/web-app-keycloak/schema/main.yml similarity index 100% rename from roles/web-app-keycloak/meta/schema.yml rename to roles/web-app-keycloak/schema/main.yml diff --git a/roles/web-app-lam/vars/configuration.yml b/roles/web-app-lam/config/main.yml similarity index 100% rename from roles/web-app-lam/vars/configuration.yml rename to roles/web-app-lam/config/main.yml diff --git a/roles/web-app-lam/meta/schema.yml b/roles/web-app-lam/schema/main.yml similarity index 100% rename from roles/web-app-lam/meta/schema.yml rename to roles/web-app-lam/schema/main.yml diff --git a/roles/web-app-libretranslate/vars/configuration.yml b/roles/web-app-libretranslate/config/main.yml similarity index 100% rename from roles/web-app-libretranslate/vars/configuration.yml rename to roles/web-app-libretranslate/config/main.yml diff --git a/roles/web-app-libretranslate/meta/schema.yml b/roles/web-app-libretranslate/schema/main.yml similarity index 100% rename from roles/web-app-libretranslate/meta/schema.yml rename to roles/web-app-libretranslate/schema/main.yml diff --git a/roles/web-app-listmonk/vars/configuration.yml b/roles/web-app-listmonk/config/main.yml similarity index 100% rename from roles/web-app-listmonk/vars/configuration.yml rename to roles/web-app-listmonk/config/main.yml diff --git a/roles/web-app-listmonk/meta/schema.yml b/roles/web-app-listmonk/schema/main.yml similarity index 100% rename from roles/web-app-listmonk/meta/schema.yml rename to roles/web-app-listmonk/schema/main.yml diff --git a/roles/web-app-mailu/vars/configuration.yml b/roles/web-app-mailu/config/main.yml similarity index 100% rename from roles/web-app-mailu/vars/configuration.yml rename to roles/web-app-mailu/config/main.yml diff --git a/roles/web-app-mailu/meta/schema.yml b/roles/web-app-mailu/schema/main.yml similarity index 100% rename from roles/web-app-mailu/meta/schema.yml rename to roles/web-app-mailu/schema/main.yml diff --git a/roles/web-app-mastodon/vars/configuration.yml b/roles/web-app-mastodon/config/main.yml similarity index 100% rename from roles/web-app-mastodon/vars/configuration.yml rename to roles/web-app-mastodon/config/main.yml diff --git a/roles/web-app-mastodon/meta/schema.yml b/roles/web-app-mastodon/schema/main.yml similarity index 100% rename from roles/web-app-mastodon/meta/schema.yml rename to roles/web-app-mastodon/schema/main.yml diff --git a/roles/web-app-matomo/vars/configuration.yml b/roles/web-app-matomo/config/main.yml similarity index 100% rename from roles/web-app-matomo/vars/configuration.yml rename to roles/web-app-matomo/config/main.yml diff --git a/roles/web-app-matomo/meta/schema.yml b/roles/web-app-matomo/schema/main.yml similarity index 100% rename from roles/web-app-matomo/meta/schema.yml rename to roles/web-app-matomo/schema/main.yml diff --git a/roles/web-app-matrix/vars/configuration.yml b/roles/web-app-matrix/config/main.yml similarity index 100% rename from roles/web-app-matrix/vars/configuration.yml rename to roles/web-app-matrix/config/main.yml diff --git a/roles/web-app-matrix/meta/schema.yml b/roles/web-app-matrix/schema/main.yml similarity index 100% rename from roles/web-app-matrix/meta/schema.yml rename to roles/web-app-matrix/schema/main.yml diff --git a/roles/web-app-mediawiki/vars/configuration.yml b/roles/web-app-mediawiki/config/main.yml similarity index 100% rename from roles/web-app-mediawiki/vars/configuration.yml rename to roles/web-app-mediawiki/config/main.yml diff --git a/roles/web-app-mobilizon/vars/configuration.yml b/roles/web-app-mobilizon/config/main.yml similarity index 100% rename from roles/web-app-mobilizon/vars/configuration.yml rename to roles/web-app-mobilizon/config/main.yml diff --git a/roles/web-app-mobilizon/meta/schema.yml b/roles/web-app-mobilizon/schema/main.yml similarity index 100% rename from roles/web-app-mobilizon/meta/schema.yml rename to roles/web-app-mobilizon/schema/main.yml diff --git a/roles/web-app-moodle/vars/configuration.yml b/roles/web-app-moodle/config/main.yml similarity index 100% rename from roles/web-app-moodle/vars/configuration.yml rename to roles/web-app-moodle/config/main.yml diff --git a/roles/web-app-moodle/meta/schema.yml b/roles/web-app-moodle/schema/main.yml similarity index 100% rename from roles/web-app-moodle/meta/schema.yml rename to roles/web-app-moodle/schema/main.yml diff --git a/roles/web-app-mybb/vars/configuration.yml b/roles/web-app-mybb/config/main.yml similarity index 100% rename from roles/web-app-mybb/vars/configuration.yml rename to roles/web-app-mybb/config/main.yml diff --git a/roles/web-app-nextcloud/vars/configuration.yml b/roles/web-app-nextcloud/config/main.yml similarity index 100% rename from roles/web-app-nextcloud/vars/configuration.yml rename to roles/web-app-nextcloud/config/main.yml diff --git a/roles/web-app-nextcloud/meta/schema.yml b/roles/web-app-nextcloud/schema/main.yml similarity index 100% rename from roles/web-app-nextcloud/meta/schema.yml rename to roles/web-app-nextcloud/schema/main.yml diff --git a/roles/web-app-oauth2-proxy/vars/configuration.yml b/roles/web-app-oauth2-proxy/config/main.yml similarity index 100% rename from roles/web-app-oauth2-proxy/vars/configuration.yml rename to roles/web-app-oauth2-proxy/config/main.yml diff --git a/roles/web-app-openproject/vars/configuration.yml b/roles/web-app-openproject/config/main.yml similarity index 100% rename from roles/web-app-openproject/vars/configuration.yml rename to roles/web-app-openproject/config/main.yml diff --git a/roles/web-app-openproject/meta/schema.yml b/roles/web-app-openproject/schema/main.yml similarity index 100% rename from roles/web-app-openproject/meta/schema.yml rename to roles/web-app-openproject/schema/main.yml diff --git a/roles/web-app-peertube/vars/configuration.yml b/roles/web-app-peertube/config/main.yml similarity index 100% rename from roles/web-app-peertube/vars/configuration.yml rename to roles/web-app-peertube/config/main.yml diff --git a/roles/web-app-peertube/meta/schema.yml b/roles/web-app-peertube/schema/main.yml similarity index 100% rename from roles/web-app-peertube/meta/schema.yml rename to roles/web-app-peertube/schema/main.yml diff --git a/roles/web-app-pgadmin/vars/configuration.yml b/roles/web-app-pgadmin/config/main.yml similarity index 100% rename from roles/web-app-pgadmin/vars/configuration.yml rename to roles/web-app-pgadmin/config/main.yml diff --git a/roles/web-app-pgadmin/meta/schema.yml b/roles/web-app-pgadmin/schema/main.yml similarity index 100% rename from roles/web-app-pgadmin/meta/schema.yml rename to roles/web-app-pgadmin/schema/main.yml diff --git a/roles/web-app-pgadmin/tasks/main.yml b/roles/web-app-pgadmin/tasks/main.yml index 6927b87e..2c997866 100644 --- a/roles/web-app-pgadmin/tasks/main.yml +++ b/roles/web-app-pgadmin/tasks/main.yml @@ -11,5 +11,5 @@ http_port: "{{ ports.localhost.http[application_id] }}" - name: "configure pgadmin servers" - include_tasks: configuration.yml + include_tasks: config/main.yml when: applications[application_id].server_mode | bool \ No newline at end of file diff --git a/roles/web-app-phpldapadmin/vars/configuration.yml b/roles/web-app-phpldapadmin/config/main.yml similarity index 100% rename from roles/web-app-phpldapadmin/vars/configuration.yml rename to roles/web-app-phpldapadmin/config/main.yml diff --git a/roles/web-app-phpldapadmin/meta/schema.yml b/roles/web-app-phpldapadmin/schema/main.yml similarity index 100% rename from roles/web-app-phpldapadmin/meta/schema.yml rename to roles/web-app-phpldapadmin/schema/main.yml diff --git a/roles/web-app-phpmyadmin/vars/configuration.yml b/roles/web-app-phpmyadmin/config/main.yml similarity index 100% rename from roles/web-app-phpmyadmin/vars/configuration.yml rename to roles/web-app-phpmyadmin/config/main.yml diff --git a/roles/web-app-phpmyadmin/meta/schema.yml b/roles/web-app-phpmyadmin/schema/main.yml similarity index 100% rename from roles/web-app-phpmyadmin/meta/schema.yml rename to roles/web-app-phpmyadmin/schema/main.yml diff --git a/roles/web-app-pixelfed/vars/configuration.yml b/roles/web-app-pixelfed/config/main.yml similarity index 100% rename from roles/web-app-pixelfed/vars/configuration.yml rename to roles/web-app-pixelfed/config/main.yml diff --git a/roles/web-app-pixelfed/meta/schema.yml b/roles/web-app-pixelfed/schema/main.yml similarity index 100% rename from roles/web-app-pixelfed/meta/schema.yml rename to roles/web-app-pixelfed/schema/main.yml diff --git a/roles/web-app-portfolio/vars/configuration.yml b/roles/web-app-portfolio/config/main.yml similarity index 100% rename from roles/web-app-portfolio/vars/configuration.yml rename to roles/web-app-portfolio/config/main.yml diff --git a/roles/web-app-presentation/vars/configuration.yml b/roles/web-app-presentation/config/main.yml similarity index 100% rename from roles/web-app-presentation/vars/configuration.yml rename to roles/web-app-presentation/config/main.yml diff --git a/roles/web-app-pretix/vars/configuration.yml b/roles/web-app-pretix/config/main.yml similarity index 100% rename from roles/web-app-pretix/vars/configuration.yml rename to roles/web-app-pretix/config/main.yml diff --git a/roles/web-app-pretix/meta/schema.yml b/roles/web-app-pretix/schema/main.yml similarity index 100% rename from roles/web-app-pretix/meta/schema.yml rename to roles/web-app-pretix/schema/main.yml diff --git a/roles/web-app-roulette-wheel/vars/configuration.yml b/roles/web-app-roulette-wheel/config/main.yml similarity index 100% rename from roles/web-app-roulette-wheel/vars/configuration.yml rename to roles/web-app-roulette-wheel/config/main.yml diff --git a/roles/web-app-simpleicons/vars/configuration.yml b/roles/web-app-simpleicons/config/main.yml similarity index 100% rename from roles/web-app-simpleicons/vars/configuration.yml rename to roles/web-app-simpleicons/config/main.yml diff --git a/roles/web-app-snipe-it/vars/configuration.yml b/roles/web-app-snipe-it/config/main.yml similarity index 100% rename from roles/web-app-snipe-it/vars/configuration.yml rename to roles/web-app-snipe-it/config/main.yml diff --git a/roles/web-app-snipe-it/meta/schema.yml b/roles/web-app-snipe-it/schema/main.yml similarity index 100% rename from roles/web-app-snipe-it/meta/schema.yml rename to roles/web-app-snipe-it/schema/main.yml diff --git a/roles/web-app-sphinx/vars/configuration.yml b/roles/web-app-sphinx/config/main.yml similarity index 100% rename from roles/web-app-sphinx/vars/configuration.yml rename to roles/web-app-sphinx/config/main.yml diff --git a/roles/web-app-syncope/vars/configuration.yml b/roles/web-app-syncope/config/main.yml similarity index 100% rename from roles/web-app-syncope/vars/configuration.yml rename to roles/web-app-syncope/config/main.yml diff --git a/roles/web-app-taiga/vars/configuration.yml b/roles/web-app-taiga/config/main.yml similarity index 100% rename from roles/web-app-taiga/vars/configuration.yml rename to roles/web-app-taiga/config/main.yml diff --git a/roles/web-app-taiga/meta/schema.yml b/roles/web-app-taiga/schema/main.yml similarity index 100% rename from roles/web-app-taiga/meta/schema.yml rename to roles/web-app-taiga/schema/main.yml diff --git a/roles/web-app-wordpress/vars/configuration.yml b/roles/web-app-wordpress/config/main.yml similarity index 100% rename from roles/web-app-wordpress/vars/configuration.yml rename to roles/web-app-wordpress/config/main.yml diff --git a/roles/web-app-wordpress/meta/schema.yml b/roles/web-app-wordpress/schema/main.yml similarity index 100% rename from roles/web-app-wordpress/meta/schema.yml rename to roles/web-app-wordpress/schema/main.yml diff --git a/roles/web-app-xmpp/vars/configuration.yml b/roles/web-app-xmpp/config/main.yml similarity index 100% rename from roles/web-app-xmpp/vars/configuration.yml rename to roles/web-app-xmpp/config/main.yml diff --git a/roles/web-app-yourls/vars/configuration.yml b/roles/web-app-yourls/config/main.yml similarity index 100% rename from roles/web-app-yourls/vars/configuration.yml rename to roles/web-app-yourls/config/main.yml diff --git a/roles/web-app-yourls/meta/schema.yml b/roles/web-app-yourls/schema/main.yml similarity index 100% rename from roles/web-app-yourls/meta/schema.yml rename to roles/web-app-yourls/schema/main.yml diff --git a/roles/web-service-assets/vars/configuration.yml b/roles/web-service-assets/config/main.yml similarity index 100% rename from roles/web-service-assets/vars/configuration.yml rename to roles/web-service-assets/config/main.yml diff --git a/roles/web-service-files/vars/configuration.yml b/roles/web-service-files/config/main.yml similarity index 100% rename from roles/web-service-files/vars/configuration.yml rename to roles/web-service-files/config/main.yml diff --git a/roles/web-service-html/vars/configuration.yml b/roles/web-service-html/config/main.yml similarity index 100% rename from roles/web-service-html/vars/configuration.yml rename to roles/web-service-html/config/main.yml diff --git a/templates/roles/web-app/vars/configuration.yml.j2 b/templates/roles/web-app/config/main.yml.j2 similarity index 100% rename from templates/roles/web-app/vars/configuration.yml.j2 rename to templates/roles/web-app/config/main.yml.j2 diff --git a/templates/roles/web-app/meta/schema.yml.j2 b/templates/roles/web-app/schema/main.yml.j2 similarity index 100% rename from templates/roles/web-app/meta/schema.yml.j2 rename to templates/roles/web-app/schema/main.yml.j2 diff --git a/tests/integration/test_configuration_database_dependency.py b/tests/integration/test_configuration_database_dependency.py index 226e0106..3f5d2ecb 100644 --- a/tests/integration/test_configuration_database_dependency.py +++ b/tests/integration/test_configuration_database_dependency.py @@ -5,11 +5,11 @@ import yaml class TestConfigurationDatabaseDependency(unittest.TestCase): # Define project root and glob pattern for configuration files PROJECT_ROOT = Path(__file__).resolve().parents[2] - CONFIG_PATTERN = 'roles/*/vars/configuration.yml' + CONFIG_PATTERN = 'roles/*/config/main.yml' def test_central_database_implies_database_service_enabled(self): """ - For each roles/*/vars/configuration.yml: + For each roles/*/config/main.yml: If features.central_database is true, then docker.services.database.enabled must be true. """ diff --git a/tests/integration/test_configuration_non_empty.py b/tests/integration/test_configuration_non_empty.py index f3aacca6..303337c3 100644 --- a/tests/integration/test_configuration_non_empty.py +++ b/tests/integration/test_configuration_non_empty.py @@ -33,14 +33,14 @@ def find_none_values(data, prefix=None): class TestConfigurationNoNone(unittest.TestCase): def test_configuration_files_have_no_none_values(self): - # Find all configuration.yml files under roles/*/vars + # Find all config/main.yml files under roles/*/vars pattern = os.path.join( os.path.dirname(__file__), os.pardir, os.pardir, - 'roles', '*', 'vars', 'configuration.yml' + 'roles', '*', "config" , "main.yml" ) files = glob.glob(pattern) - self.assertTrue(files, f"No configuration.yml files found with pattern: {pattern}") + self.assertTrue(files, f"No config/main.yml files found with pattern: {pattern}") all_errors = [] for filepath in files: diff --git a/tests/integration/test_csp_configuration_consistency.py b/tests/integration/test_csp_configuration_consistency.py index 22fe7e54..6526b401 100644 --- a/tests/integration/test_csp_configuration_consistency.py +++ b/tests/integration/test_csp_configuration_consistency.py @@ -37,7 +37,7 @@ class TestCspConfigurationConsistency(unittest.TestCase): def test_csp_configuration_structure(self): """ - Iterate all roles; for each vars/configuration.yml that defines 'csp', + Iterate all roles; for each config/main.yml that defines 'csp', assert that: - csp is a dict - its whitelist/flags/hashes keys only use supported directives @@ -52,7 +52,7 @@ class TestCspConfigurationConsistency(unittest.TestCase): if not role_path.is_dir(): continue - cfg_file = role_path / "vars" / "configuration.yml" + cfg_file = role_path / "config" / "main.yml" if not cfg_file.exists(): continue diff --git a/tests/integration/test_deprecated_version_key.py b/tests/integration/test_deprecated_version_key.py index d7953f90..1b75fc25 100644 --- a/tests/integration/test_deprecated_version_key.py +++ b/tests/integration/test_deprecated_version_key.py @@ -5,7 +5,7 @@ import yaml class TestDeprecatedVersionKey(unittest.TestCase): def test_version_key_deprecation(self): """ - Checks all roles/web-app-*/vars/configuration.yml for deprecated use of 'version'. + Checks all roles/web-app-*/config/main.yml for deprecated use of 'version'. Warns if 'version' is set but 'images' is missing. Prints warnings but does NOT fail the test. """ @@ -17,7 +17,7 @@ class TestDeprecatedVersionKey(unittest.TestCase): if not (role_path.is_dir() and role_path.name.startswith("web-app-")): continue - cfg_file = role_path / "vars" / "configuration.yml" + cfg_file = role_path / "config" / "main.yml" if not cfg_file.exists(): continue @@ -32,12 +32,12 @@ class TestDeprecatedVersionKey(unittest.TestCase): if uses_version: warnings.append( - f"[DEPRECATION WARNING] {role_path.name}/vars/configuration.yml: " + f"[DEPRECATION WARNING] {role_path.name}/config/main.yml: " f"'version' is deprecated. Replace it by docker.versions[version]." ) if uses_images: warnings.append( - f"[DEPRECATION WARNING] {role_path.name}/vars/configuration.yml: " + f"[DEPRECATION WARNING] {role_path.name}/config/main.yml: " f"'images' is deprecated. Replace it by docker.images[image]." ) diff --git a/tests/integration/test_docker_images_configuration.py b/tests/integration/test_docker_images_configuration.py index 7d8b00bd..831a4a8a 100644 --- a/tests/integration/test_docker_images_configuration.py +++ b/tests/integration/test_docker_images_configuration.py @@ -7,7 +7,7 @@ class TestDockerRoleImagesConfiguration(unittest.TestCase): def test_images_keys_and_templates(self): """ For each web-app-* role, check that: - - roles/web-app-*/vars/configuration.yml contains 'images' as a dict with keys/values + - roles/web-app-*/config/main.yml contains 'images' as a dict with keys/values - Each image key is referenced as: image: "{{ applications[application_id].images. }}" in either roles/web-app-*/templates/docker-compose.yml.j2 or env.j2 @@ -21,7 +21,7 @@ class TestDockerRoleImagesConfiguration(unittest.TestCase): if not (role_path.is_dir() and role_path.name.startswith("web-app-")): continue - cfg_file = role_path / "vars" / "configuration.yml" + cfg_file = role_path / "config" / "main.yml" if not cfg_file.exists(): continue # No configuration to check @@ -35,11 +35,11 @@ class TestDockerRoleImagesConfiguration(unittest.TestCase): images = config.get("docker",{}).get("images") if not images: - warnings.append(f"[WARNING] {role_path.name}: No 'docker.images' key in configuration.yml") + warnings.append(f"[WARNING] {role_path.name}: No 'docker.images' key in config/main.yml") continue if not isinstance(images, dict): - errors.append(f"{role_path.name}: 'images' must be a dict in configuration.yml") + errors.append(f"{role_path.name}: 'images' must be a dict in config/main.yml") continue # OPTIONAL: Check if the image is available locally via docker images diff --git a/tests/integration/test_oauth2_acl_mutual_exclusive.py b/tests/integration/test_oauth2_acl_mutual_exclusive.py index a62196ad..9e0dbfc1 100644 --- a/tests/integration/test_oauth2_acl_mutual_exclusive.py +++ b/tests/integration/test_oauth2_acl_mutual_exclusive.py @@ -10,7 +10,7 @@ class TestOauth2AclMutualExclusion(unittest.TestCase): failures = [] for role_path in ROLES_DIR.iterdir(): - vars_file = role_path / "vars" / "configuration.yml" + vars_file = role_path / "config" / "main.yml" if not vars_file.exists(): continue diff --git a/tests/integration/test_oauth2_proxy_ports.py b/tests/integration/test_oauth2_proxy_ports.py index b65af545..dfefb0ac 100644 --- a/tests/integration/test_oauth2_proxy_ports.py +++ b/tests/integration/test_oauth2_proxy_ports.py @@ -24,10 +24,10 @@ class TestOAuth2ProxyPorts(unittest.TestCase): if not role_path.is_dir(): continue with self.subTest(role=role_path.name): - # Check for configuration.yml - config_file = role_path / 'vars' / 'configuration.yml' + # Check for config/main.yml + config_file = role_path / "config" / "main.yml" if not config_file.exists(): - self.skipTest(f"No configuration.yml for role {role_path.name}") + self.skipTest(f"No config/main.yml for role {role_path.name}") config = yaml.safe_load(config_file.read_text()) or {} if not config.get('features', {}).get('oauth2', False): diff --git a/tests/unit/cli/test_create_credentials.py b/tests/unit/cli/test_create_credentials.py index f5b1e556..65bf0257 100644 --- a/tests/unit/cli/test_create_credentials.py +++ b/tests/unit/cli/test_create_credentials.py @@ -50,19 +50,20 @@ class TestCreateCredentials(unittest.TestCase): # Setup temporary files for role-path vars and inventory with tempfile.TemporaryDirectory() as tmpdir: role_path = os.path.join(tmpdir, 'role') + os.makedirs(os.path.join(role_path, 'config')) + os.makedirs(os.path.join(role_path, 'schema')) os.makedirs(os.path.join(role_path, 'vars')) - os.makedirs(os.path.join(role_path, 'meta')) # Create vars/main.yml with application_id main_vars = {'application_id': 'app_test'} with open(os.path.join(role_path, 'vars', 'main.yml'), 'w') as f: yaml.dump(main_vars, f) - # Create vars/configuration.yml with features disabled + # Create config/main.yml with features disabled config = {'features': {'central_database': False}} - with open(os.path.join(role_path, 'vars', 'configuration.yml'), 'w') as f: + with open(os.path.join(role_path, "config" , "main.yml"), 'w') as f: yaml.dump(config, f) # Create schema.yml defining plain credential schema = {'credentials': {'api_key': {'description': 'API key', 'algorithm': 'plain', 'validation': {}}}} - with open(os.path.join(role_path, 'meta', 'schema.yml'), 'w') as f: + with open(os.path.join(role_path, 'schema', 'main.yml'), 'w') as f: yaml.dump(schema, f) # Prepare inventory file inventory_file = os.path.join(tmpdir, 'inventory.yml') diff --git a/tests/unit/cli/test_generate_applications_defaults_users.py b/tests/unit/cli/test_generate_applications_defaults_users.py index 946337df..61dad097 100644 --- a/tests/unit/cli/test_generate_applications_defaults_users.py +++ b/tests/unit/cli/test_generate_applications_defaults_users.py @@ -16,11 +16,12 @@ class TestGenerateDefaultApplicationsUsers(unittest.TestCase): # Sample role with users meta self.role = self.roles_dir / "web-app-app-with-users" (self.role / "vars").mkdir(parents=True) + (self.role / "config").mkdir(parents=True) (self.role / "meta").mkdir(parents=True) # Write application_id and configuration (self.role / "vars" / "main.yml").write_text("application_id: app_with_users\n") - (self.role / "vars" / "configuration.yml").write_text("setting: value\n") + (self.role / "config" / "main.yml").write_text("setting: value\n") # Write users meta users_meta = { diff --git a/tests/unit/cli/test_generate_default_applications.py b/tests/unit/cli/test_generate_default_applications.py index 1ce8f2f3..17ba931e 100644 --- a/tests/unit/cli/test_generate_default_applications.py +++ b/tests/unit/cli/test_generate_default_applications.py @@ -17,10 +17,11 @@ class TestGenerateDefaultApplications(unittest.TestCase): # Sample role self.sample_role = self.roles_dir / "web-app-testapp" (self.sample_role / "vars").mkdir(parents=True) + (self.sample_role / "config").mkdir(parents=True) # Write application_id and configuration (self.sample_role / "vars" / "main.yml").write_text("application_id: testapp\n") - (self.sample_role / "vars" / "configuration.yml").write_text("foo: bar\nbaz: 123\n") + (self.sample_role / "config" / "main.yml").write_text("foo: bar\nbaz: 123\n") # Output file path self.output_file = self.temp_dir / "group_vars" / "all" / "04_applications.yml" diff --git a/tests/unit/cli/test_inventory_manager.py b/tests/unit/cli/test_inventory_manager.py index 162ca3c0..1cff1e8a 100644 --- a/tests/unit/cli/test_inventory_manager.py +++ b/tests/unit/cli/test_inventory_manager.py @@ -48,8 +48,8 @@ class TestInventoryManager(unittest.TestCase): def fake_load_yaml(self, path): path = Path(path) - # Return schema for meta/schema.yml - if path.match("*/meta/schema.yml"): + # Return schema for schema/main.yml + if path.match("*/schema/main.yml"): return { "credentials": { "plain_cred": {"description": "desc", "algorithm": "plain", "validation": {}}, @@ -59,8 +59,8 @@ class TestInventoryManager(unittest.TestCase): # Return application_id for vars/main.yml if path.match("*/vars/main.yml"): return {"application_id": "testapp"} - # Return feature flags for vars/configuration.yml - if path.match("*/vars/configuration.yml"): + # Return feature flags for config/main.yml + if path.match("*/config/main.yml"): return {"features": {"central_database": True}} # Return empty inventory for inventory.yml if path.name == "inventory.yml": diff --git a/tests/unit/filter_plugins/test_load_configuration.py b/tests/unit/filter_plugins/test_load_configuration.py index ada0045d..ee0cbc71 100644 --- a/tests/unit/filter_plugins/test_load_configuration.py +++ b/tests/unit/filter_plugins/test_load_configuration.py @@ -59,10 +59,10 @@ class TestLoadConfigurationFilter(unittest.TestCase): @patch('load_configuration.open', new_callable=mock_open) @patch('load_configuration.yaml.safe_load') def test_primary_and_cache(self, mock_yaml, mock_file, mock_exists, *_): - mock_exists.side_effect = lambda p: p.endswith('vars/main.yml') or p.endswith('vars/configuration.yml') + mock_exists.side_effect = lambda p: p.endswith('vars/main.yml') or p.endswith('config/main.yml') mock_yaml.side_effect = [ {'application_id': self.app}, # main.yml - self.nested_cfg # configuration.yml + self.nested_cfg # config/main.yml ] # first load self.assertTrue(self.f(self.app, 'features.matomo')) @@ -88,7 +88,7 @@ class TestLoadConfigurationFilter(unittest.TestCase): @patch('load_configuration.open', new_callable=mock_open) @patch('load_configuration.yaml.safe_load') def test_fallback_nested(self, mock_yaml, mock_file, mock_exists, *_): - mock_exists.side_effect = lambda p: p.endswith('vars/configuration.yml') + mock_exists.side_effect = lambda p: p.endswith('config/main.yml') mock_yaml.return_value = self.nested_cfg # nested fallback must work self.assertTrue(self.f(self.app, 'features.matomo')) @@ -102,7 +102,7 @@ class TestLoadConfigurationFilter(unittest.TestCase): @patch('load_configuration.yaml.safe_load') def test_fallback_with_indexed_key(self, mock_yaml, mock_file, mock_exists, *_): # Testing with an indexed key like domains.canonical[0] - mock_exists.side_effect = lambda p: p.endswith('vars/configuration.yml') + mock_exists.side_effect = lambda p: p.endswith('config/main.yml') mock_yaml.return_value = { 'file-server': { 'domains': {