diff --git a/defaults/main.yml b/defaults/main.yml index 8b13e0e..44bf371 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -167,3 +167,7 @@ trove_conductor_config_overrides: {} trove_taskmanager_config_overrides: {} trove_guestagent_config_overrides: {} trove_policy_overrides: {} + +trove_api_init_config_overrides: {} +trove_conductor_init_config_overrides: {} +trove_taskmanager_init_config_overrides: {} diff --git a/releasenotes/notes/trove-init-config-overrides-ffce7e419061c4da.yaml b/releasenotes/notes/trove-init-config-overrides-ffce7e419061c4da.yaml new file mode 100644 index 0000000..0b84eb4 --- /dev/null +++ b/releasenotes/notes/trove-init-config-overrides-ffce7e419061c4da.yaml @@ -0,0 +1,10 @@ +--- +features: + - New variables have been added to allow a deployer to customize + a trove systemd unit file to their liking. + - The task dropping the trove systemd unit files now uses the + ``config_template`` action plugin allowing deployers access to + customize the unit files as they see fit without having to + load extra options into the defaults and polute the generic + systemd unit file with jinja2 variables and conditionals. + diff --git a/tasks/trove_init.yml b/tasks/trove_init.yml index 1d0680f..c080217 100644 --- a/tasks/trove_init.yml +++ b/tasks/trove_init.yml @@ -22,6 +22,7 @@ system_user: "{{ trove_system_user_name }}" system_group: "{{ trove_system_group_name }}" service_home: "{{ trove_system_user_home }}" + init_config_overrides: "{{ trove_api_init_config_overrides }}" when: inventory_hostname in groups['trove_api'] - include: trove_init_common.yml @@ -31,6 +32,7 @@ system_user: "{{ trove_system_user_name }}" system_group: "{{ trove_system_group_name }}" service_home: "{{ trove_system_user_home }}" + init_config_overrides: "{{ trove_conductor_init_config_overrides }}" when: inventory_hostname in groups['trove_conductor'] - include: trove_init_common.yml @@ -40,4 +42,5 @@ system_user: "{{ trove_system_user_name }}" system_group: "{{ trove_system_group_name }}" service_home: "{{ trove_system_user_home }}" + init_config_overrides: "{{ trove_taskmanager_init_config_overrides }}" when: inventory_hostname in groups['trove_taskmanager'] diff --git a/tasks/trove_init_systemd.yml b/tasks/trove_init_systemd.yml index fae3808..99e1a10 100644 --- a/tasks/trove_init_systemd.yml +++ b/tasks/trove_init_systemd.yml @@ -40,12 +40,14 @@ group: "root" - name: Place the systemd init script - template: + config_template: src: "trove-systemd-init.j2" dest: "/etc/systemd/system/{{ program_name }}.service" mode: "0644" owner: "root" group: "root" + config_overrides: "{{ init_config_overrides }}" + config_type: "ini" register: systemd_init - name: Reload the systemd daemon diff --git a/templates/trove-systemd-init.j2 b/templates/trove-systemd-init.j2 index 2919b0f..cf9bf3b 100644 --- a/templates/trove-systemd-init.j2 +++ b/templates/trove-systemd-init.j2 @@ -21,5 +21,14 @@ TimeoutSec=300 Restart=on-failure RestartSec=150 +# This creates a specific slice which all services will operate from +# The accounting options give us the ability to see resource usage through +# the `systemd-cgtop` command. +Slice=trove.slice +CPUAccounting=true +BlockIOAccounting=true +MemoryAccounting=false +TasksAccounting=true + [Install] WantedBy=multi-user.target