diff --git a/README.markdown b/README.markdown index b7222d5..513fc2b 100644 --- a/README.markdown +++ b/README.markdown @@ -170,6 +170,22 @@ For a full list of OpenDaylight releases and their CBS repos, see the This is only read for RedHat based operating systems. For Debian based OSs, this values is `none`. +It's also possible to use the baseurl parameter to have a custom repository. + +```puppet +class { 'opendaylight': + rpm_repo => 'opendaylight-5-testing', + baseurl => 'http://cbs.centos.org/repos/nfv7-opendaylight-5-testing/$basearch/os/' +} +``` +To disable the repository (For example when a repository for OpenDaylight already exists) use: + +```puppet +class { 'opendaylight': + manage_repositories => false, +} +``` + ### Deb Repo The `deb_repo` param can be used to configure which Deb repository diff --git a/manifests/init.pp b/manifests/init.pp index 187e7ae..957212f 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -15,6 +15,10 @@ # [*rpm_repo*] # OpenDaylight CentOS CBS repo to install RPM from (opendaylight-4-testing, # opendaylight-40-release, ...). +# [*baseurl*] +# The Yum repository URL that holds the OpenDaylight RPM +# [*rpm_repo_gpgcheck*] +# Enable or disable GPG check for the RPM repository # [*deb_repo*] # OpenDaylight Launchpad PPA repo to install .deb from (ppa:odl-team/boron, # ppa:odl-team/carbon, ...). @@ -44,6 +48,8 @@ $odl_rest_port = $::opendaylight::params::odl_rest_port, $odl_bind_ip = $::opendaylight::params::odl_bind_ip, $rpm_repo = $::opendaylight::params::rpm_repo, + $baseurl = "http://cbs.centos.org/repos/nfv7-${rpm_repo}/\$basearch/os/", + $rpm_repo_gpgcheck = $::opendaylight::params::rpm_repo_gpgcheck, $deb_repo = $::opendaylight::params::deb_repo, $log_levels = $::opendaylight::params::log_levels, $enable_ha = $::opendaylight::params::enable_ha, diff --git a/manifests/params.pp b/manifests/params.pp index 886bf0a..7d98dce 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -14,6 +14,7 @@ $odl_bind_ip = '0.0.0.0' $rpm_repo = 'opendaylight-5-testing' $deb_repo = 'ppa:odl-team/boron' + $rpm_repo_gpgcheck = 0 $log_levels = {} $enable_ha = false $ha_node_ips = [] diff --git a/manifests/repos.pp b/manifests/repos.pp index 2ef3511..fda6b27 100644 --- a/manifests/repos.pp +++ b/manifests/repos.pp @@ -25,7 +25,8 @@ $deb_repo = $::opendaylight::deb_repo, $rpm_repo = $::opendaylight::rpm_repo, $rpm_repo_enabled = 1, - $rpm_repo_gpgcheck = 0, + $rpm_repo_gpgcheck = $::opendaylight::rpm_repo_gpgcheck, + $baseurl = $::opendaylight::baseurl, ) inherits ::opendaylight { if $::osfamily == 'RedHat' { # Add OpenDaylight's Yum repository @@ -34,7 +35,7 @@ # Seems to default to present, but docs don't say # https://docs.puppetlabs.com/references/3.4.0/type.html#yumrepo # https://docs.puppetlabs.com/references/3.5.0/type.html#yumrepo - baseurl => "http://cbs.centos.org/repos/nfv7-${rpm_repo}/\$basearch/os/", + baseurl => $baseurl, descr => 'OpenDaylight SDN Controller', enabled => $rpm_repo_enabled, # NB: RPM signing is an active TODO, but is not done. We will enable diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 9571e2a..b3f4249 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -217,6 +217,8 @@ def rpm_install_tests(options = {}) # Extract params rpm_repo = options.fetch(:rpm_repo, 'opendaylight-5-testing') java_opts = options.fetch(:java_opts, '-Djava.net.preferIPv4Stack=true') + baseurl = options.fetch(:baseurl, "http://cbs.centos.org/repos/nfv7-#{rpm_repo}/$basearch/os/") + enable_repo = options.fetch(:enable_repo, '1') # Default to CentOS 7 Yum repo URL @@ -233,10 +235,10 @@ def rpm_install_tests(options = {}) # don't support 1.8.7 so that's okay. See issue #36. it { should contain_yumrepo(rpm_repo).with( - 'enabled' => '1', + 'enabled' => "#{enable_repo}", 'gpgcheck' => '0', 'descr' => 'OpenDaylight SDN Controller', - 'baseurl' => "http://cbs.centos.org/repos/nfv7-#{rpm_repo}/$basearch/os/", + 'baseurl' => "#{baseurl}", ) } it {