Make Notarius configuration ownership configurable

This commit is contained in:
2026-09-14 13:56:55 +00:00
parent cfecf37261
commit e9ae2dc340
4 changed files with 41 additions and 8 deletions

View File

@@ -16,6 +16,10 @@ notarius_manage_build_dependencies: true
notarius_go_snap_channel: 1.26/stable
notarius_go_binary: /snap/bin/go
notarius_config_path: /usr/local/etc/notarius/config.yml
notarius_config_owner: root
notarius_config_group: root
notarius_config_directory_mode: "0755"
notarius_config_file_mode: "0644"
notarius_config_version: 4
notarius_promptkit_profile_dir: null
notarius_promptkit_profile_file: null
@@ -43,10 +47,15 @@ the binary is `root:root` mode `0755`.
Configuration variables map directly to Notarius's versioned YAML fields.
Every optional value defaults to `null`, so it and any empty parent section are
omitted and Notarius retains ownership of its built-in defaults. The role always
emits `notarius_config_version` as `version` and writes the file as `root:root`
mode `0644`. `notarius_pipelines` is the native mapping supplied by the caller;
the role does not merge or rewrite it. For example, inventory can compose
fragments in the ordinary way:
emits `notarius_config_version` as `version`. It manages
`notarius_config_path | dirname` and the resulting file with
`notarius_config_owner`, `notarius_config_group`,
`notarius_config_directory_mode`, and `notarius_config_file_mode`. The
standalone defaults are `root:root`, directory mode `0755`, and file mode
`0644`; composing roles may override this generic configuration interface.
`notarius_pipelines` is the native mapping supplied by the caller; the role
does not merge or rewrite it. For example, inventory can compose fragments in
the ordinary way:
```yaml
notarius_pipelines: "{{ notarius_pipeline_group_one | combine(notarius_pipeline_group_two) }}"

View File

@@ -7,6 +7,10 @@ notarius_manage_build_dependencies: true
notarius_go_snap_channel: 1.26/stable
notarius_go_binary: /snap/bin/go
notarius_config_path: /usr/local/etc/notarius/config.yml
notarius_config_owner: root
notarius_config_group: root
notarius_config_directory_mode: "0755"
notarius_config_file_mode: "0644"
notarius_config_version: 4
notarius_promptkit_profile_dir: null
notarius_promptkit_profile_file: null

View File

@@ -27,6 +27,18 @@ argument_specs:
notarius_config_path:
type: path
required: true
notarius_config_owner:
type: str
required: true
notarius_config_group:
type: str
required: true
notarius_config_directory_mode:
type: str
required: true
notarius_config_file_mode:
type: str
required: true
notarius_config_version:
type: int
required: true

View File

@@ -36,7 +36,15 @@
loop:
- "{{ notarius_source_dir | dirname }}"
- "{{ notarius_binary_path | dirname }}"
- "{{ notarius_config_path | dirname }}"
- name: Create the Notarius configuration directory
become: true
ansible.builtin.file:
path: "{{ notarius_config_path | dirname }}"
state: directory
owner: "{{ notarius_config_owner }}"
group: "{{ notarius_config_group }}"
mode: "{{ notarius_config_directory_mode }}"
- name: Check out Notarius source
become: true
@@ -96,6 +104,6 @@
ansible.builtin.template:
src: config.yml.j2
dest: "{{ notarius_config_path }}"
owner: root
group: root
mode: "0644"
owner: "{{ notarius_config_owner }}"
group: "{{ notarius_config_group }}"
mode: "{{ notarius_config_file_mode }}"