Skip to content

Commit cd20545

Browse files
committed
Provide upgrade utility
Provide a utility plan to re-issue certificates on systems that were deployed using peadm 0.5.x, using the new OIDs in use in peadm 1.x.
1 parent dd2b53b commit cd20545

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

plans/misc/update_trusted_facts.pp

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
plan peadm::misc::upgrade_trusted_facts (
2+
TargetSpec $targets,
3+
Peadm::SingleTargetSpec $master_host,
4+
Boolean $autosign = false,
5+
) {
6+
7+
# Convert input into array of Targets
8+
$all_targets = peadm::get_targets($targets)
9+
$master_target = peadm::get_targets($master_host, 1)
10+
11+
$certdata = run_task('peadm::trusted_facts', $all_targets).reduce({}) |$memo,$result| {
12+
$memo + { $result.target => $result.value }
13+
}
14+
15+
$pserver = '/opt/puppetlabs/bin/puppetserver'
16+
$puppet = '/opt/puppetlabs/bin/puppet'
17+
18+
$upgrade_results = $all_targets.map |$target| {
19+
$new_trusted = $certdata[$target]['extensions'] + {
20+
peadm::oid('peadm_role') => $certdata[$target]['extensions']['pp_application'],
21+
peadm::oid('peadm_availability_group') => $certdata[$target]['extensions']['pp_cluster'],
22+
}
23+
24+
run_plan('peadm::util::insert_csr_extensions', $target,
25+
extensions => $new_trusted,
26+
)
27+
28+
run_command("${pserver} ca clean ${certdata[$target]['certname']}", $master_target)
29+
run_command("${puppet} ssl clean --target ${certdata[$target]['certname']}", $target)
30+
run_command("${puppet} ssl submit_request --certname ${certdata[$target]['certname']}", $target)
31+
32+
ctrl::sleep(2) # some lag sometimes before the cert is available to sign
33+
34+
if !$autosign {
35+
run_command("${pserver} ca sign --certname ${certdata[$target]['certname']}", $master_target)
36+
}
37+
38+
run_command("${puppet} ssl download_cert --certname ${certdata[$target]['certname']}", $target)
39+
}
40+
41+
}

tasks/trusted_facts.rb

+4-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
end
2828
end
2929

30-
result = { 'extensions' => extensions }
30+
result = {
31+
'certname' => certname,
32+
'extensions' => extensions,
33+
}
3134

3235
puts result.to_json

0 commit comments

Comments
 (0)