Browse Source

feat(config): allow differents options for server and pool

Pool and server configuration may have different options but it's not
currently possible.
In order to solve that, the template is changed to accept pool
or server specification as a dictionnary, specifying at least the
pool/server name and if wanted the pool/server options. If no options
are specified, it'll use chrony.options.
In order to not break anything the template is checking if the server/pool
specification is a dictionnary or not, and acts accordingly.

Fixes: #27
Signed-off-by: Arnaud Patard <apatard@hupstream.com>
tags/v1.3.0
Arnaud Patard 3 years ago
parent
commit
7d680a1a60
3 changed files with 18 additions and 4 deletions
  1. +8
    -0
      chrony/files/default/chrony.conf.jinja
  2. +6
    -4
      pillar.example
  3. +4
    -0
      test/integration/default/controls/config_spec.rb

+ 8
- 0
chrony/files/default/chrony.conf.jinja View File

@@ -5,13 +5,21 @@

{%- if chrony.ntpservers is defined %}
{% for server in chrony.ntpservers -%}
{% if server is mapping %}
server {{ server.name }} {{ server.options | default(chrony.options) }}
{% else %}
server {{ server }} {{ chrony.options }}
{% endif %}
{% endfor %}
{%- endif %}

{%- if chrony.pool is defined %}
{% for pool in chrony.pool -%}
{% if pool is mapping %}
pool {{ pool.name }} {{ pool.options | default(chrony.options) }}
{% else %}
pool {{ pool }} {{ chrony.options }}
{% endif %}
{% endfor %}
{% endif %}


+ 6
- 4
pillar.example View File

@@ -3,13 +3,15 @@
---
chrony:
ntpservers:
- '0.debian.pool.ntp.org'
- '1.centos.pool.ntp.org'
- name: '0.debian.pool.ntp.org'
options: iburst
- name: '1.centos.pool.ntp.org'
- '2.arch.pool.ntp.org'
- '3.gentoo.pool.ntp.org'
pool:
- '0.debian.pool.ntp.org'
- '1.centos.pool.ntp.org'
- name: '0.debian.pool.ntp.org'
options: iburst
- name: '1.centos.pool.ntp.org'
- '2.arch.pool.ntp.org'
- '3.gentoo.pool.ntp.org'
allow:

+ 4
- 0
test/integration/default/controls/config_spec.rb View File

@@ -30,5 +30,9 @@ control 'Chrony configuration' do
its('content') { should include keyfile }
its('content') { should include driftfile }
its('content') { should include logdir }
its('content') { should include 'server 0.debian.pool.ntp.org iburst' }
its('content') { should include 'server 1.centos.pool.ntp.org' }
its('content') { should include 'pool 0.debian.pool.ntp.org iburst' }
its('content') { should include 'pool 1.centos.pool.ntp.org' }
end
end

Loading…
Cancel
Save