|
| 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 | +} |
0 commit comments