0
0
mirror of https://github.com/saltstack-formulas/salt-formula.git synced 2024-11-28 00:48:02 +01:00

add a way to set which release of saltstack to use

SaltStack provides "versioned" repositories, this commit add a way
to set which release of salt to use.
It adds a pillar "salt:release" which can be set to a specific release
(ex: 2016.11). This release is then used to configure properly the
repositories URLs for Debian/Ubuntu/RedHat.
The default behavior is to point to 'latest', retaining the previous
behavior if the "salt:release" pillar is not set.
This commit is contained in:
carpenti 2017-05-30 09:18:54 +02:00
parent eaf9fc98f6
commit 6622d177bf
3 changed files with 17 additions and 8 deletions

View File

@ -22,6 +22,12 @@ salt:
salt-cloud: 'salt-cloud' salt-cloud: 'salt-cloud'
salt-ssh: 'salt-ssh' salt-ssh: 'salt-ssh'
# Set which release of SaltStack to use, default to 'latest'
# To get the available releases:
# * http://repo.saltstack.com/yum/redhat/7/x86_64/
# * http://repo.saltstack.com/apt/debian/8/amd64/
release: 2016.11
# salt master config # salt master config
master: master:
fileserver_backend: fileserver_backend:

View File

@ -40,11 +40,12 @@ Setup variable using grains['os_family'] based logic, only add key:values here
that differ from whats in defaults.yaml that differ from whats in defaults.yaml
##} ##}
{% set osrelease = salt['grains.get']('osrelease') %} {% set osrelease = salt['grains.get']('osrelease') %}
{% set salt_release = salt['pillar.get']('salt:release', 'latest') %}
{% set os_family_map = salt['grains.filter_by']({ {% set os_family_map = salt['grains.filter_by']({
'Debian': { 'Debian': {
'pkgrepo': 'deb http://repo.saltstack.com/apt/' + 'pkgrepo': 'deb http://repo.saltstack.com/apt/' +
salt['grains.get']('os')|lower + '/' + salt['grains.get']('osmajorrelease', osrelease) + '/amd64/latest ' + salt['grains.get']('oscodename') + ' main', salt['grains.get']('os')|lower + '/' + salt['grains.get']('osmajorrelease', osrelease) + '/amd64/' + salt_release + ' ' + salt['grains.get']('oscodename') + ' main',
'key_url': 'https://repo.saltstack.com/apt/' + salt['grains.get']('os')|lower + '/' + salt['grains.get']('osmajorrelease', osrelease) + '/amd64/latest/SALTSTACK-GPG-KEY.pub', 'key_url': 'https://repo.saltstack.com/apt/' + salt['grains.get']('os')|lower + '/' + salt['grains.get']('osmajorrelease', osrelease) + '/amd64/' + salt_release + '/SALTSTACK-GPG-KEY.pub',
'libgit2': 'libgit2-22', 'libgit2': 'libgit2-22',
'gitfs': { 'gitfs': {
'pygit2': { 'pygit2': {
@ -61,6 +62,8 @@ that differ from whats in defaults.yaml
}, },
}, },
'RedHat': { 'RedHat': {
'pkgrepo': 'https://repo.saltstack.com/yum/redhat/$releasever/$basearch/' + salt_release
'key_url': 'https://repo.saltstack.com/yum/redhat/$releasever/$basearch/' + salt_release + '/SALTSTACK-GPG-KEY.pub'
'pygit2': salt['grains.filter_by']({ 'pygit2': salt['grains.filter_by']({
'Fedora': 'python2-pygit2', 'Fedora': 'python2-pygit2',
'default': 'python-pygit2', 'default': 'python-pygit2',
@ -142,8 +145,8 @@ that differ from whats in defaults.yaml
}, merge=salt['grains.filter_by']({ }, merge=salt['grains.filter_by']({
'Ubuntu': { 'Ubuntu': {
'pkgrepo': 'deb http://repo.saltstack.com/apt/' + 'pkgrepo': 'deb http://repo.saltstack.com/apt/' +
salt['grains.get']('os')|lower + '/' + osrelease + '/amd64/latest ' + salt['grains.get']('oscodename') + ' main', salt['grains.get']('os')|lower + '/' + osrelease + '/amd64/' + salt_release + ' ' + salt['grains.get']('oscodename') + ' main',
'key_url': 'https://repo.saltstack.com/apt/' + salt['grains.get']('os')|lower + '/' + osrelease + '/amd64/latest/SALTSTACK-GPG-KEY.pub', 'key_url': 'https://repo.saltstack.com/apt/' + salt['grains.get']('os')|lower + '/' + osrelease + '/amd64/' + salt_release + '/SALTSTACK-GPG-KEY.pub',
'pygit2': 'python-pygit2', 'pygit2': 'python-pygit2',
'gitfs': { 'gitfs': {
'pygit2': { 'pygit2': {
@ -157,8 +160,8 @@ that differ from whats in defaults.yaml
}, },
'Raspbian': { 'Raspbian': {
'pkgrepo': 'deb http://repo.saltstack.com/apt/' + 'pkgrepo': 'deb http://repo.saltstack.com/apt/' +
salt['grains.get']('os_family')|lower + '/' + salt['grains.get']('osmajorrelease', osrelease) + '/armhf/latest ' + salt['grains.get']('oscodename') + ' main', salt['grains.get']('os_family')|lower + '/' + salt['grains.get']('osmajorrelease', osrelease) + '/armhf/' + salt_release + ' ' + salt['grains.get']('oscodename') + ' main',
'key_url': 'https://repo.saltstack.com/apt/' + salt['grains.get']('os_family')|lower + '/' + salt['grains.get']('osmajorrelease', osrelease) + '/armhf/latest/SALTSTACK-GPG-KEY.pub', 'key_url': 'https://repo.saltstack.com/apt/' + salt['grains.get']('os_family')|lower + '/' + salt['grains.get']('osmajorrelease', osrelease) + '/armhf/' + salt_release + '/SALTSTACK-GPG-KEY.pub',
}, },
'SmartOS': { 'SmartOS': {
'salt_master': 'salt', 'salt_master': 'salt',

View File

@ -3,7 +3,7 @@
saltstack-pkgrepo: saltstack-pkgrepo:
pkgrepo.managed: pkgrepo.managed:
- humanname: SaltStack repo for RHEL/CentOS $releasever - humanname: SaltStack repo for RHEL/CentOS $releasever
- baseurl: https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest - baseurl: {{ salt_settings.pkgrepo }}
- enabled: 1 - enabled: 1
- gpgcheck: 1 - gpgcheck: 1
- gpgkey: https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub - gpgkey: {{ salt_settings.key_url }}