Skip to content

Commit 1469fbf

Browse files
authored
Merge pull request #1483 from puppetlabs/pdksync_GH-cat-11/main/add_ubuntu_22.04_support
pdksync - (GH-cat-11) Certify Support for Ubuntu 22.04
2 parents 0feb683 + e0c878f commit 1469fbf

11 files changed

+45
-13
lines changed

.github/workflows/nightly.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
if: ${{ github.repository_owner == 'puppetlabs' }}
6060
run: |
6161
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
62-
echo "::set-output name=matrix::{'platforms':[{'label':'AlmaLinux-8','provider':'provision::docker','image':'litmusimage/almalinux:8'},{'label':'CentOS-7','provider':'provision::docker','image':'litmusimage/centos:7'},{'label':'CentOS-8','provider':'provision::docker','image':'litmusimage/centos:stream8'},{'label':'Debian-10','provider':'provision::provision_service','image':'debian-10'},{'label':'Debian-11','provider':'provision::provision_service','image':'debian-11'},{'label':'Debian-9','provider':'provision::provision_service','image':'debian-9'},{'label':'OracleLinux-6','provider':'provision::docker','image':'litmusimage/oraclelinux:6'},{'label':'OracleLinux-7','provider':'provision::docker','image':'litmusimage/oraclelinux:7'},{'label':'RedHat-7','provider':'provision::provision_service','image':'rhel-7'},{'label':'RedHat-8','provider':'provision::provision_service','image':'rhel-8'},{'label':'Rocky-8','provider':'provision::docker','image':'litmusimage/rockylinux:8'},{'label':'SLES-12','provider':'provision::provision_service','image':'sles-12'},{'label':'SLES-15','provider':'provision::provision_service','image':'sles-15'},{'label':'Scientific-6','provider':'provision::docker','image':'litmusimage/scientificlinux:6'},{'label':'Scientific-7','provider':'provision::docker','image':'litmusimage/scientificlinux:7'},{'label':'Ubuntu-18.04','provider':'provision::docker','image':'litmusimage/ubuntu:18.04'},{'label':'Ubuntu-20.04','provider':'provision::provision_service','image':'ubuntu-2004-lts'}],'collection':['puppet6-nightly','puppet7-nightly']}"
62+
echo "::set-output name=matrix::{'platforms':[{'label':'AlmaLinux-8','provider':'provision::docker','image':'litmusimage/almalinux:8'},{'label':'CentOS-7','provider':'provision::docker','image':'litmusimage/centos:7'},{'label':'CentOS-8','provider':'provision::docker','image':'litmusimage/centos:stream8'},{'label':'Debian-10','provider':'provision::provision_service','image':'debian-10'},{'label':'Debian-11','provider':'provision::provision_service','image':'debian-11'},{'label':'Debian-9','provider':'provision::provision_service','image':'debian-9'},{'label':'OracleLinux-6','provider':'provision::docker','image':'litmusimage/oraclelinux:6'},{'label':'OracleLinux-7','provider':'provision::docker','image':'litmusimage/oraclelinux:7'},{'label':'RedHat-7','provider':'provision::provision_service','image':'rhel-7'},{'label':'RedHat-8','provider':'provision::provision_service','image':'rhel-8'},{'label':'Rocky-8','provider':'provision::docker','image':'litmusimage/rockylinux:8'},{'label':'SLES-12','provider':'provision::provision_service','image':'sles-12'},{'label':'SLES-15','provider':'provision::provision_service','image':'sles-15'},{'label':'Scientific-6','provider':'provision::docker','image':'litmusimage/scientificlinux:6'},{'label':'Scientific-7','provider':'provision::docker','image':'litmusimage/scientificlinux:7'},{'label':'Ubuntu-18.04','provider':'provision::docker','image':'litmusimage/ubuntu:18.04'},{'label':'Ubuntu-20.04','provider':'provision::provision_service','image':'ubuntu-2004-lts'},{'label':'Ubuntu-22.04','provider':'provision::provision_service','image':'ubuntu-2204-lts'}],'collection':['puppet6-nightly','puppet7-nightly']}"
6363
else
6464
echo "::set-output name=matrix::{}"
6565
fi

