Skip to content

Commit 7ec052c

Browse files
authored
Merge pull request voxpupuli#212 from vvolkl/cvmfs-future
add cvmfs-future repository
2 parents 73e4959 + 5412d24 commit 7ec052c

File tree

7 files changed

+71
-3
lines changed

7 files changed

+71
-3
lines changed

REFERENCE.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,13 @@ The following parameters are available in the `cvmfs` class:
128128
* [`cvmfs_max_ttl`](#-cvmfs--cvmfs_max_ttl)
129129
* [`cvmfs_version`](#-cvmfs--cvmfs_version)
130130
* [`repo_base`](#-cvmfs--repo_base)
131+
* [`repo_base_alt`](#-cvmfs--repo_base_alt)
131132
* [`repo_includepkgs`](#-cvmfs--repo_includepkgs)
132133
* [`repo_priority`](#-cvmfs--repo_priority)
133134
* [`repo_proxy`](#-cvmfs--repo_proxy)
134135
* [`repo_config_enabled`](#-cvmfs--repo_config_enabled)
135136
* [`repo_testing_enabled`](#-cvmfs--repo_testing_enabled)
137+
* [`repo_future_enabled`](#-cvmfs--repo_future_enabled)
136138
* [`repo_gpgcheck`](#-cvmfs--repo_gpgcheck)
137139
* [`repo_gpgkey`](#-cvmfs--repo_gpgkey)
138140
* [`repo_manage`](#-cvmfs--repo_manage)
@@ -394,7 +396,13 @@ Default value: `'present'`
394396

395397
Data type: `Stdlib::Httpurl`
396398

397-
URL containting stable, testing and config apt or yum repositories. Default in hiera data.
399+
URL containing stable, testing and config apt or yum repositories. Default in hiera data.
400+
401+
##### <a name="-cvmfs--repo_base_alt"></a>`repo_base_alt`
402+
403+
Data type: `Stdlib::Httpurl`
404+
405+
URL containing stable, Same as repo_base, hosted on a different backend. Default in hiera data.
398406

399407
##### <a name="-cvmfs--repo_includepkgs"></a>`repo_includepkgs`
400408

@@ -434,6 +442,14 @@ Should the testing repository be enabled.
434442

435443
Default value: `false`
436444

445+
##### <a name="-cvmfs--repo_future_enabled"></a>`repo_future_enabled`
446+
447+
Data type: `Boolean`
448+
449+
Should the future (pre-release) repository be enabled.
450+
451+
Default value: `false`
452+
437453
##### <a name="-cvmfs--repo_gpgcheck"></a>`repo_gpgcheck`
438454

439455
Data type: `Boolean`

data/family/Debian.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
---
22

33
cvmfs::repo_base: https://cvmrepo.s3.cern.ch/cvmrepo/apt
4+
cvmfs::repo_base_alt: https://cvmrepo.web.cern.ch/cvmrepo/apt
45
cvmfs::repo_gpgkey: https://cvmrepo.s3.cern.ch/cvmrepo/apt/cernvm.gpg

data/family/RedHat.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22

33
cvmfs::repo_base: https://cvmrepo.s3.cern.ch/cvmrepo/yum
4+
cvmfs::repo_base_alt: https://cvmrepo.web.cern.ch/cvmrepo/yum
45
cvmfs::repo_gpgkey: https://cvmrepo.s3.cern.ch/cvmrepo/yum/RPM-GPG-KEY-CernVM-2048
56
cvmfs::repo_includepkgs:
67
- cvmfs-keys

manifests/apt.pp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
Stdlib::Httpurl $repo_base = $cvmfs::repo_base,
66
Stdlib::Httpurl $repo_gpgkey = $cvmfs::repo_gpgkey,
77
Boolean $repo_testing_enabled = $cvmfs::repo_testing_enabled,
8+
Boolean $repo_future_enabled = $cvmfs::repo_future_enabled,
89
Optional[Stdlib::Httpurl] $repo_proxy = $cvmfs::repo_proxy,
910
Boolean $repo_gpgcheck = $cvmfs::repo_gpgcheck,
1011

@@ -31,4 +32,8 @@
3132
ensure => bool2str($repo_testing_enabled,'present','absent'),
3233
release => "${facts['os']['distro']['codename']}-testing",
3334
}
35+
apt::source { 'cvmfs-future':
36+
ensure => bool2str($repo_future_enabled,'present','absent'),
37+
release => "${facts['os']['distro']['codename']}-future",
38+
}
3439
}

manifests/init.pp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,14 @@
8282
# @param cvmfs_debuglog Create a debug log file at this location.
8383
# @param cvmfs_max_ttl Max ttl.
8484
# @param cvmfs_version Version of cvmfs to install.
85-
# @param repo_base URL containting stable, testing and config apt or yum repositories. Default in hiera data.
85+
# @param repo_base URL containing stable, testing and config apt or yum repositories. Default in hiera data.
86+
# @param repo_base_alt URL containing stable, Same as repo_base, hosted on a different backend. Default in hiera data.
8687
# @param repo_includepkgs Specify an includepkgs to the yum repos to ignore other packages.
8788
# @param repo_priority Yum priority of repositories
8889
# @param repo_proxy http proxy for cvmfs yum package repository
8990
# @param repo_config_enabled Should the config yum repository be enabled
9091
# @param repo_testing_enabled Should the testing repository be enabled.
92+
# @param repo_future_enabled Should the future (pre-release) repository be enabled.
9193
# @param repo_gpgcheck set to false to disable GPG checking
9294
# @param repo_gpgkey Set a custom GPG key for yum repos. Default in hiera data.
9395
# @param repo_manage Set to false to disable yum or apt repositories management.
@@ -135,6 +137,7 @@
135137
#
136138
class cvmfs (
137139
Stdlib::Httpurl $repo_base,
140+
Stdlib::Httpurl $repo_base_alt,
138141
Stdlib::Httpurl $repo_gpgkey,
139142
Variant[Undef,String] $cvmfs_http_proxy,
140143
Optional[Variant[Enum['absent'], Array[String[1]]]] $repo_includepkgs,
@@ -168,6 +171,7 @@
168171
Integer $repo_priority = 80,
169172
Boolean $repo_config_enabled = false,
170173
Boolean $repo_testing_enabled = false,
174+
Boolean $repo_future_enabled = false,
171175
Optional[Stdlib::Httpurl] $repo_proxy = undef,
172176
Boolean $repo_gpgcheck = true,
173177
Optional[Enum['yes','no']] $cvmfs_use_geoapi = undef,

manifests/yum.pp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
#
44
class cvmfs::yum (
55
Stdlib::Httpurl $repo_base = $cvmfs::repo_base,
6+
Stdlib::Httpurl $repo_base_alt = $cvmfs::repo_base_alt,
67
Stdlib::Httpurl $repo_gpgkey = $cvmfs::repo_gpgkey,
78
Integer $repo_priority = $cvmfs::repo_priority,
89
Boolean $repo_config_enabled = $cvmfs::repo_config_enabled,
910
Boolean $repo_testing_enabled = $cvmfs::repo_testing_enabled,
11+
Boolean $repo_future_enabled = $cvmfs::repo_future_enabled,
1012
Optional[Stdlib::Httpurl] $repo_proxy = $cvmfs::repo_proxy,
1113
Boolean $repo_gpgcheck = $cvmfs::repo_gpgcheck,
1214
Optional[Variant[Enum['absent'], Array[String[1]]]] $repo_includepkgs = $cvmfs::repo_includepkgs,
@@ -38,11 +40,18 @@
3840
}
3941

4042
yumrepo { 'cvmfs-testing':
41-
descr => "CVMFS yum testing repository for ${_dir}${facts['os']['release']['major']}",
43+
descr => "CVMFS-testing yum repository for ${_dir}${facts['os']['release']['major']}. Same binaries as production repo, released earlier. Very stable.",
4244
baseurl => "${repo_base}/cvmfs-testing/${_dir}/${facts['os']['release']['major']}/${facts['os']['architecture']}",
4345
enabled => $repo_testing_enabled,
4446
}
4547

48+
yumrepo { 'cvmfs-future':
49+
descr => "CVMFS-future yum repository for ${_dir}${facts['os']['release']['major']}. Tagged pre-releases. Stable.",
50+
# note the use of repo_base_alt - this is in principle a mirror of repo_base, but prereleases are published there first
51+
baseurl => "${repo_base_alt}/cvmfs-future/${_dir}/${facts['os']['release']['major']}/${facts['os']['architecture']}",
52+
enabled => $repo_future_enabled,
53+
}
54+
4655
yumrepo { 'cvmfs-config':
4756
descr => "CVMFS config yum repository for ${_dir}${facts['os']['release']['major']}",
4857
baseurl => "${repo_base}/cvmfs-config/${_dir}/${facts['os']['release']['major']}/${facts['os']['architecture']}",

spec/classes/init_spec.rb

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,13 @@
120120
)
121121
end
122122

123+
it do
124+
is_expected.to contain_yumrepo('cvmfs-future').with(
125+
'enabled' => false,
126+
'gpgcheck' => true
127+
)
128+
end
129+
123130
it do
124131
is_expected.to contain_yumrepo('cvmfs-config').with(
125132
'enabled' => false,
@@ -165,6 +172,31 @@
165172
end
166173
end
167174

175+
context 'with repo_future_enabled true' do
176+
let(:params) do
177+
{ repo_future_enabled: true,
178+
cvmfs_http_proxy: :undef }
179+
end
180+
181+
case facts[:os]['family']
182+
when 'RedHat'
183+
it do
184+
is_expected.to contain_yumrepo('cvmfs-future').with(
185+
'enabled' => true,
186+
'gpgcheck' => true
187+
)
188+
end
189+
else
190+
it {
191+
is_expected.to contain_apt__source('cvmfs-future').with(
192+
{
193+
'ensure' => 'present',
194+
}
195+
)
196+
}
197+
end
198+
end
199+
168200
context 'with mount method setto autofs' do
169201
let(:params) do
170202
{ mount_method: 'autofs',

0 commit comments

Comments
 (0)