beaker-pe 3.6.7 → 3.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c64a23179a869b41ceb2ea32740a983e8a27172939f4347b6401d94265c1f26
4
- data.tar.gz: 1f961918eda0b697d7246d4abef2cf451f742a5f816a9667e3d2259ca415d7b9
3
+ metadata.gz: 5bf28b377830e292e4f4e31e158fe194f05efc02863763561459208baa67249e
4
+ data.tar.gz: b00ca47f6d3868058015566c13681cb49d9b399be2a398f2dad3568ebb5129d2
5
5
  SHA512:
6
- metadata.gz: '07931522f4f5f30eb04235539a1b9d3d30b3cc16eb551bb7d78b5eed7f010b62b9bcd07de1b15b66be5419bdf273b44c097710484b8976597b8b1ce67efab31c'
7
- data.tar.gz: 27cd5ed3c62caa3899b980fd3f63c0c3c5c0c5f5f52e1dca4601d50ba70a7c1132b2dc07a56a019caff526e83cb9c74523dd25c6321cc26fb0463c95344acc7a
6
+ metadata.gz: 4b340f0b9833a7536dad2a862d0eb85c400c2c1fcc83aa6ee5549a6dbd3490a73cd0c3dc2fd14b89d0c80487a3bf377a84dcb5f11c35e62dc293adc960385991
7
+ data.tar.gz: 2ea95782b9ade1c357ac4d7a262da2eb4ee0bacb222300a445bac274cef9dd7570a2c761e6fe65c9dd9cb399820cf117ee73e9850df66632c5ad474f6739a1b3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.6.9](https://github.com/puppetlabs/beaker-pe/tree/3.6.9) (2026-10-20)
4
+
5
+ [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/3.6.8...3.6.9)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - \(PE-47138\) Add el-7 puppet-agent install support via agent-downloads [\#316](https://github.com/puppetlabs/beaker-pe/pull/316) ([shubhamshinde360](https://github.com/shubhamshinde360))
10
+
11
+ ## [3.6.8](https://github.com/puppetlabs/beaker-pe/tree/3.6.8) (2026-09-21)
12
+
13
+ [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/3.6.7...3.6.8)
14
+
15
+ **Merged pull requests:**
16
+
17
+ - \(PE-32680\) Fix GPG key refresh for PE 2023.8.0 and earlier [\#308](https://github.com/puppetlabs/beaker-pe/pull/308) ([cthorn42](https://github.com/cthorn42))
18
+
3
19
  ## [3.6.7](https://github.com/puppetlabs/beaker-pe/tree/3.6.7) (2026-08-14)
4
20
 
5
21
  [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/3.6.6...3.6.7)
@@ -108,19 +124,19 @@
108
124
 
109
125
  ## [2.19.0](https://github.com/puppetlabs/beaker-pe/tree/2.19.0) (2024-06-21)
110
126
 
111
- [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/3.2.0...2.19.0)
127
+ [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/2.18.0...2.19.0)
112
128
 
113
129
  **Implemented enhancements:**
114
130
 
115
131
  - \(PE-38685\) Beaker 6 upgrade [\#281](https://github.com/puppetlabs/beaker-pe/pull/281) ([tlehman](https://github.com/tlehman))
116
132
 
117
- ## [3.2.0](https://github.com/puppetlabs/beaker-pe/tree/3.2.0) (2024-06-11)
133
+ ## [2.18.0](https://github.com/puppetlabs/beaker-pe/tree/2.18.0) (2024-06-11)
118
134
 
119
- [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/2.18.0...3.2.0)
135
+ [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/3.2.0...2.18.0)
120
136
 
121
- ## [2.18.0](https://github.com/puppetlabs/beaker-pe/tree/2.18.0) (2024-06-11)
137
+ ## [3.2.0](https://github.com/puppetlabs/beaker-pe/tree/3.2.0) (2024-06-11)
122
138
 
123
- [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/3.1.0...2.18.0)
139
+ [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/3.1.0...3.2.0)
124
140
 
125
141
  **Implemented enhancements:**
126
142
 
@@ -128,19 +144,19 @@
128
144
 
129
145
  ## [3.1.0](https://github.com/puppetlabs/beaker-pe/tree/3.1.0) (2024-05-22)
130
146
 
131
- [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/2.17.0...3.1.0)
147
+ [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/3.0.1...3.1.0)
132
148
 
133
149
  **Merged pull requests:**
134
150
 
135
151
  - \(PE-37784\) Remove upper bound for beaker-puppet [\#273](https://github.com/puppetlabs/beaker-pe/pull/273) ([nmburgan](https://github.com/nmburgan))
136
152
 
137
- ## [2.17.0](https://github.com/puppetlabs/beaker-pe/tree/2.17.0) (2024-04-10)
153
+ ## [3.0.1](https://github.com/puppetlabs/beaker-pe/tree/3.0.1) (2024-04-10)
138
154
 
139
- [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/3.0.1...2.17.0)
155
+ [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/2.17.0...3.0.1)
140
156
 
141
- ## [3.0.1](https://github.com/puppetlabs/beaker-pe/tree/3.0.1) (2024-04-10)
157
+ ## [2.17.0](https://github.com/puppetlabs/beaker-pe/tree/2.17.0) (2024-04-10)
142
158
 
143
- [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/2.16.1...3.0.1)
159
+ [Full Changelog](https://github.com/puppetlabs/beaker-pe/compare/2.16.1...2.17.0)
144
160
 
145
161
  ## [2.16.1](https://github.com/puppetlabs/beaker-pe/tree/2.16.1) (2024-03-19)
146
162
 
@@ -408,6 +408,22 @@ NOASK
408
408
  host.install_package_with_rpm("#{path}/#{filename}#{extension}")
409
409
  end
410
410
 
411
+ # Determine the build package to download on an el-7 (Intel) host, install that package onto the host.
412
+ # Assumed file name format: puppet-agent-9.1.1.13-1.el7.x86_64.rpm.
413
+ # This method should be called after puppet is installed on the master since it relies on the master
414
+ # telling it the puppet agent version to form the download URL.
415
+ # @param [Host] host The el-7 host to download and install the package on.
416
+ # @param [Hash{Symbol=>Symbol, String}] opts The options
417
+ # @api private
418
+ def install_rpm_on_el7_host(host, puppet_agent_ver, opts)
419
+ # Since el-7 builds are not available in PE, download from agent-downloads.
420
+ vars = agent_package_common_vars(puppet_agent_ver, opts)
421
+ path = "#{vars[:agent_downloads_url]}/#{puppet_agent_ver}/repos/el/7/#{vars[:stream]}/x86_64"
422
+ filename = "puppet-agent-#{vars[:master_aio_version]}-1.el7.x86_64"
423
+ extension = ".rpm"
424
+ host.install_package_with_rpm("#{path}/#{filename}#{extension}")
425
+ end
426
+
411
427
  #Determine the PE package to download/upload on a windows host, download/upload that package onto the host.
412
428
  #Assumed file name format: puppet-enterprise-3.3.0-rc1-559-g97f0833.msi
413
429
  # @param [Host] host The windows host to download/upload and unpack PE onto
@@ -510,13 +526,13 @@ NOASK
510
526
  end
511
527
 
512
528
  #PE-32680, GPG expired on older PE versions, need to update with a new GPG key on the primary server
513
- #only affects PE versions 2019.8.4 and earlier, and only needed for debian, ubuntu, and sles agent platforms
529
+ #only affects PE versions 2023.8.0 and earlier, and only needed for debian, ubuntu, and sles agent platforms
514
530
  # @param [Host] host to see if we need to update the gpg key
515
531
  # @param [String] location of the GPG key we intend to overwrite
516
- # If someone is using this gem and is not on the PE private network, they need to download the new private GPG key and host
517
- # it somewhere, then set the URL as an enviromental variable GPG_URL.
532
+ # Defaults to Puppet's public release key (same key, renewed self-signature); override
533
+ # via the GPG_URL environment variable if a different source is needed.
518
534
  def gpg_key_overwrite(host, location)
519
- gpg_url = ENV['GPG_URL'] || 'https://artifactory.delivery.puppetlabs.net/artifactory/generic__local/extended_gpg_key.asc'
535
+ gpg_url = ENV['GPG_URL'] || 'https://yum.puppet.com/RPM-GPG-KEY-puppet'
520
536
  case location
521
537
  when 'tarball'
522
538
  path_to_gpg_key = "#{host['working_dir']}/#{host['dist']}/packages/GPG-KEY-puppet"
@@ -528,9 +544,26 @@ NOASK
528
544
  raise(StandardError, "gpg_key_overwrite requires a valid location: tarball, or pe_repo. #{location} was supplied")
529
545
  end
530
546
 
531
- if (host['roles'].include?('master') || host['roles'].include?('pe_postgres')) && version_is_less(host[:pe_ver], '2019.8.5') && hosts.any? {|agent| agent['platform'] =~ /(debian)|(ubuntu)|(sles)/}
547
+ if (host['roles'].include?('master') || host['roles'].include?('pe_postgres')) && version_is_less(host[:pe_ver], '2023.8.1') && hosts.any? {|agent| agent['platform'] =~ /(debian)|(ubuntu)|(sles)/}
548
+ # Some PE releases also ship a separately-dated copy of this key alongside the
549
+ # undated one (e.g. GPG-KEY-puppet-2025-04-06), which frictionless install scripts
550
+ # may reference directly. Find any such siblings before we remove the undated file,
551
+ # so we can refresh them with the same content too.
552
+ gpg_key_dir = File.dirname(path_to_gpg_key)
553
+ gpg_key_basename = File.basename(path_to_gpg_key)
554
+ dated_gpg_keys = on(host, "ls -1 #{gpg_key_dir}/#{gpg_key_basename}-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] 2>/dev/null", :acceptable_exit_codes => [0,1,2]).stdout.split("\n")
555
+
532
556
  on(host, "rm -f #{path_to_gpg_key}")
533
- on(host, "curl #{gpg_url} --output #{path_to_gpg_key}")
557
+ # The puppet-agent tarball fetch above already uses retry_on to survive network
558
+ # blips; do the same here so a transient curl failure doesn't abort the whole run.
559
+ retry_on(host, "curl --fail #{gpg_url} --output #{path_to_gpg_key}", {
560
+ desired_exit_codes: [0],
561
+ max_retries: 3,
562
+ verbose: 'true'
563
+ })
564
+ unless dated_gpg_keys.empty?
565
+ on(host, dated_gpg_keys.map { |dated_gpg_key| "cp #{path_to_gpg_key} #{dated_gpg_key}" }.join(' && '))
566
+ end
534
567
  if location == 'pe_repo'
535
568
  gpg_key_overwrite(host, 'pe_repo_env')
536
569
  elsif location == 'pe_repo_env'
@@ -1268,6 +1301,8 @@ NOASK
1268
1301
  install_rpm_on_sles11_host(host, install_params[:puppet_agent_version], opts)
1269
1302
  elsif host['platform'] =~ /solaris-10-sparc/
1270
1303
  install_pkg_on_sol10_sparc_host(host, install_params[:puppet_agent_version], opts)
1304
+ elsif host['packaging_platform'] =~ /^el-7-x86_64/ && !version_is_less(host['pe_ver'] || opts[:pe_ver], '2025.12')
1305
+ install_rpm_on_el7_host(host, install_params[:puppet_agent_version], opts)
1271
1306
  else
1272
1307
  install_params.delete(:pe_promoted_builds_url) if install_params[:pe_promoted_builds_url].nil?
1273
1308
  install_puppet_agent_pe_promoted_repo_on(host, install_params)
@@ -3,7 +3,7 @@ module Beaker
3
3
  module PE
4
4
 
5
5
  module Version
6
- STRING = '3.6.7'
6
+ STRING = '3.6.9'
7
7
  end
8
8
 
9
9
  end
@@ -72,6 +72,10 @@ describe ClassMixedWithDSLInstallUtils do
72
72
  :pe_ver => '3.0',
73
73
  :type => 'pe',
74
74
  :working_dir => '/tmp'} ) }
75
+ let(:el7host) { make_host( 'el7', { :platform => 'el-7-x86_64',
76
+ :pe_ver => '3.0',
77
+ :type => 'pe',
78
+ :working_dir => '/tmp'} ) }
75
79
  let(:solaris10host) { make_host( 'sol10', { :platform => 'solaris-10-sparc',
76
80
  :pe_ver => '3.0',
77
81
  :type => 'pe',
@@ -1898,6 +1902,28 @@ NOASK
1898
1902
  end
1899
1903
  end
1900
1904
 
1905
+ context "install rpm file in el-7 host" do
1906
+ let(:opts) {
1907
+ { :puppet_collection => 'puppet9' }
1908
+ }
1909
+ let(:stream) { opts[:puppet_collection] }
1910
+ let(:puppet_agent_ver) { '9.1.1.30' }
1911
+ let(:agent_downloads_url) { "http://agent-downloads.delivery.puppetlabs.net/puppet-agent" }
1912
+ let(:master_version) { '9.1.1.30' }
1913
+ let(:path) { "#{agent_downloads_url}/#{puppet_agent_ver}/repos/el/7/#{stream}/x86_64" }
1914
+ let(:filename) { "puppet-agent-#{master_version}-1.el7.x86_64" }
1915
+ let(:extension) { '.rpm' }
1916
+ let(:url) { "#{path}/#{filename}#{extension}" }
1917
+
1918
+ it "generates the correct url to download the package" do
1919
+ allow( subject ).to receive( :puppet_fact ).and_return( master_version )
1920
+ allow( subject ).to receive( :master ).and_return( {} )
1921
+
1922
+ expect( el7host ).to receive( :install_package_with_rpm ).with( url ).once
1923
+ subject.install_rpm_on_el7_host(el7host, puppet_agent_ver, opts)
1924
+ end
1925
+ end
1926
+
1901
1927
  it 'can perform a simple installation' do
1902
1928
  expect(subject).to receive(:get_mco_setting).and_return({}).thrice
1903
1929
  allow( subject ).to receive( :verify_network_resources).with(hosts, nil)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker-pe
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.7
4
+ version: 3.6.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppetlabs
@@ -320,7 +320,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
320
320
  - !ruby/object:Gem::Version
321
321
  version: '0'
322
322
  requirements: []
323
- rubygems_version: 4.0.16
323
+ rubygems_version: 4.0.20
324
324
  specification_version: 4
325
325
  summary: Beaker PE DSL Helpers!
326
326
  test_files: []