diff --git a/manifests/redhat.pp b/manifests/redhat.pp index 939145ab8..df19f884e 100644 --- a/manifests/redhat.pp +++ b/manifests/redhat.pp @@ -14,9 +14,10 @@ if $manage_repo { $keys = [ - 'https://yum.datadoghq.com/DATADOG_RPM_KEY.public', - 'https://yum.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public', - 'https://yum.datadoghq.com/DATADOG_RPM_KEY_20200908.public', + 'https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public', + 'https://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public', + 'https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public', + 'https://keys.datadoghq.com/DATADOG_RPM_KEY.public', ] case $agent_major_version { @@ -30,7 +31,7 @@ } 7 : { $defaulturl = "https://yum.datadoghq.com/stable/7/${::architecture}/" - $gpgkeys = $keys[1,2] + $gpgkeys = $keys[0,-2] } default: { fail('invalid agent_major_version') } } diff --git a/manifests/suse.pp b/manifests/suse.pp index 0835740d3..bb7399277 100644 --- a/manifests/suse.pp +++ b/manifests/suse.pp @@ -11,16 +11,18 @@ String $agent_flavor = $datadog_agent::params::package_name, ) inherits datadog_agent::params { + $current_key = 'https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public' $all_keys = [ - 'https://yum.datadoghq.com/DATADOG_RPM_KEY.public', - 'https://yum.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public', - 'https://yum.datadoghq.com/DATADOG_RPM_KEY_20200908.public', + $current_key, + 'https://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public', + 'https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public', + 'https://keys.datadoghq.com/DATADOG_RPM_KEY.public', ] case $agent_major_version { 5 : { fail('Agent v5 package not available in SUSE') } 6 : { $gpgkeys = $all_keys } - 7 : { $gpgkeys = $all_keys[1,2] } + 7 : { $gpgkeys = $all_keys[0,-2] } default: { fail('invalid agent_major_version') } } @@ -59,7 +61,8 @@ autorefresh => 1, name => 'datadog', gpgcheck => 1, - gpgkey => join($gpgkeys, " "), + # zypper on SUSE < 15 only understands a single gpgkey value + gpgkey => (Float($::operatingsystemmajrelease) >= 15.0) ? { true => join($gpgkeys, "\n "), default => $current_key }, keeppackages => 1, } diff --git a/spec/classes/datadog_agent_redhat_spec.rb b/spec/classes/datadog_agent_redhat_spec.rb index 6d7ec9661..c3aa12e32 100644 --- a/spec/classes/datadog_agent_redhat_spec.rb +++ b/spec/classes/datadog_agent_redhat_spec.rb @@ -27,9 +27,10 @@ is_expected.to contain_yumrepo('datadog') .with_enabled(1)\ .with_gpgcheck(1)\ - .with_gpgkey('https://yum.datadoghq.com/DATADOG_RPM_KEY.public - https://yum.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public - https://yum.datadoghq.com/DATADOG_RPM_KEY_20200908.public')\ + .with_gpgkey('https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public + https://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public + https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public + https://keys.datadoghq.com/DATADOG_RPM_KEY.public')\ .with_baseurl('https://yum.datadoghq.com/rpm/x86_64/') end end @@ -74,9 +75,10 @@ is_expected.to contain_yumrepo('datadog') .with_enabled(1)\ .with_gpgcheck(1)\ - .with_gpgkey('https://yum.datadoghq.com/DATADOG_RPM_KEY.public - https://yum.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public - https://yum.datadoghq.com/DATADOG_RPM_KEY_20200908.public')\ + .with_gpgkey('https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public + https://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public + https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public + https://keys.datadoghq.com/DATADOG_RPM_KEY.public')\ .with_baseurl('https://yum.datadoghq.com/stable/6/x86_64/') end end @@ -122,8 +124,9 @@ is_expected.to contain_yumrepo('datadog') .with_enabled(1)\ .with_gpgcheck(1)\ - .with_gpgkey('https://yum.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public - https://yum.datadoghq.com/DATADOG_RPM_KEY_20200908.public')\ + .with_gpgkey('https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public + https://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public + https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public')\ .with_baseurl('https://yum.datadoghq.com/stable/7/x86_64/') end end diff --git a/spec/classes/datadog_agent_suse_spec.rb b/spec/classes/datadog_agent_suse_spec.rb index 7309d4bb6..4bb12e261 100644 --- a/spec/classes/datadog_agent_suse_spec.rb +++ b/spec/classes/datadog_agent_suse_spec.rb @@ -12,35 +12,88 @@ } end - context 'agent 6' do - let(:params) do + context 'suse >= 15' do + let(:facts) do { - agent_major_version: 6, + operatingsystemmajrelease: '15', } end - it do - is_expected.to contain_zypprepo('datadog') - .with_enabled(1)\ - .with_gpgcheck(1)\ - .with_gpgkey('https://yum.datadoghq.com/DATADOG_RPM_KEY.public https://yum.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public https://yum.datadoghq.com/DATADOG_RPM_KEY_20200908.public')\ - .with_baseurl('https://yum.datadoghq.com/suse/stable/6/x86_64') + context 'agent 6' do + let(:params) do + { + agent_major_version: 6, + } + end + + it do + is_expected.to contain_zypprepo('datadog') + .with_enabled(1)\ + .with_gpgcheck(1)\ + .with_gpgkey('https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public + https://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public + https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public + https://keys.datadoghq.com/DATADOG_RPM_KEY.public')\ + .with_baseurl('https://yum.datadoghq.com/suse/stable/6/x86_64') + end + end + + context 'agent 7' do + let(:params) do + { + agent_major_version: 7, + } + end + + it do + is_expected.to contain_zypprepo('datadog') + .with_enabled(1)\ + .with_gpgcheck(1)\ + .with_gpgkey('https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public + https://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public + https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public')\ + .with_baseurl('https://yum.datadoghq.com/suse/stable/7/x86_64') + end end end - context 'agent 7' do - let(:params) do + context 'suse < 15' do + let(:facts) do { - agent_major_version: 7, + operatingsystemmajrelease: '14', } end - it do - is_expected.to contain_zypprepo('datadog') - .with_enabled(1)\ - .with_gpgcheck(1)\ - .with_gpgkey('https://yum.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public https://yum.datadoghq.com/DATADOG_RPM_KEY_20200908.public')\ - .with_baseurl('https://yum.datadoghq.com/suse/stable/7/x86_64') + context 'agent 6' do + let(:params) do + { + agent_major_version: 6, + } + end + + it do + is_expected.to contain_zypprepo('datadog') + .with_enabled(1)\ + .with_gpgcheck(1)\ + .with_gpgkey('https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public')\ + .with_baseurl('https://yum.datadoghq.com/suse/stable/6/x86_64') + end + end + + context 'agent 7' do + let(:params) do + { + agent_major_version: 7, + } + end + + it do + is_expected.to contain_zypprepo('datadog') + .with_enabled(1)\ + .with_gpgcheck(1)\ + .with_gpgkey('https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public')\ + .with_baseurl('https://yum.datadoghq.com/suse/stable/7/x86_64') + end end end