Skip to content

Commit 5069054

Browse files
Merge pull request #731 from puppetlabs/add-ubuntu-24-support
Add ubuntu 24 support
2 parents fa8305c + eafadaf commit 5069054

File tree

13 files changed

+82
-38
lines changed

13 files changed

+82
-38
lines changed

.fixtures.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ fixtures:
66
provision: "https://github.com/puppetlabs/provision.git"
77
puppet_agent:
88
repo: 'https://github.com/puppetlabs/puppetlabs-puppet_agent.git'
9-
ref: v4.21.0
9+
ref: v4.25.0
1010
package: "https://github.com/puppetlabs/puppetlabs-package.git"
1111
deploy_pe: "https://github.com/jarretlavallee/puppet-deploy_pe"
1212
sign_cert: "https://github.com/m0dular/sign_cert"

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ jobs:
1818
uses: "puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main"
1919
with:
2020
runs_on: "ubuntu-24.04"
21+
flags: "--nightly"
2122
secrets: "inherit"

.github/workflows/integration_test.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ jobs:
1919
uses: actions/checkout@v3
2020
if: ${{ github.repository_owner == 'puppetlabs' }}
2121

22-
- name: Activate Ruby 2.7
22+
- name: Activate Ruby 3.2
2323
uses: ruby/setup-ruby@v1
2424
if: ${{ github.repository_owner == 'puppetlabs' }}
2525
with:
26-
ruby-version: "2.7"
26+
ruby-version: "3.2"
2727
bundler-cache: true
2828

2929
- name: Print bundle environment
@@ -61,10 +61,10 @@ jobs:
6161
- name: Checkout Source
6262
uses: actions/checkout@v3
6363

64-
- name: Activate Ruby 2.7
64+
- name: Activate Ruby 3.2
6565
uses: ruby/setup-ruby@v1
6666
with:
67-
ruby-version: "2.7"
67+
ruby-version: "3.2"
6868
bundler-cache: true
6969

7070
- name: Print bundle environment

.github/workflows/nightly.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ jobs:
1717
uses: "puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main"
1818
with:
1919
runs_on: "ubuntu-24.04"
20+
flags: "--nightly"
2021
secrets: "inherit"
2122

2223
Integration:

Gemfile

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,27 +22,31 @@ group :development do
2222
gem "racc", '~> 1.4.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
2323
gem "deep_merge", '~> 1.2.2', require: false
2424
gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
25-
gem "facterdb", '~> 2.1', require: false
25+
gem "facterdb", '~> 2.1', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
26+
gem "facterdb", '~> 3.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
2627
gem "metadata-json-lint", '~> 4.0', require: false
27-
gem "rspec-puppet-facts", '~> 4.0', require: false
28+
gem "json-schema", '< 5.1.1', require: false
29+
gem "rspec-puppet-facts", '~> 4.0', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
30+
gem "rspec-puppet-facts", '~> 5.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
2831
gem "dependency_checker", '~> 1.0.0', require: false
2932
gem "parallel_tests", '= 3.12.1', require: false
3033
gem "pry", '~> 0.10', require: false
3134
gem "simplecov-console", '~> 0.9', require: false
32-
gem "puppet-debugger", '~> 1.0', require: false
35+
gem "puppet-debugger", '~> 1.6', require: false
3336
gem "rubocop", '~> 1.50.0', require: false
3437
gem "rubocop-performance", '= 1.16.0', require: false
3538
gem "rubocop-rspec", '= 2.19.0', require: false
3639
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
37-
gem "rexml", '>= 3.3.9', require: false
40+
gem "bigdecimal", '< 3.2.2', require: false, platforms: [:mswin, :mingw, :x64_mingw]
3841
gem "github_changelog_generator", '= 1.15.2', require: false
3942
end
4043
group :development, :release_prep do
4144
gem "puppet-strings", '~> 4.0', require: false
42-
gem "puppetlabs_spec_helper", '~> 7.0', require: false
45+
gem "puppetlabs_spec_helper", '~> 8.0', require: false
4346
end
4447
group :system_tests do
45-
gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw]
48+
gem "puppet_litmus", '~> 2.0', require: false, platforms: [:ruby, :x64_mingw] if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
49+
gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw] if ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
4650
gem "CFPropertyList", '< 3.0.7', require: false, platforms: [:mswin, :mingw, :x64_mingw]
4751
gem "serverspec", '~> 2.41', require: false
4852
end
@@ -53,12 +57,20 @@ hiera_version = ENV['HIERA_GEM_VERSION']
5357

