Skip to content

Commit 86721cd

Browse files
feat: EL10 support
Add an "unholy hack" (quote) to support EL10 while it's added to postgresql Co-authored-by: Corporate Gadfly <corporate-gadfly@users.noreply.github.com>
1 parent 6c9d0b7 commit 86721cd

6 files changed

Lines changed: 59 additions & 18 deletions

File tree

data/os/RedHat/10.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
# As of v10.6.1, puppetlabs/postgresql does not have EL10 support/data
3+
openvoxdb::postgres_version: '16'

hiera.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
version: 5
3+
4+
hierarchy:
5+
- name: "OS version"
6+
path: "os/%{facts.os.family}/%{facts.os.name}/%{facts.os.release.major}.yaml"
7+
- name: "OS variant"
8+
path: "os/%{facts.os.family}/%{facts.os.name}.yaml"
9+
- name: "OS family/major"
10+
path: "os/%{facts.os.family}/%{facts.os.release.major}.yaml"
11+
- name: "OS family"
12+
path: "os/%{facts.os.family}.yaml"
13+
- name: "common"
14+
path: "common.yaml"

manifests/database/postgresql.pp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,11 @@
9999

100100
if $manage_server {
101101
class { 'postgresql::globals':
102+
manage_dnf_module => false, # disable DNF module on EL8, EL9 and EL10
102103
manage_package_repo => $manage_package_repo,
103104
version => $postgres_version,
104105
}
106+
105107
# get the pg server up and running
106108
class { 'postgresql::server':
107109
ip_mask_allow_all_users => '0.0.0.0/0',

metadata.json

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,15 @@
3030
"operatingsystem": "AlmaLinux",
3131
"operatingsystemrelease": [
3232
"8",
33-
"9"
33+
"9",
34+
"10"
3435
]
3536
},
3637
{
3738
"operatingsystem": "CentOS",
3839
"operatingsystemrelease": [
39-
"9"
40+
"9",
41+
"10"
4042
]
4143
},
4244
{
@@ -51,21 +53,24 @@
5153
"operatingsystem": "OracleLinux",
5254
"operatingsystemrelease": [
5355
"8",
54-
"9"
56+
"9",
57+
"10"
5558
]
5659
},
5760
{
5861
"operatingsystem": "RedHat",
5962
"operatingsystemrelease": [
6063
"8",
61-
"9"
64+
"9",
65+
"10"
6266
]
6367
},
6468
{
6569
"operatingsystem": "Rocky",
6670
"operatingsystemrelease": [
6771
"8",
68-
"9"
72+
"9",
73+
"10"
6974
]
7075
},
7176
{

spec/support/acceptance/shared/puppetserver.pp

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,25 @@
1212
# TODO: backport to litmusimage, required for serverspec port tests
1313
package { 'iproute': ensure => installed }
1414

15-
# TODO: rework this hack, maybe not needed for newer version of postgresl module?
15+
# EL 8 and 9 ship a built-in DNF module for postgresql that must be disabled
16+
# before installing from the upstream PGDG repo. EL 10 dropped the module stream.
1617
if versioncmp($facts['os']['release']['major'], '8') >= 0 {
17-
package { 'disable-builtin-dnf-postgresql-module':
18-
ensure => 'disabled',
19-
name => 'postgresql',
20-
provider => 'dnfmodule',
21-
}
18+
if versioncmp($facts['os']['release']['major'], '10') < 0 {
19+
# EL 8 and 9
20+
package { 'disable-builtin-dnf-postgresql-module':
21+
ensure => 'disabled',
22+
name => 'postgresql',
23+
provider => 'dnfmodule',
24+
}
2225

23-
Yumrepo <| tag == 'postgresql::repo' |>
24-
-> Package['disable-dnf-postgresql-module']
25-
-> Package <| tag == 'postgresql' |>
26+
Yumrepo <| tag == 'postgresql::repo' |>
27+
-> Package['disable-builtin-dnf-postgresql-module']
28+
-> Package <| tag == 'postgresql' |>
29+
} else {
30+
# EL 10
31+
Yumrepo <| tag == 'postgresql::repo' |>
32+
-> Package <| tag == 'postgresql' |>
33+
}
2634
}
2735
}
2836

spec/unit/classes/init_spec.rb

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,19 @@
1919

2020
describe 'without managed postgresql' do
2121
let :pre_condition do
22-
<<-HEREDOC
23-
class { 'postgresql::server':
24-
}
25-
HEREDOC
22+
if facts.dig(:os, 'family') == 'RedHat' && facts.dig(:os, 'release', 'major') == '10'
23+
<<-HEREDOC
24+
class { 'postgresql::globals':
25+
version => '16',
26+
}
27+
-> class { 'postgresql::server': }
28+
HEREDOC
29+
else
30+
<<-HEREDOC
31+
class { 'postgresql::server':
32+
}
33+
HEREDOC
34+
end
2635
end
2736

2837
let :params do

0 commit comments

Comments
 (0)