Skip to content

Commit 79dc961

Browse files
committed
feat(plans): gather certificate extension information in convert_compiler_to_legacy plan
- Added a step to gather certificate extension information from all systems using the `peadm::cert_data` task. - This information is used to filter legacy compiler targets based on availability group. This enhancement improves the accuracy of the conversion process by ensuring that the correct certificate data is used.
1 parent b30996c commit 79dc961

File tree

2 files changed

+33
-30
lines changed

2 files changed

+33
-30
lines changed

README.md

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ You can use PEADM to deploy and manage PE installations for standard, large, and
99
#### Table of contents
1010

1111
- [Puppet Enterprise Administration Module (PEADM)](#puppet-enterprise-pe-administration-adm-module)
12-
- [Table of contents](#table-of-contents)
12+
- [Table of contents](#table-of-contents)
1313
- [Support](#support)
1414
- [Overview](#overview)
1515
- [What PEADM affects](#what-peadm-affects)
@@ -24,14 +24,14 @@ You can use PEADM to deploy and manage PE installations for standard, large, and
2424

2525
PEADM is a supported PE module. If you are a PE customer with the standard or premium support service, you can contact [Support](https://portal.perforce.com/s/topic/0TO4X000000DbNgWAK/puppet) or your Technical Account Manager for assistance.
2626

27-
2827
## Overview
2928

3029
This is the standard workflow for installing PEADM.
3130

3231
1. [Install Bolt](https://www.puppet.com/docs/bolt/latest/bolt_installing) on a jump host.
3332
2. To create a Bolt project that includes the PEADM module, run:</br>`mkdir <YOUR_PROJECT> && cd <YOUR_PROJECT> && bolt project init <YOUR_PROJECT> --modules puppetlabs-peadm`
3433
3. In the Bolt project directory, update the `inventory.yaml` file with connection information for the servers you plan to use for hosting PE infrastructure. For example:
34+
3535
```yaml
3636
---
3737
groups:
@@ -55,56 +55,55 @@ groups:
5555
5656
### What PEADM affects
5757
58-
* The `peadm::install` plan adds a number of custom original identifier (OID) trusted facts to the certificates of deployed PE infrastructure nodes. These trusted facts are used by PEADM plans to identify nodes that host PE infrastructure components.
59-
* Depending on the scale of your architecture, up to four node groups may be created to configure `puppet_enterprise` class parameters for the following PE infrastructure components:
60-
* The primary server
61-
* The primary server replica
62-
* PostgreSQL nodes (database servers)
63-
* Compilers (compiler hosts are designated as belonging to availability group A or B)
58+
- The `peadm::install` plan adds a number of custom original identifier (OID) trusted facts to the certificates of deployed PE infrastructure nodes. These trusted facts are used by PEADM plans to identify nodes that host PE infrastructure components.
59+
- Depending on the scale of your architecture, up to four node groups may be created to configure `puppet_enterprise` class parameters for the following PE infrastructure components:
60+
- The primary server
61+
- The primary server replica
62+
- PostgreSQL nodes (database servers)
63+
- Compilers (compiler hosts are designated as belonging to availability group A or B)
6464

6565
### What PEADM does not affect
6666

67-
* PEADM does not impact regular PE operations. After using it to deploy a new PE installation or upgrade an existing one, PEADM is not required until you want to use it to upgrade PE or expand your installation.
68-
* Using PEADM to install PE or upgrade PE does not prevent you from using documented PE procedures such as setting up disaster recovery or performing a manual upgrade.
67+
- PEADM does not impact regular PE operations. After using it to deploy a new PE installation or upgrade an existing one, PEADM is not required until you want to use it to upgrade PE or expand your installation.
68+
- Using PEADM to install PE or upgrade PE does not prevent you from using documented PE procedures such as setting up disaster recovery or performing a manual upgrade.
6969

7070
### Requirements
7171

72-
* PEADM is compatible with Puppet Enterprise 2019.8.1 or newer versions.
73-
* PEADM requires [Bolt](https://www.puppet.com/docs/bolt/latest/bolt_installing) version 3.17.0 or newer and works on operating systems supported by Bolt.
74-
**Note:** You can use PEADM to install Puppet Enterprise (PE) onto any operating system platform that is supported by the specific PE version you want to install. To review operating system platforms supported by specific PE versions, refer to the PE documentation.
75-
* To successfully convert your current PE installation to a PEADM-managed installation, ensure that the PE setting for editing classifier configuration data is enabled. This setting is enabled by default on new PE installations, but it could be disabled if the relevant configuration was removed from your global hiera.yaml file. See the [PE docs](https://www.puppet.com/docs/pe/latest/config_console.html#enable_console_configuration_data) for more information.
72+
- PEADM is compatible with Puppet Enterprise 2019.8.1 or newer versions.
73+
- PEADM requires [Bolt](https://www.puppet.com/docs/bolt/latest/bolt_installing) version 3.17.0 or newer and works on operating systems supported by Bolt.
74+
**Note:** You can use PEADM to install Puppet Enterprise (PE) onto any operating system platform that is supported by the specific PE version you want to install. To review operating system platforms supported by specific PE versions, refer to the PE documentation.
75+
- To successfully convert your current PE installation to a PEADM-managed installation, ensure that the PE setting for editing classifier configuration data is enabled. This setting is enabled by default on new PE installations, but it could be disabled if the relevant configuration was removed from your global hiera.yaml file. See the [PE docs](https://www.puppet.com/docs/pe/latest/config_console.html#enable_console_configuration_data) for more information.
7676

7777
## Usage
7878

7979
For instructions on using PEADM plans, see the following PEADM docs:
8080

81-
* [Install](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/install.md)
82-
* [Upgrade](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/upgrade.md)
83-
* [Convert](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/convert.md)
84-
* [Status](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/status.md)
81+
- [Install](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/install.md)
82+
- [Upgrade](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/upgrade.md)
83+
- [Convert](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/convert.md)
84+
- [Status](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/status.md)
8585

8686
## Reference
8787

8888
To understand which architecture is right for you, see the following information on the Puppet documentation site:
8989

90-
* [PE architectures](https://puppet.com/docs/pe/latest/choosing_an_architecture.html)
91-
* [PE multi-region reference architectures](https://puppet.com/docs/patterns-and-tactics/latest/reference-architectures/pe-multi-region-reference-architectures.html)
92-
90+
- [PE architectures](https://puppet.com/docs/pe/latest/choosing_an_architecture.html)
91+
- [PE multi-region reference architectures](https://puppet.com/docs/patterns-and-tactics/latest/reference-architectures/pe-multi-region-reference-architectures.html)
9392

9493
To learn more about the PEADM module and its uses, see the following PEADM docs:
9594

96-
* [Recovery procedures](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/recovery.md)
97-
* [Architectures](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/architectures.md)
98-
* [Expanding deployment](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/expanding.md)
99-
* [Classification](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/classification.md)
100-
* [Testing](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/pre_post_checks.md)
101-
* [Docker based examples](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/docker_examples.md)
102-
* [Release process](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/release_process.md)
95+
- [Recovery procedures](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/recovery.md)
96+
- [Architectures](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/architectures.md)
97+
- [Expanding deployment](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/expanding.md)
98+
- [Classification](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/classification.md)
99+
- [Testing](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/pre_post_checks.md)
100+
- [Docker based examples](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/docker_examples.md)
101+
- [Release process](https://github.com/puppetlabs/puppetlabs-peadm/blob/main/documentation/release_process.md)
103102

104103
## Getting help
105104

106-
* If you find a bug, you can [create a GitHub issue](https://github.com/puppetlabs/puppetlabs-peadm/issues).
107-
* For PE customers using PEADM and experiencing outages or other issues, [contact the Support team](https://portal.perforce.com/s/topic/0TO4X000000DbNgWAK/puppet).
105+
- If you find a bug, you can [create a GitHub issue](https://github.com/puppetlabs/puppetlabs-peadm/issues).
106+
- For PE customers using PEADM and experiencing outages or other issues, [contact the Support team](https://portal.perforce.com/s/topic/0TO4X000000DbNgWAK/puppet).
108107

109108
## License
110109

plans/convert_compiler_to_legacy.pp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
)
3232

3333
if $arch['disaster-recovery'] {
34+
# Gather certificate extension information from all systems
35+
$cert_extensions = run_task('peadm::cert_data', $all_targets).reduce({}) |$memo,$result| {
36+
$memo + { $result.target.peadm::certname => $result['extensions'] }
37+
}
3438
$legacy_compiler_a_targets = $legacy_compiler_targets.filter |$index,$target| {
3539
$exts = $cert_extensions[$target.peadm::certname()]
3640
if ($exts[peadm::oid('peadm_availability_group')] in ['A', 'B']) {

0 commit comments

Comments
 (0)