.github/workflows/pr_test.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
id: get-matrix
6262
run: |
6363
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
64-
echo "::set-output name=matrix::{'platforms':[{'label':'AlmaLinux-8','provider':'provision::docker','image':'litmusimage/almalinux:8'},{'label':'CentOS-7','provider':'provision::docker','image':'litmusimage/centos:7'},{'label':'CentOS-8','provider':'provision::docker','image':'litmusimage/centos:stream8'},{'label':'Debian-10','provider':'provision::provision_service','image':'debian-10'},{'label':'Debian-11','provider':'provision::provision_service','image':'debian-11'},{'label':'Debian-9','provider':'provision::provision_service','image':'debian-9'},{'label':'OracleLinux-6','provider':'provision::docker','image':'litmusimage/oraclelinux:6'},{'label':'OracleLinux-7','provider':'provision::docker','image':'litmusimage/oraclelinux:7'},{'label':'RedHat-7','provider':'provision::provision_service','image':'rhel-7'},{'label':'RedHat-8','provider':'provision::provision_service','image':'rhel-8'},{'label':'Rocky-8','provider':'provision::docker','image':'litmusimage/rockylinux:8'},{'label':'SLES-12','provider':'provision::provision_service','image':'sles-12'},{'label':'SLES-15','provider':'provision::provision_service','image':'sles-15'},{'label':'Scientific-6','provider':'provision::docker','image':'litmusimage/scientificlinux:6'},{'label':'Scientific-7','provider':'provision::docker','image':'litmusimage/scientificlinux:7'},{'label':'Ubuntu-18.04','provider':'provision::docker','image':'litmusimage/ubuntu:18.04'},{'label':'Ubuntu-20.04','provider':'provision::provision_service','image':'ubuntu-2004-lts'}],'collection':['puppet6','puppet7']}"
64+
echo "::set-output name=matrix::{'platforms':[{'label':'AlmaLinux-8','provider':'provision::docker','image':'litmusimage/almalinux:8'},{'label':'CentOS-7','provider':'provision::docker','image':'litmusimage/centos:7'},{'label':'CentOS-8','provider':'provision::docker','image':'litmusimage/centos:stream8'},{'label':'Debian-10','provider':'provision::provision_service','image':'debian-10'},{'label':'Debian-11','provider':'provision::provision_service','image':'debian-11'},{'label':'Debian-9','provider':'provision::provision_service','image':'debian-9'},{'label':'OracleLinux-6','provider':'provision::docker','image':'litmusimage/oraclelinux:6'},{'label':'OracleLinux-7','provider':'provision::docker','image':'litmusimage/oraclelinux:7'},{'label':'RedHat-7','provider':'provision::provision_service','image':'rhel-7'},{'label':'RedHat-8','provider':'provision::provision_service','image':'rhel-8'},{'label':'Rocky-8','provider':'provision::docker','image':'litmusimage/rockylinux:8'},{'label':'SLES-12','provider':'provision::provision_service','image':'sles-12'},{'label':'SLES-15','provider':'provision::provision_service','image':'sles-15'},{'label':'Scientific-6','provider':'provision::docker','image':'litmusimage/scientificlinux:6'},{'label':'Scientific-7','provider':'provision::docker','image':'litmusimage/scientificlinux:7'},{'label':'Ubuntu-18.04','provider':'provision::docker','image':'litmusimage/ubuntu:18.04'},{'label':'Ubuntu-20.04','provider':'provision::provision_service','image':'ubuntu-2004-lts'},{'label':'Ubuntu-22.04','provider':'provision::provision_service','image':'ubuntu-2204-lts'}],'collection':['puppet6','puppet7']}"
6565
else
6666
echo "::set-output name=matrix::{}"
6767
fi

manifests/backup/xtrabackup.pp

+2-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@
5050
require => Class['mysql::server::root_password'],
5151
}
5252

53-
if $::osfamily == 'debian' and $::operatingsystemmajrelease == '11' {
53+
if ($facts['os']['name'] == 'Debian' and versioncmp($facts['os']['release']['major'], '11') >= 0) or
54+
($facts['os']['name'] == 'Ubuntu' and versioncmp($facts['os']['release']['major'], '22.04') >= 0) {
5455
mysql_grant { "${backupuser}@localhost/*.*":
5556
ensure => $ensure,
5657
user => "${backupuser}@localhost",

metadata.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@
6363
"operatingsystem": "Ubuntu",
6464
"operatingsystemrelease": [
6565
"18.04",
66-
"20.04"
66+
"20.04",
67+
"22.04"
6768
]
6869
},
6970
{

spec/acceptance/00_mysql_server_spec.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ class { 'mysql::server':
3838
},
3939
databases => {
4040
'somedb' => {
41-
ensure => 'present',
41+
ensure => 'present',
42+
charset => '#{fetch_charset}',
43+
collate => '#{fetch_charset}_general_ci',
4244
},
4345
}
4446
}

spec/acceptance/01_mysql_db_spec.rb

+6
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ class { 'mysql::server':
1414
mysql::db { 'spec1':
1515
user => 'root1',
1616
password => 'password',
17+
charset => '#{fetch_charset}',
18+
collate => '#{fetch_charset}_general_ci',
1719
}
1820
MANIFEST
1921
end
@@ -42,6 +44,8 @@ class { 'mysql::server': override_options => { 'root_password' => 'password' } }
4244
user => 'root1',
4345
password => 'password',
4446
sql => '/tmp/spec.sql',
47+
charset => '#{fetch_charset}',
48+
collate => '#{fetch_charset}_general_ci',
4549
}
4650
MANIFEST
4751
end
@@ -66,6 +70,8 @@ class { 'mysql::server': override_options => { 'root_password' => 'password' } }
6670
user => 'root1',
6771
password => 'password',
6872
dbname => 'realdb',
73+
charset => '#{fetch_charset}',
74+
collate => '#{fetch_charset}_general_ci',
6975
}
7076
MANIFEST
7177
end

spec/acceptance/04_mysql_backup_spec.rb

+10-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ class { 'mysql::server': root_password => 'password' }
1212
]:
1313
user => 'backup',
1414
password => 'secret',
15+
charset => '#{fetch_charset}',
16+
collate => '#{fetch_charset}_general_ci',
1517
}
1618
1719
class { 'mysql::server::backup':
@@ -72,6 +74,8 @@ class { 'mysql::server': root_password => 'password' }
7274
]:
7375
user => 'backup',
7476
password => 'secret',
77+
charset => '#{fetch_charset}',
78+
collate => '#{fetch_charset}_general_ci',
7579
}
7680
7781
class { 'mysql::server::backup':
@@ -136,14 +140,16 @@ class { 'mysql::server': root_password => 'password' }
136140
]:
137141
user => 'backup',
138142
password => 'secret',
143+
charset => '#{fetch_charset}',
144+
collate => '#{fetch_charset}_general_ci',
139145
}
140146
case $facts['os']['family'] {
141147
/Debian/: {
142148
$source_url = "http://repo.percona.com/apt/percona-release_latest.${facts['os']['distro']['codename']}_all.deb"
143149
144150
file { '/tmp/percona-release_latest.deb':
145-
ensure => present,
146-
source => $source_url,
151+
ensure => present,
152+
source => $source_url,
147153
}
148154
ensure_packages('gnupg')
149155
ensure_packages('gnupg2')
@@ -256,6 +262,8 @@ class { 'mysql::server': root_password => 'password' }
256262
]:
257263
user => 'backup',
258264
password => 'secret',
265+
charset => '#{fetch_charset}',
266+
collate => '#{fetch_charset}_general_ci',
259267
}
260268
case $facts['os']['family'] {
261269
/Debian/: {

spec/acceptance/types/mysql_database_spec.rb

+6-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ class { 'mysql::server': }
1515
describe 'creating database' do
1616
pp = <<-MANIFEST
1717
mysql_database { 'spec_db':
18-
ensure => present,
18+
ensure => present,
19+
charset => '#{fetch_charset}',
20+
collate => '#{fetch_charset}_general_ci',
1921
}
2022
MANIFEST
2123
it 'works without errors' do
@@ -37,8 +39,8 @@ class { 'mysql::server': }
3739
collate => 'latin1_swedish_ci',
3840
}
3941
mysql_database { 'spec_utf8':
40-
charset => 'utf8',
41-
collate => 'utf8_general_ci',
42+
charset => '#{fetch_charset}',
43+
collate => '#{fetch_charset}_general_ci',
4244
}
4345
MANIFEST
4446
it 'creates two db of different types idempotently' do
@@ -54,7 +56,7 @@ class { 'mysql::server': }
5456

5557
it 'finds utf8 db #stdout' do
5658
run_shell("mysql -NBe \"SHOW VARIABLES LIKE '%_database'\" spec_utf8") do |r|
57-
expect(r.stdout).to match(%r{^character_set_database\tutf8(mb3)?\ncollation_database\tutf8_general_ci$})
59+
expect(r.stdout).to match(%r{^character_set_database\tutf8(mb3)?\ncollation_database\tutf8(mb3)?_general_ci$})
5860
expect(r.stderr).to be_empty
5961
end
6062
end

spec/acceptance/types/mysql_grant_spec.rb

+4-1
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,9 @@ class { 'mysql::server':
273273
$dbSubnet = '10.10.10.%'
274274
275275
mysql_database { 'foo':
276-
ensure => present,
276+
ensure => present,
277+
charset => '#{fetch_charset}',
278+
collate => '#{fetch_charset}_general_ci',
277279
}
278280
279281
exec { 'mysql-create-table':
@@ -685,6 +687,7 @@ class { 'mysql::server': override_options => { 'root_password' => 'password' } }
685687
user => 'root1',
686688
password => 'password',
687689
sql => '/tmp/grant_spec_table.sql',
690+
charset => '#{fetch_charset}',
688691
}
689692
MANIFEST
690693
it 'creates table' do

spec/classes/mysql_backup_xtrabackup_spec.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ class { 'mysql::server': }
106106
user: 'backupuser@localhost',
107107
table: '*.*',
108108
privileges:
109-
if facts[:osfamily] == 'Debian' && Puppet::Util::Package.versioncmp(facts[:operatingsystemmajrelease], '11') == 0
109+
if (facts[:operatingsystem] == 'Debian' && Puppet::Util::Package.versioncmp(facts[:operatingsystemmajrelease], '11') >= 0) ||
110+
(facts[:operatingsystem] == 'Ubuntu' && Puppet::Util::Package.versioncmp(facts[:operatingsystemmajrelease], '22') >= 0)
110111
['BINLOG MONITOR', 'RELOAD', 'PROCESS', 'LOCK TABLES']
111112
else
112113
['RELOAD', 'PROCESS', 'LOCK TABLES', 'REPLICATION CLIENT']

spec/spec_helper_acceptance_local.rb

+8
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ def export_locales
3232
LitmusHelper.instance.run_shell('. ~/.bashrc')
3333
end
3434

35+
def fetch_charset
36+
@charset ||= if os[:family] == 'ubuntu' && os[:release] =~ %r{^22\.04}
37+
'utf8mb3'
38+
else
39+
'utf8'
40+
end
41+
end
42+
3543
RSpec.configure do |c|
3644
c.before :suite do
3745
if os[:family] == 'debian' || os[:family] == 'ubuntu'

0 commit comments

Comments
 (0)