From 5868f22c47b945d5968b4b37ca61e53b4eacb9c0 Mon Sep 17 00:00:00 2001 From: Arthur Lutz Date: Thu, 4 Jan 2018 16:28:41 +0100 Subject: [PATCH] [apt/repositories] more flexible options in pillars contributed initialy by @javierbertoli fixes #30 --- apt/repositories.sls | 27 ++++++++++++++++++++++++--- pillar.example | 8 +++++++- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/apt/repositories.sls b/apt/repositories.sls index 1c73a2d..c6e62a8 100644 --- a/apt/repositories.sls +++ b/apt/repositories.sls @@ -26,11 +26,32 @@ debian-archive-keyring: - group: root - clean: {{ clean_sources_list_d }} + + {% for repo, args in repositories.iteritems() %} -{%- set r_arch = '[arch=' ~ args.arch|join(',') ~ ']' if args.arch is defined else '' %} + +{% set r_opts = '' %} +{%- set r_arch = 'arch=' ~ args.arch|join(',') if args.arch is defined else '' %} +{% if args.opts is defined %} + {% if args.opts is string %} + {% set r_opts = args.opts %} + {% else %} + {% set r_opts_list = [] %} + {%- for k, v in args.opts.items() %} + {% do r_opts_list.append(' ' ~ k ~ '=' ~ v) %} + {%- endfor %} + {% set r_opts = r_opts_list|join(' ') %} + {% endif %} +{% endif %} + +{% if r_arch != '' or r_opts != '' %} + {% set r_options = '[' ~ r_arch ~ ' ' ~ r_opts ~ ' ]' %} +{% else %} + {% set r_options = '' %} +{% endif %} + {%- set r_url = args.url or default_url %} {%- set r_distro = args.distro or 'stable' %} -{%- set r_opts = args.opts if args.opts is defined else '' %} {%- set r_comps = args.comps|default(['main'])|join(' ') %} {%- set r_keyserver = args.keyserver if args.keyserver is defined else apt_map.default_keyserver %} @@ -39,7 +60,7 @@ debian-archive-keyring: {{ r_type }} {{ repo }}: pkgrepo.managed: - - name: {{ r_type }} {{ r_arch }} {{ r_opts }} {{ r_url }} {{ r_distro }} {{ r_comps }} + - name: {{ r_type }} {{ r_options }} {{ r_url }} {{ r_distro }} {{ r_comps }} - file: {{ sources_list_dir }}/{{ repo }}-{{ type }}.list {# You can use either keyid+keyserver or key_url. If both are provided the latter will be used. #} diff --git a/pillar.example b/pillar.example index 0e4ba78..9285437 100644 --- a/pillar.example +++ b/pillar.example @@ -73,7 +73,13 @@ apt: intranet: distro: stretch url: http://intranet.example.org - opts: "[trusted=yes]" + opts: "trusted=yes" + extranet: + distro: stretch + url: https://extranet.example.org + opts: + trusted: 'yes' + another: whatever preferences: 00-rspamd: