|
21 | 21 | getvar('cluster.params.compiler_hosts'), |
22 | 22 | ]) |
23 | 23 |
|
| 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 | + |
24 | 96 | if $remove_pdb { |
25 | 97 | run_command('puppet resource service puppet ensure=stopped', $legacy_compiler_targets) |
26 | 98 | run_command('puppet resource service pe-puppetdb ensure=stopped enable=false', $legacy_compiler_targets) |
|
29 | 101 | apply($primary_target) { |
30 | 102 | class { 'peadm::setup::node_manager_yaml': |
31 | 103 | primary_host => $primary_target.peadm::certname(), |
32 | | - } |
33 | | - } |
34 | | - |
35 | | - run_task('peadm::puppet_runonce', $primary_target) |
| 104 | + }, |
36 | 105 |
|
37 | | - apply($primary_target) { |
38 | 106 | class { 'peadm::setup::legacy_compiler_group': |
39 | 107 | primary_host => $primary_target.peadm::certname(), |
40 | 108 | internal_compiler_a_pool_address => $cluster['params']['internal_compiler_a_pool_address'], |
41 | 109 | internal_compiler_b_pool_address => $cluster['params']['internal_compiler_b_pool_address'], |
| 110 | + require => Class['peadm::setup::node_manager_yaml'], |
42 | 111 | } |
43 | 112 | } |
44 | 113 |
|
45 | | - run_plan('peadm::update_compiler_extensions', |
46 | | - compiler_hosts => $legacy_compiler_targets, |
47 | | - primary_host => $primary_target, |
48 | | - legacy => true |
49 | | - ) |
50 | | - |
51 | 114 | run_task('peadm::puppet_runonce', $legacy_compiler_targets) |
| 115 | + run_task('peadm::puppet_runonce', $compiler_targets) |
52 | 116 | run_task('peadm::puppet_runonce', $primary_target) |
53 | 117 | run_task('peadm::puppet_runonce', $all_targets) |
54 | 118 |
|
|
0 commit comments