Merge branch '21412-user-profile-bugs'
[arvados.git] / tools / salt-install / config_examples / single_host / single_hostname / 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     - require:
14       - pkg: nginx_install
15
16   {%- for cert in certs %}
17     {%- set cert_file = 'arvados-' ~ cert ~ '.pem' %}
18     {%- set key_file = 'arvados-' ~ cert ~ '.key' %}
19 extra_custom_certs_{{ cert }}_cert_file_copy:
20   file.copy:
21     - name: {{ dest_cert_dir }}/{{ cert_file }}
22     - source: {{ orig_cert_dir }}/{{ cert_file }}
23     - force: true
24     - user: root
25     - group: root
26     - mode: 0640
27     - unless: cmp {{ dest_cert_dir }}/{{ cert_file }} {{ orig_cert_dir }}/{{ cert_file }}
28     - require:
29       - file: extra_custom_certs_file_directory_certs_dir
30
31 extra_custom_certs_{{ cert }}_key_file_copy:
32   file.copy:
33     - name: {{ dest_cert_dir }}/{{ key_file }}
34     - source: {{ orig_cert_dir }}/{{ key_file }}
35     - force: true
36     - user: root
37     - group: root
38     - mode: 0640
39     - unless: cmp {{ dest_cert_dir }}/{{ key_file }} {{ orig_cert_dir }}/{{ key_file }}
40     - require:
41       - file: extra_custom_certs_file_directory_certs_dir
42
43 extra_nginx_service_reload_on_{{ cert }}_certs_changes:
44   cmd.run:
45     - name: systemctl reload nginx
46     - require:
47       - file: extra_custom_certs_{{ cert }}_cert_file_copy
48       - file: extra_custom_certs_{{ cert }}_key_file_copy
49     - onchanges:
50       - file: extra_custom_certs_{{ cert }}_cert_file_copy
51       - file: extra_custom_certs_{{ cert }}_key_file_copy
52     - onlyif:
53       - test $(openssl rsa -modulus -noout -in {{ dest_cert_dir }}/{{ key_file }}) == $(openssl x509 -modulus -noout -in {{ dest_cert_dir }}/{{ cert_file }})
54   {%- endfor %}
55 {%- endif %}