* Ubuntu pinning params allow to be used multiply times. In same time, old `list` format now allowing to be predictable iterated inside jinja Related-Bug: PROD-21604 (PROD:21604) Change-Id: If1c0f0f834a296b9a19d0af5fc7673c9229a7ac5pull/138/merge
priority: 900 | priority: 900 | ||||
package: '*' | package: '*' | ||||
If you need to add multiple pin rules for one repo, please use new,ordered definition format | |||||
('pinning' definition will be in priotity to use): | |||||
.. code-block:: yaml | |||||
linux: | |||||
system: | |||||
repo: | |||||
mcp_saltstack: | |||||
source: "deb [arch=amd64] http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2017.7/ xenial main" | |||||
architectures: amd64 | |||||
clean_file: true | |||||
pinning: | |||||
10: | |||||
enabled: true | |||||
pin: 'release o=SaltStack' | |||||
priority: 50 | |||||
package: 'libsodium18' | |||||
20: | |||||
enabled: true | |||||
pin: 'release o=SaltStack' | |||||
priority: 1100 | |||||
package: '*' | |||||
.. note:: For old Ubuntu releases (<xenial) | .. note:: For old Ubuntu releases (<xenial) | ||||
extra packages for apt transport, like ``apt-transport-https`` | extra packages for apt transport, like ``apt-transport-https`` | ||||
may be required to be installed manually. | may be required to be installed manually. |
{%- from "linux/map.jinja" import system with context %} | {%- from "linux/map.jinja" import system with context %} | ||||
{%- set repo = system.repo[repo_name] %} | {%- set repo = system.repo[repo_name] %} | ||||
{%- for pin in repo.pin %} | |||||
{%- set package = pin.get('package', '*') %} | |||||
{%- if repo.pinning is defined %} | |||||
{%- for id,pin in repo.pinning|dictsort %} | |||||
{%- if pin.get('enabled', False) %} | |||||
Package: {{ pin.get('package','*') }} | |||||
Pin: {{ pin.pin }} | |||||
Pin-Priority: {{ pin.priority }} | |||||
{%- endif %} | |||||
{% endfor %} | |||||
{%- elif repo.pin is defined %} | |||||
{%- for pin in repo.pin %} | |||||
{%- set package = pin.get('package', '*') %} | |||||
Package: {{ package }} | Package: {{ package }} | ||||
Pin: {{ pin.pin }} | Pin: {{ pin.pin }} | ||||
Pin-Priority: {{ pin.priority }} | Pin-Priority: {{ pin.priority }} | ||||
{% endfor %} | |||||
{% endfor %} | |||||
{%- endif %} |
file.absent | file.absent | ||||
{%- endif %} | {%- endif %} | ||||
{%- if repo.pin is defined %} | |||||
{%- if repo.pin is defined or repo.pinning is defined %} | |||||
linux_repo_{{ name }}_pin: | linux_repo_{{ name }}_pin: | ||||
file.managed: | file.managed: | ||||
- name: /etc/apt/preferences.d/{{ name }} | - name: /etc/apt/preferences.d/{{ name }} |
proxy: | proxy: | ||||
enabled: true | enabled: true | ||||
https: https://127.0.5.1:443 | https: https://127.0.5.1:443 | ||||
saltstack: | |||||
source: "deb [arch=amd64] http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2017.7/ xenial main" | |||||
key_url: "http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2017.7/SALTSTACK-GPG-KEY.pub" | |||||
architectures: amd64 | |||||
clean_file: true | |||||
pinning: | |||||
10: | |||||
enabled: true | |||||
pin: 'release o=SaltStack' | |||||
priority: 50 | |||||
package: 'libsodium18' | |||||
20: | |||||
enabled: true | |||||
pin: 'release o=SaltStack' | |||||
priority: 1100 | |||||
package: '*' | |||||
opencontrail: | opencontrail: | ||||
source: "deb http://ppa.launchpad.net/tcpcloud/contrail-3.0/ubuntu xenial main" | source: "deb http://ppa.launchpad.net/tcpcloud/contrail-3.0/ubuntu xenial main" | ||||
keyid: E79EE90C | keyid: E79EE90C |