5458
gems = {}
5559

56-
gems['puppet'] = location_for(puppet_version)
60+
puppet_version = ENV.fetch('PUPPET_GEM_VERSION', nil)
61+
facter_version = ENV.fetch('FACTER_GEM_VERSION', nil)
62+
hiera_version = ENV.fetch('HIERA_GEM_VERSION', nil)
5763

58-
# If facter or hiera versions have been specified via the environment
59-
# variables
64+
# If PUPPET_FORGE_TOKEN is set then use authenticated source for both puppet and facter, since facter is a transitive dependency of puppet
65+
# Otherwise, do as before and use location_for to fetch gems from the default source
66+
if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
67+
gems['puppet'] = ['~> 8.11', { require: false, source: 'https://rubygems-puppetcore.puppet.com' }]
68+
gems['facter'] = ['~> 4.11', { require: false, source: 'https://rubygems-puppetcore.puppet.com' }]
69+
else
70+
gems['puppet'] = location_for(puppet_version)
71+
gems['facter'] = location_for(facter_version) if facter_version
72+
end
6073

61-
gems['facter'] = location_for(facter_version) if facter_version
6274
gems['hiera'] = location_for(hiera_version) if hiera_version
6375

6476
gems.each do |gem_name, gem_params|

data/Debian-12.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
ntp::package_name:
3+
- ntpsec
4+
ntp::config: '/etc/ntpsec/ntp.conf'

data/Ubuntu-24.04.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
ntp::package_name:
3+
- ntpsec
4+
ntp::config: '/etc/ntpsec/ntp.conf'

manifests/config.pp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,20 @@
3333
}
3434
}
3535
'Debian': {
36-
if $facts['os']['release']['major'] == '12' {
37-
$daemon_config = '/etc/ntpsec/ntp.conf'
36+
if $facts['os']['name'] == 'Ubuntu' {
37+
if (versioncmp($facts['os']['release']['major'], '18.04') >= 0 and
38+
versioncmp($facts['os']['release']['major'], '24.04') < 0 and
39+
$ntp::user) {
40+
file_line { 'Set NTPD daemon user':
41+
ensure => present,
42+
path => '/usr/lib/ntp/ntp-systemd-wrapper',
43+
line => "RUNASUSER=${ntp::user}",
44+
match => '^RUNASUSER\=',
45+
}
46+
}
47+
}
48+
if 'ntpsec' in $ntp::package_name {
49+
$daemon_config = '/etc/default/ntpsec'
3850
} else {
3951
$daemon_config = '/etc/default/ntp'
4052
}
@@ -46,14 +58,6 @@
4658
match => '^NTPD_OPTS\=',
4759
}
4860
}
49-
if $ntp::user and $facts['os']['release']['major'] == '18.04' {
50-
file_line { 'Set NTPD daemon user':
51-
ensure => present,
52-
path => '/usr/lib/ntp/ntp-systemd-wrapper',
53-
line => "RUNASUSER=${ntp::user}",
54-
match => '^RUNASUSER\=',
55-
}
56-
}
5761
}
5862
'Suse': {
5963
$daemon_config = '/etc/sysconfig/ntp'

metadata.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@
5858
"operatingsystemrelease": [
5959
"18.04",
6060
"20.04",
61-
"22.04"
61+
"22.04",
62+
"24.04"
6263
]
6364
},
6465
{
@@ -77,7 +78,7 @@
7778
"requirements": [
7879
{
7980
"name": "puppet",
80-
"version_requirement": ">= 7.0.0 < 9.0.0"
81+
"version_requirement": ">= 8.0.0 < 9.0.0"
8182
}
8283
],
8384
"description": "NTP Module for Debian, Ubuntu, CentOS, RHEL, OEL, Fedora, FreeBSD, ArchLinux, Amazon Linux and Gentoo.",

spec/acceptance/ntp_parameters_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@
2424

2525
config = if os[:family] == 'solaris'
2626
'/etc/inet/ntp.conf'
27+
elsif os[:family] == 'debian' && os[:release].start_with?('12')
28+
'/etc/ntpsec/ntp.conf'
29+
elsif os[:family] == 'ubuntu' && os[:release].start_with?('24')
30+
'/etc/ntpsec/ntp.conf'
2731
else
2832
'/etc/ntp.conf'
2933
end

0 commit comments

Comments
 (0)