Skip to content

Commit 0505527

Browse files
committed
chore(workflow): update test-upgrade-legacy.yaml name for clarity
- Changed workflow name to "Upgrade PE with one legacy compiler (test)" for better identification. fix(convert_compiler_to_legacy): ensure proper handling of legacy compilers - Added architecture validation for supported architectures. - Split legacy compiler targets into groups A and B based on availability group or cluster. - Modified certificate extensions for legacy compilers. - Ensured proper stopping of PuppetDB service on legacy compilers when `remove_pdb` is true. - Updated node manager YAML and legacy compiler group setup to include internal compiler pool addresses. - Adjusted Puppet run tasks to include all compiler targets. These changes improve the handling and configuration of legacy compilers during the upgrade process.
1 parent a8261ad commit 0505527

File tree

2 files changed

+76
-12
lines changed

2 files changed

+76
-12
lines changed

.github/workflows/test-upgrade-legacy.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
name: Upgrade PE with one legacy compiler
2+
name: Upgrade PE with one legacy compiler (test)
33
on:
44
pull_request:
55
paths:

plans/convert_compiler_to_legacy.pp

Lines changed: 75 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,78 @@
2121
getvar('cluster.params.compiler_hosts'),
2222
])
2323

24+
# Ensure input valid for a supported architecture
25+
$arch = peadm::assert_supported_architecture(
26+
getvar('cluster.params.primary_host'),
27+
getvar('cluster.params.replica_host'),
28+
getvar('cluster.params.primary_postgresql_host'),
29+
getvar('cluster.params.replica_postgresql_host'),
30+
getvar('cluster.params.compiler_hosts'),
31+
)
32+
33+
if $arch['disaster-recovery'] {
34+
$legacy_compiler_a_targets = $legacy_compiler_targets.filter |$index,$target| {
35+
$exts = $cert_extensions[$target.peadm::certname()]
36+
if ($exts[peadm::oid('peadm_availability_group')] in ['A', 'B']) {
37+
$exts[peadm::oid('peadm_availability_group')] == 'A'
38+
}
39+
elsif ($exts[peadm::oid('pp_cluster')] in ['A', 'B']) {
40+
$exts[peadm::oid('pp_cluster')] == 'A'
41+
}
42+
else {
43+
$index % 2 == 0
44+
}
45+
}
46+
$legacy_compiler_b_targets = $legacy_compiler_targets.filter |$index,$target| {
47+
$exts = $cert_extensions[$target.peadm::certname()]
48+
if ($exts[peadm::oid('peadm_availability_group')] in ['A', 'B']) {
49+
$exts[peadm::oid('peadm_availability_group')] == 'B'
50+
}
51+
elsif ($exts[peadm::oid('pp_cluster')] in ['A', 'B']) {
52+
$exts[peadm::oid('pp_cluster')] == 'B'
53+
}
54+
else {
55+
$index % 2 != 0
56+
}
57+
}
58+
} else {
59+
$legacy_compiler_a_targets = $legacy_compiler_targets
60+
$legacy_compiler_b_targets = []
61+
}
62+
63+
$compiler_targets = peadm::flatten_compact([getvar('cluster.params.compiler_hosts')])
64+
65+
wait([
66+
background('modify-compilers-certs') || {
67+
run_plan('peadm::modify_certificate', $compiler_targets,
68+
primary_host => $primary_target,
69+
add_extensions => {
70+
peadm::oid('peadm_legacy_compiler') => 'false',
71+
},
72+
)
73+
},
74+
background('modify-compilers-a-certs') || {
75+
run_plan('peadm::modify_certificate', $legacy_compiler_a_targets,
76+
primary_host => $primary_target,
77+
add_extensions => {
78+
peadm::oid('pp_auth_role') => 'pe_compiler',
79+
peadm::oid('peadm_availability_group') => 'A',
80+
peadm::oid('peadm_legacy_compiler') => 'true',
81+
},
82+
)
83+
},
84+
background('modify-compilers-b-certs') || {
85+
run_plan('peadm::modify_certificate', $legacy_compiler_b_targets,
86+
primary_host => $primary_target,
87+
add_extensions => {
88+
peadm::oid('pp_auth_role') => 'pe_compiler',
89+
peadm::oid('peadm_availability_group') => 'B',
90+
peadm::oid('peadm_legacy_compiler') => 'true',
91+
},
92+
)
93+
},
94+
])
95+
2496
if $remove_pdb {
2597
run_command('puppet resource service puppet ensure=stopped', $legacy_compiler_targets)
2698
run_command('puppet resource service pe-puppetdb ensure=stopped enable=false', $legacy_compiler_targets)
@@ -29,26 +101,18 @@
29101
apply($primary_target) {
30102
class { 'peadm::setup::node_manager_yaml':
31103
primary_host => $primary_target.peadm::certname(),
32-
}
33-
}
34-
35-
run_task('peadm::puppet_runonce', $primary_target)
104+
},
36105

37-
apply($primary_target) {
38106
class { 'peadm::setup::legacy_compiler_group':
39107
primary_host => $primary_target.peadm::certname(),
40108
internal_compiler_a_pool_address => $cluster['params']['internal_compiler_a_pool_address'],
41109
internal_compiler_b_pool_address => $cluster['params']['internal_compiler_b_pool_address'],
110+
require => Class['peadm::setup::node_manager_yaml'],
42111
}
43112
}
44113

45-
run_plan('peadm::update_compiler_extensions',
46-
compiler_hosts => $legacy_compiler_targets,
47-
primary_host => $primary_target,
48-
legacy => true
49-
)
50-
51114
run_task('peadm::puppet_runonce', $legacy_compiler_targets)
115+
run_task('peadm::puppet_runonce', $compiler_targets)
52116
run_task('peadm::puppet_runonce', $primary_target)
53117
run_task('peadm::puppet_runonce', $all_targets)
54118

0 commit comments

Comments
 (0)