diff --git a/data/os/RedHat/CentOS.yaml b/data/os/RedHat/CentOS.yaml index 3f23c222..19aa8230 100644 --- a/data/os/RedHat/CentOS.yaml +++ b/data/os/RedHat/CentOS.yaml @@ -1,31 +1,11 @@ --- yum::os_default_repos: - - 'base' - - 'updates' - 'extras' - 'centosplus' - - 'base-source' - - 'updates-source' + - 'fasttrack' - 'extras-source' - 'base-debuginfo' - - 'centos-media' yum::repos: - base: - enabled: true - descr: 'CentOS-$releasever - Base' - mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra' - gpgcheck: true - gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-%{facts.os.release.major}" - target: '/etc/yum.repos.d/CentOS-Base.repo' - - updates: - enabled: true - descr: 'CentOS-$releasever - Updates' - mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra' - gpgcheck: true - gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-%{facts.os.release.major}" - target: '/etc/yum.repos.d/CentOS-Base.repo' - extras: enabled: false descr: 'CentOS-$releasever - Extras' @@ -42,22 +22,6 @@ yum::repos: gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-%{facts.os.release.major}" target: '/etc/yum.repos.d/CentOS-Base.repo' - contrib: - enabled: false - descr: 'CentOS-$releasever - Contrib' - mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra' - gpgcheck: true - gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-%{facts.os.release.major}" - target: '/etc/yum.repos.d/CentOS-Base.repo' - - cr: - enabled: false - descr: 'CentOS-$releasever - cr' - baseurl: 'http://mirror.centos.org/centos/$releasever/cr/$basearch/' - gpgcheck: true - gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-%{facts.os.release.major}" - target: '/etc/yum.repos.d/CentOS-CR.repo' - fasttrack: enabled: false descr: 'CentOS-$releasever - fasttrack' @@ -66,22 +30,6 @@ yum::repos: gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-%{facts.os.release.major}" target: '/etc/yum.repos.d/CentOS-fasttrack.repo' - base-source: - enabled: false - descr: 'CentOS-$releasever - Base Sources' - baseurl: 'http://vault.centos.org/centos/$releasever/os/Source/' - gpgcheck: true - gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-%{facts.os.release.major}" - target: '/etc/yum.repos.d/CentOS-Sources.repo' - - updates-source: - enabled: false - descr: 'CentOS-$releasever - Updates Sources' - baseurl: 'http://vault.centos.org/centos/$releasever/updates/Source/' - gpgcheck: true - gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-%{facts.os.release.major}" - target: '/etc/yum.repos.d/CentOS-Sources.repo' - extras-source: enabled: false descr: 'CentOS-$releasever - Extras Sources' @@ -97,11 +45,3 @@ yum::repos: gpgcheck: true gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-%{facts.os.release.major}" target: '/etc/yum.repos.d/CentOS-Debuginfo.repo' - - centos-media: - enabled: false - descr: 'CentOS-$releasever - Media' - baseurl: 'file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/' - gpgcheck: true - gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-%{facts.os.release.major}" - target: '/etc/yum.repos.d/CentOS-Media.repo' diff --git a/data/os/RedHat/CentOS/6.yaml b/data/os/RedHat/CentOS/6.yaml index a98d7b10..186ba88f 100644 --- a/data/os/RedHat/CentOS/6.yaml +++ b/data/os/RedHat/CentOS/6.yaml @@ -1,3 +1,56 @@ --- yum::os_default_repos: + - 'base' + - 'updates' - 'contrib' + - 'base-source' + - 'updates-source' + - 'centos-media' +yum::repos: + base: + enabled: true + descr: 'CentOS-$releasever - Base' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6" + target: '/etc/yum.repos.d/CentOS-Base.repo' + + updates: + enabled: true + descr: 'CentOS-$releasever - Updates' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6" + target: '/etc/yum.repos.d/CentOS-Base.repo' + + contrib: + enabled: false + descr: 'CentOS-$releasever - Contrib' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6" + target: '/etc/yum.repos.d/CentOS-Base.repo' + + base-source: + enabled: false + descr: 'CentOS-$releasever - Base Sources' + baseurl: 'http://vault.centos.org/centos/$releasever/os/Source/' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6" + target: '/etc/yum.repos.d/CentOS-Sources.repo' + + updates-source: + enabled: false + descr: 'CentOS-$releasever - Updates Sources' + baseurl: 'http://vault.centos.org/centos/$releasever/updates/Source/' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6" + target: '/etc/yum.repos.d/CentOS-Sources.repo' + + centos-media: + enabled: false + descr: 'CentOS-$releasever - Media' + baseurl: 'file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6" + target: '/etc/yum.repos.d/CentOS-Media.repo' diff --git a/data/os/RedHat/CentOS/7.yaml b/data/os/RedHat/CentOS/7.yaml index 16d56d5f..4a4ddc36 100644 --- a/data/os/RedHat/CentOS/7.yaml +++ b/data/os/RedHat/CentOS/7.yaml @@ -1,3 +1,56 @@ --- yum::os_default_repos: + - 'base' + - 'updates' - 'cr' + - 'base-source' + - 'updates-source' + - 'centos-media' +yum::repos: + base: + enabled: true + descr: 'CentOS-$releasever - Base' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7" + target: '/etc/yum.repos.d/CentOS-Base.repo' + + updates: + enabled: true + descr: 'CentOS-$releasever - Updates' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7" + target: '/etc/yum.repos.d/CentOS-Base.repo' + + cr: + enabled: false + descr: 'CentOS-$releasever - cr' + baseurl: 'http://mirror.centos.org/centos/$releasever/cr/$basearch/' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7" + target: '/etc/yum.repos.d/CentOS-CR.repo' + + base-source: + enabled: false + descr: 'CentOS-$releasever - Base Sources' + baseurl: 'http://vault.centos.org/centos/$releasever/os/Source/' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7" + target: '/etc/yum.repos.d/CentOS-Sources.repo' + + updates-source: + enabled: false + descr: 'CentOS-$releasever - Updates Sources' + baseurl: 'http://vault.centos.org/centos/$releasever/updates/Source/' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7" + target: '/etc/yum.repos.d/CentOS-Sources.repo' + + centos-media: + enabled: false + descr: 'CentOS-$releasever - Media' + baseurl: 'file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7" + target: '/etc/yum.repos.d/CentOS-Media.repo' diff --git a/data/os/RedHat/CentOS/8.yaml b/data/os/RedHat/CentOS/8.yaml new file mode 100644 index 00000000..6f0012a2 --- /dev/null +++ b/data/os/RedHat/CentOS/8.yaml @@ -0,0 +1,108 @@ +yum::os_default_repos: + - 'AppStream' + - 'BaseOS' + - 'cr' + - 'Devel' + - 'HA' + - 'PowerTools' + - 'BaseOS-source' + - 'Appstream-source' + - 'c8-media-BaseOS' + - 'c8-media-AppStream' + +yum::repos: + AppStream: + enabled: true + descr: 'CentOS-$releasever - AppStream' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial" + target: '/etc/yum.repos.d/CentOS-AppStream.repo' + + BaseOS: + enabled: true + descr: 'CentOS-$releasever - Base' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial" + target: '/etc/yum.repos.d/CentOS-Base.repo' + + cr: + enabled: false + descr: 'CentOS-$releasever - cr' + baseurl: 'http://mirror.centos.org/$contentdir/$releasever/cr/$basearch/os/' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial" + target: '/etc/yum.repos.d/CentOS-CR.repo' + + Devel: + enabled: false + descr: 'CentOS-$releasever - Devel WARNING! FOR BUILDROOT USE ONLY!' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=Devel&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial" + target: '/etc/yum.repos.d/CentOS-Devel.repo' + + HA: + enabled: false + descr: 'CentOS-$releasever - HA' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=HighAvailability&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial" + target: '/etc/yum.repos.d/CentOS-HA.repo' + + extras: + enabled: true + descr: 'CentOS-$releasever - Extras' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial" + target: '/etc/yum.repos.d/CentOS-Extras.repo' + + PowerTools: + enabled: false + descr: 'CentOS-$releasever - PowerTools' + mirrorlist: 'http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=PowerTools&infra=$infra' + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial" + target: '/etc/yum.repos.d/CentOS-PowerTools.repo' + + BaseOS-source: + enabled: false + descr: 'CentOS-$releasever - BaseOS Sources' + baseurl: 'http://vault.centos.org/$contentdir/$releasever/BaseOS/Source/' + gpgcheck: true + gpgkey: 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial' + target: '/etc/yum.repos.d/CentOS-Sources.repo' + + Appstream-source: + enabled: false + descr: 'CentOS-$releasever - Appstream Sources' + baseurl: 'http://vault.centos.org/$contentdir/$releasever/Appstream/Source/' + gpgcheck: true + gpgkey: 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial' + target: '/etc/yum.repos.d/CentOS-Sources.repo' + + centosplus-source: + enabled: false + descr: 'CentOS-$releasever - Plus Sources' + baseurl: 'http://vault.centos.org/$contentdir/$releasever/centosplus/Source/' + gpgcheck: true + gpgkey: 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial' + target: '/etc/yum.repos.d/CentOS-Sources.repo' + + c8-media-BaseOS: + enabled: false + descr: 'CentOS-BaseOS-$releasever - Media' + baseurl: "file:///media/CentOS/BaseOS\n file:///media/cdrom/BaseOS\n file:///media/cdrecorder/BaseOS" + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial" + target: '/etc/yum.repos.d/CentOS-Media.repo' + + c8-media-AppStream: + enabled: false + descr: 'CentOS-AppStream-$releasever - Media' + baseurl: "file:///media/CentOS/AppStream\n file:///media/cdrom/AppStream\n file:///media/cdrecorder/AppStream" + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial" + target: '/etc/yum.repos.d/CentOS-Media.repo' diff --git a/data/repos/RedHat/8.yaml b/data/repos/RedHat/8.yaml new file mode 100644 index 00000000..37ce5b05 --- /dev/null +++ b/data/repos/RedHat/8.yaml @@ -0,0 +1,138 @@ +--- +# This file contains miscellaneous, non-distro repositories. +yum::repos: + # EPEL + epel: + descr: "Extra Packages for Enterprise Linux $releasever - $basearch" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: true + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + target: '/etc/yum.repos.d/epel.repo' + + epel-debuginfo: + descr: "Extra Packages for Enterprise Linux $releasever - $basearch - Debug" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=epel-debug-$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + gpgcheck: true + target: '/etc/yum.repos.d/epel.repo' + + epel-source: + descr: "Extra Packages for Enterprise Linux $releasever - $basearch - Source" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=epel-source-$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + gpgcheck: true + target: '/etc/yum.repos.d/epel.repo' + + epel-testing: + descr: "Extra Packages for Enterprise Linux $releasever - Testing - $basearch" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=testing-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + target: '/etc/yum.repos.d/epel-testing.repo' + + epel-testing-debuginfo: + descr: "Extra Packages for Enterprise Linux $releasever - Testing - $basearch - Debug" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + gpgcheck: true + target: '/etc/yum.repos.d/epel-testing.repo' + + epel-testing-source: + descr: "Extra Packages for Enterprise Linux $releasever - Testing - $basearch - Source" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + gpgcheck: true + target: '/etc/yum.repos.d/epel-testing.repo' + + epel-playground: + descr: "Extra Packages for Enterprise Linux $releasever - Playground - $basearch" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=playground-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + target: '/etc/yum.repos.d/epel-playground.repo' + + epel-playground-debuginfo: + descr: "Extra Packages for Enterprise Linux $releasever - Playground - $basearch - Debug" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=playground-debug-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + gpgcheck: true + target: '/etc/yum.repos.d/epel-playground.repo' + + epel-playground-source: + descr: "Extra Packages for Enterprise Linux $releasever - Playground - $basearch - Source" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=playground-source-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + gpgcheck: true + target: '/etc/yum.repos.d/epel-playground.repo' + + epel-modular: + descr: "Extra Packages for Enterprise Linux Modular $releasever - $basearch" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=modular-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: true + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + target: '/etc/yum.repos.d/epel-modular.repo' + + epel-modular-debuginfo: + descr: "Extra Packages for Enterprise Linux Modular $releasever - $basearch - Debug" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=modular-debug-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + gpgcheck: true + target: '/etc/yum.repos.d/epel-modular.repo' + + epel-modular-source: + descr: "Extra Packages for Enterprise Linux Modular $releasever - $basearch - Source" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=modular-source-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + gpgcheck: true + target: '/etc/yum.repos.d/epel-modular.repo' + + epel-testing-modular: + descr: "Extra Packages for Enterprise Linux Modular $releasever - Testing - $basearch" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=testing-modular-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgcheck: true + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + target: '/etc/yum.repos.d/epel-testing-modular.repo' + + epel-testing-modular-debuginfo: + descr: "Extra Packages for Enterprise Linux Modular $releasever - Testing -$basearch - Debug" + metalink: "https://mirrors.fedoraproject.org/metalink?repo=testing-modular-debug-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + mirrorlist: absent + enabled: false + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + gpgcheck: true + target: '/etc/yum.repos.d/epel-testing-modular.repo' + + epel-testing-modular-source: + descr: "Extra Packages for Enterprise Linux Modular $releasever - Testing -$basearch - Source" + mirrorlist: absent + metalink: "https://mirrors.fedoraproject.org/metalink?repo=testing-modular-source-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir" + enabled: false + gpgkey: "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-%{facts.os.release.major}" + gpgcheck: true + target: '/etc/yum.repos.d/epel-testing-modular.repo' diff --git a/data/repos.yaml b/data/repos/repos.yaml similarity index 100% rename from data/repos.yaml rename to data/repos/repos.yaml diff --git a/hiera.yaml b/hiera.yaml index d832c07e..1261d72e 100644 --- a/hiera.yaml +++ b/hiera.yaml @@ -15,7 +15,9 @@ hierarchy: - 'os/%{facts.os.family}.yaml' - name: 'Non-OS Yumrepos' - path: 'repos.yaml' + paths: + - 'repos/%{facts.os.family}/%{facts.os.release.major}.yaml' + - 'repos/repos.yaml' - name: 'Common Data' path: 'common.yaml' diff --git a/spec/classes/init_spec.rb b/spec/classes/init_spec.rb index b0e0204e..60a26e7c 100644 --- a/spec/classes/init_spec.rb +++ b/spec/classes/init_spec.rb @@ -19,6 +19,12 @@ end end +shared_examples 'a catalog not containing repos' do |repos| + repos.each do |repo| + it { is_expected.not_to contain_yumrepo(repo) } + end +end + describe 'yum' do on_supported_os.each do |os, facts| context "on #{os}" do @@ -42,27 +48,78 @@ case facts[:os]['name'] when 'CentOS' it_behaves_like 'a catalog containing repos', [ - 'base', - 'updates', 'extras', - 'base-source', - 'updates-source', + 'centosplus', + 'fasttrack', 'extras-source', 'base-debuginfo', - 'centosplus', - 'centos-media' ] case facts[:os]['release']['major'] when '8' - it { is_expected.to have_yumrepo_resource_count(9) } + it_behaves_like 'a catalog containing repos', [ + 'AppStream', + 'BaseOS', + 'cr', + 'Devel', + 'HA', + 'PowerTools', + 'BaseOS-source', + 'Appstream-source', + 'c8-media-BaseOS', + 'c8-media-AppStream' + ] + it_behaves_like 'a catalog not containing repos', [ + 'base', + 'updates', + 'contrib', + 'base-source', + 'updates-source', + 'centos-media' + ] when '7' - it { is_expected.to contain_yumrepo('cr') } - it { is_expected.not_to contain_yumrepo('contrib') } + it_behaves_like 'a catalog containing repos', [ + 'base', + 'updates', + 'cr', + 'base-source', + 'updates-source', + 'centos-media' + ] + it_behaves_like 'a catalog not containing repos', [ + 'contrib', + 'AppStream', + 'BaseOS', + 'Devel', + 'HA', + 'PowerTools', + 'BaseOS-source', + 'Appstream-source', + 'c8-media-BaseOS', + 'c8-media-AppStream' + ] when '6' - it { is_expected.to contain_yumrepo('contrib') } - it { is_expected.not_to contain_yumrepo('cr') } + it_behaves_like 'a catalog containing repos', [ + 'contrib', + 'base', + 'updates', + 'centos-media', + 'base-source', + 'updates-source' + ] + it_behaves_like 'a catalog not containing repos', [ + 'cr', + 'AppStream', + 'BaseOS', + 'Devel', + 'HA', + 'PowerTools', + 'BaseOS-source', + 'Appstream-source', + 'c8-media-BaseOS', + 'c8-media-AppStream' + ] else - it { is_expected.to have_yumrepo_resource_count(10) } + it { is_expected.to have_yumrepo_resource_count(4) } end when 'Amazon' it { is_expected.to have_yumrepo_resource_count(16) } # rubocop:disable RSpec/RepeatedExample @@ -150,21 +207,63 @@ end context 'and the CentOS base repo is negated' do - let(:params) { super().merge(repo_exclusions: ['base']) } + case facts[:os]['release']['major'] + when '8' + let(:params) { super().merge(repo_exclusions: ['BaseOS']) } + else + let(:params) { super().merge(repo_exclusions: ['base']) } + end case facts[:os]['name'] when 'CentOS' it { is_expected.not_to contain_yumrepo('base') } - it_behaves_like 'a catalog containing repos', [ - 'updates', - 'extras', - 'base-source', - 'updates-source', - 'extras-source', - 'base-debuginfo', - 'centosplus', - 'centos-media' - ] + it { is_expected.not_to contain_yumrepo('BaseOS') } + case facts[:os]['release']['major'] + when '8' + it_behaves_like 'a catalog containing repos', [ + 'AppStream', + 'cr', + 'Devel', + 'fasttrack', + 'HA', + 'PowerTools', + 'BaseOS-source', + 'Appstream-source', + 'c8-media-BaseOS', + 'c8-media-AppStream' + ] + when '7' + it_behaves_like 'a catalog containing repos', [ + 'cr', + 'updates', + 'extras', + 'base-source', + 'updates-source', + 'extras-source', + 'base-debuginfo', + 'centosplus', + 'centos-media' + ] + when '6' + it_behaves_like 'a catalog containing repos', [ + 'contrib', + 'updates', + 'extras', + 'base-source', + 'updates-source', + 'extras-source', + 'base-debuginfo', + 'centosplus', + 'centos-media' + ] + else + it_behaves_like 'a catalog containing repos', [ + 'extras', + 'centosplus', + 'extras-source', + 'base-debuginfo' + ] + end when 'Amazon' it { is_expected.to have_yumrepo_resource_count(16) } # rubocop:disable RSpec/RepeatedExample it_behaves_like 'a catalog containing repos', [ @@ -256,7 +355,18 @@ # TODO: This should be generated with something like `lookup('yum::repos').keys`, # but the setup for `Puppet::Pops::Lookup` is to complicated to be worth it as of # this writing (2017-04-11). For now, we just pull from `repos.yaml`. - repos_yaml_data = YAML.safe_load(File.read('./spec/fixtures/modules/yum/data/repos.yaml')) + + repos_yaml_data = YAML.safe_load(File.read('./spec/fixtures/modules/yum/data/repos/repos.yaml')) + + case facts[:os]['family'] + when 'RedHat' + case facts[:os]['release']['major'] + when '8' + rh8_repos_yaml_data = YAML.safe_load(File.read('./spec/fixtures/modules/yum/data/repos/RedHat/8.yaml')) + repos_yaml_data = repos_yaml_data.deep_merge(rh8_repos_yaml_data) + end + end + supported_repos = repos_yaml_data['yum::repos'].keys supported_repos.each do |supported_repo| @@ -353,6 +463,8 @@ it { is_expected.to contain_yumrepo('epel') } case facts[:os]['release']['major'] + when '8' + it { is_expected.to contain_yum__gpgkey('/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8') } when '7' it { is_expected.to contain_yum__gpgkey('/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7') } when '6'