From f3061a0f387b1afa92df38beeb2dd4f1bacdc4f9 Mon Sep 17 00:00:00 2001 From: Mahendra Paipuri Date: Thu, 4 Apr 2024 15:14:19 +0200 Subject: [PATCH 1/2] feat: Extra configs variable from CEEMS API server * A dict can be used to generate extra config files that will be used for CEEMS API server * Add tests in alternative scenario Signed-off-by: Mahendra Paipuri --- roles/ceems_api_server/defaults/main.yml | 1 + .../ceems_api_server/meta/argument_specs.yml | 5 +++++ .../molecule/alternative/molecule.yml | 4 ++++ .../alternative/tests/test_alternative.py | 4 +++- roles/ceems_api_server/tasks/configure.yml | 21 +++++++++++++++++-- 5 files changed, 32 insertions(+), 3 deletions(-) diff --git a/roles/ceems_api_server/defaults/main.yml b/roles/ceems_api_server/defaults/main.yml index 1c1a9ec..b24d095 100644 --- a/roles/ceems_api_server/defaults/main.yml +++ b/roles/ceems_api_server/defaults/main.yml @@ -23,6 +23,7 @@ ceems_api_server_data_backup_interval: "" ceems_api_server_admin_users: [] ceems_api_server_cli_args: [] ceems_api_server_env_vars: {} +ceems_api_server_extra_configs: {} ceems_api_server_binary_install_dir: /usr/local/bin ceems_api_server_system_group: ceems ceems_api_server_system_user: "{{ ceems_api_server_system_group }}" diff --git a/roles/ceems_api_server/meta/argument_specs.yml b/roles/ceems_api_server/meta/argument_specs.yml index 29f8711..913da7a 100644 --- a/roles/ceems_api_server/meta/argument_specs.yml +++ b/roles/ceems_api_server/meta/argument_specs.yml @@ -110,3 +110,8 @@ argument_specs: - I(Advanced) - Environment variables will be passed to CEEMS API server type: dict + ceems_api_server_extra_config: + description: + - I(Advanced) + - Extra configuration files for CEEMS API server. These files will be created in CEEMS API server config dir with the same name as key of the argument dict. + type: dict diff --git a/roles/ceems_api_server/molecule/alternative/molecule.yml b/roles/ceems_api_server/molecule/alternative/molecule.yml index 3a15474..3ff136d 100644 --- a/roles/ceems_api_server/molecule/alternative/molecule.yml +++ b/roles/ceems_api_server/molecule/alternative/molecule.yml @@ -21,3 +21,7 @@ provisioner: - --web.max.query.period=30d ceems_api_server_env_vars: foo: bar + ceems_api_server_extra_config_files: + tsdb_config: + web_url: http://localhost:9090 + queries: {} diff --git a/roles/ceems_api_server/molecule/alternative/tests/test_alternative.py b/roles/ceems_api_server/molecule/alternative/tests/test_alternative.py index a246d13..6e96479 100644 --- a/roles/ceems_api_server/molecule/alternative/tests/test_alternative.py +++ b/roles/ceems_api_server/molecule/alternative/tests/test_alternative.py @@ -21,7 +21,9 @@ def test_directories(host, dir): @pytest.mark.parametrize("file", [ "/etc/systemd/system/ceems_api_server.service", - "/usr/local/bin/ceems_api_server" + "/usr/local/bin/ceems_api_server", + "/etc/ceems_api_server/config.yaml", + "/etc/ceems_api_server/tsdb_config.yaml", ]) def test_files(host, file): f = host.file(file) diff --git a/roles/ceems_api_server/tasks/configure.yml b/roles/ceems_api_server/tasks/configure.yml index 0d07a68..5d3601b 100644 --- a/roles/ceems_api_server/tasks/configure.yml +++ b/roles/ceems_api_server/tasks/configure.yml @@ -5,7 +5,7 @@ dest: /etc/systemd/system/ceems_api_server.service owner: root group: root - mode: "0640" + mode: u+rw,g+r,o-rwX notify: restart ceems_api_server - name: Create ceems_api_server config directory @@ -31,7 +31,24 @@ dest: /etc/ceems_api_server/config.yaml owner: "{{ ceems_api_server_system_user }}" group: "{{ ceems_api_server_system_group }}" - mode: "0640" + mode: u+rw,g+r,o-rwX + notify: restart ceems_api_server + +- name: Create extra config files + ansible.builtin.copy: + dest: "/etc/ceems_api_server/{{ item.key }}.yaml" + owner: "{{ ceems_api_server_system_user }}" + group: "{{ ceems_api_server_system_group }}" + mode: u+rw,g+r,o-rwX + content: | + # + # Ansible managed: Do NOT edit this file manually! + # + --- + + {{ item.value | to_nice_yaml }} + when: ceems_api_server_extra_config_files | length > 0 + loop: "{{ ceems_api_server_extra_config_files | dict2items }}" notify: restart ceems_api_server - name: Make the ceems_api_server data directory From fe23d21be3c9fa7547553c1e6adb51603ad72f16 Mon Sep 17 00:00:00 2001 From: Mahendra Paipuri Date: Thu, 4 Apr 2024 15:18:19 +0200 Subject: [PATCH 2/2] Fix variable name Signed-off-by: Mahendra Paipuri --- roles/ceems_api_server/meta/argument_specs.yml | 2 +- roles/ceems_api_server/molecule/alternative/molecule.yml | 2 +- roles/ceems_api_server/tasks/configure.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/roles/ceems_api_server/meta/argument_specs.yml b/roles/ceems_api_server/meta/argument_specs.yml index 913da7a..9cede9f 100644 --- a/roles/ceems_api_server/meta/argument_specs.yml +++ b/roles/ceems_api_server/meta/argument_specs.yml @@ -110,7 +110,7 @@ argument_specs: - I(Advanced) - Environment variables will be passed to CEEMS API server type: dict - ceems_api_server_extra_config: + ceems_api_server_extra_configs: description: - I(Advanced) - Extra configuration files for CEEMS API server. These files will be created in CEEMS API server config dir with the same name as key of the argument dict. diff --git a/roles/ceems_api_server/molecule/alternative/molecule.yml b/roles/ceems_api_server/molecule/alternative/molecule.yml index 3ff136d..abe77af 100644 --- a/roles/ceems_api_server/molecule/alternative/molecule.yml +++ b/roles/ceems_api_server/molecule/alternative/molecule.yml @@ -21,7 +21,7 @@ provisioner: - --web.max.query.period=30d ceems_api_server_env_vars: foo: bar - ceems_api_server_extra_config_files: + ceems_api_server_extra_configs: tsdb_config: web_url: http://localhost:9090 queries: {} diff --git a/roles/ceems_api_server/tasks/configure.yml b/roles/ceems_api_server/tasks/configure.yml index 5d3601b..20989ce 100644 --- a/roles/ceems_api_server/tasks/configure.yml +++ b/roles/ceems_api_server/tasks/configure.yml @@ -47,8 +47,8 @@ --- {{ item.value | to_nice_yaml }} - when: ceems_api_server_extra_config_files | length > 0 - loop: "{{ ceems_api_server_extra_config_files | dict2items }}" + when: ceems_api_server_extra_configs | length > 0 + loop: "{{ ceems_api_server_extra_configs | dict2items }}" notify: restart ceems_api_server - name: Make the ceems_api_server data directory