20035: Ensures proper permissions on places where certificate's keys are saved.
[arvados.git] / tools / salt-install / config_examples / multi_host / aws / states / custom_certs.sls
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: Apache-2.0
4
5 {%- set orig_cert_dir = salt['pillar.get']('extra_custom_certs_dir', '/srv/salt/certs')  %}
6 {%- set dest_cert_dir = '/etc/nginx/ssl' %}
7 {%- set certs = salt['pillar.get']('extra_custom_certs', [])  %}
8
9 {% if certs %}
10 extra_custom_certs_file_directory_certs_dir:
11   file.directory:
12     - name: /etc/nginx/ssl
13     - user: root
14     - group: root
15     - dir_mode: 0750
16     - file_mode: 0640
17     - require:
18       - pkg: nginx_install
19     - recurse:
20       - user
21       - group
22       - mode
23
24   {%- for cert in certs %}
25     {%- set cert_file = 'arvados-' ~ cert ~ '.pem' %}
26     {#- set csr_file = 'arvados-' ~ cert ~ '.csr' #}
27     {%- set key_file = 'arvados-' ~ cert ~ '.key' %}
28     {% for c in [cert_file, key_file] %}
29 extra_custom_certs_file_copy_{{ c }}:
30   file.copy:
31     - name: {{ dest_cert_dir }}/{{ c }}
32     - source: {{ orig_cert_dir }}/{{ c }}
33     - force: true
34     - user: root
35     - group: root
36     - mode: 0640
37     - unless: cmp {{ dest_cert_dir }}/{{ c }} {{ orig_cert_dir }}/{{ c }}
38     - require:
39       - file: extra_custom_certs_file_directory_certs_dir
40     {%- endfor %}
41   {%- endfor %}
42 {%- endif %}