-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding support for legacy compilers (#448) #495
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CoMfUcIoS
force-pushed
the
legacy_compilers
branch
from
September 16, 2024 10:48
0782ee1
to
071a1f4
Compare
* Adding support for legacy compilers * Adding inventoryfile to test upgrade legacy workflow * feat(documentation): add instructions for converting compilers to legacy This commit introduces a new section in the `convert.md` documentation. It provides instructions on how to convert compilers to legacy compilers for Puppet Enterprise installations using puppetlabs-peadm version 3.21 or later, as well as for versions prior to 3.21. The new section includes specific commands to run and references to other relevant documentation. * Fixing lint and regenerating referencemd * PE-38772 Node groups added for legacy compilers (#455) * Fixing typo for parameter in docs --------- Co-authored-by: Ioannis Karasavvaidis <ioannis@puppet.com> Co-authored-by: Neil Anderson <neil.anderson@perforce.com> Co-authored-by: Aaron Shannon <aaron.shannon@puppet.com>
Added legacy compilers section, and updated compilers with legacy compilers oid Co-authored-by: Neil Anderson <neil.anderson@perforce.com>
* feat(peadm): add support for legacy compilers - Added `legacy_compilers` parameter to `peadm::install`, `peadm::subplans::install`, and `peadm::subplans::configure` plans. - Updated `peadm::assert_supported_architecture` function to handle `legacy_compilers`. - Modified various plans to include `legacy_compilers` in the installation and configuration processes. - Updated documentation to reflect the changes and added examples for `legacy_compilers`. This change allows the PEADM module to support legacy compilers in addition to the standard compilers. * feat(assert_supported_architecture): normalize and combine compiler variables - Normalize `$legacy_compilers` and `$compiler_hosts` to arrays, handling both strings and arrays. - Combine the normalized arrays into `$all_compilers`. - Set `$has_compilers` to `undef` if `$all_compilers` is empty, otherwise set it to `true`. - Update tests to cover scenarios with both `compiler_hosts` and `legacy_compilers`. This change ensures that the function correctly handles different types for compiler variables and improves robustness. * Updated REFERENCE.md to document the new parameter. * style(tests): use single quotes for consistency in spec files Updated all double quotes to single quotes in the `assert_supported_architecture_spec.rb` and `install_spec.rb` files to maintain consistency in string literals across the test suite. * refactor(plans): rename legacy_targets to legacy_compiler_targets Renamed the variable `legacy_targets` to `legacy_compiler_targets` across multiple plans for better clarity and consistency. This change affects the following plans: - convert_compiler_to_legacy.pp - subplans/configure.pp - subplans/install.pp The new variable name more accurately reflects its purpose, which is to target legacy compiler hosts. * docs(install): correct grammar in installation requirements section Corrected the grammar in the installation requirements section by changing "Puppets must not be installed" to "Puppet must not be installed" for clarity and accuracy.
…476) * feat(convert): add support for legacy compilers - Introduced `legacy_compilers` parameter to handle legacy compiler hosts. - Added logic to filter and categorize legacy compiler targets. - Updated certificate modification steps to include legacy compiler targets with appropriate extensions. * feat(convert): ensure all targets are up-to-date post conversion - Added a step to run puppet on all targets after restarting services. - Ensures all targets are fully up-to-date after conversion. * docs(convert): update documentation for PEADM module - Corrected the module name from 'peadm' to 'PEADM' for consistency. - Added 'legacy_compilers' section in the example JSON parameters. - Improved clarity in the description of the `begin_at_step` parameter. - Fixed minor grammatical issues in the instructions for converting compilers to legacy. * - Updated REFERENCE.md to include the new parameter.
- Introduced a new task `check_legacy_compilers.rb` to verify legacy compilers. - Updated `convert.pp` to run the new task and display warnings if legacy compilers are detected.
- Clarified the message indicating which legacy compilers are classified as Puppet primary nodes. - Improved the remediation message to specify that the upgrade cannot proceed until the compilers are no longer classified as Puppet primary nodes.
- Updated the message to specify that the upgrade can only proceed if the compilers are no longer recognized as Puppet primary nodes.
Updated the compiler versions in the test-upgrade-legacy.yaml GitHub workflow from 2023.6.0 and 2023.7.0 to 2023.7.0 and 2023.8.0. Also, made formatting changes for consistency.
Added the console_password parameter to the test-upgrade-legacy.yaml GitHub workflow to ensure the console password is passed securely from secrets.
…iler_to_legacy.pp Removed the commands to stop Puppet and PuppetDB services when the remove_pdb parameter is true in the convert_compiler_to_legacy plan. This simplifies the plan and avoids unnecessary service stops.
…ress - Updated the variable reference for `internal_compiler_b_pool_address` and `internal_compiler_a_pool_address` in `peadm::setup::legacy_compiler_group` class. - Ensured the correct scope is used for the variables. - Added missing newline at the end of the file. - Added logic to stop and disable `pe-puppetdb` service if `remove_pdb` is true in `convert_compiler_to_legacy` plan.
…and added trusted cert along with internal compiler address
- Replaced `${trusted['certname']}` with `$internal_compiler_a_pool_address` and `$internal_compiler_b_pool_address` in `puppetdb_host` for `puppet_enterprise::profile::master` class. - Applied `.filter |$_| { $_ }` to ensure non-empty values. - Removed lint ignore comments for single quote string with variables. This change ensures that the correct internal compiler pool addresses are used for the `puppetdb_host` configuration.
…er info - Added information about the `remove_pdb` parameter to the documentation. - Updated `convert_compiler_to_legacy` plan to set `remove_pdb` default to `true`. This change provides clarity on how to retain PuppetDB service on converted compilers.
…grade-legacy.yaml - Added missing `inputs` key for `ssh-debugging` under `workflow_dispatch`. This change ensures proper YAML structure for the workflow configuration.
- 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.
…formatting - Changed `remove_pdb` parameter type to `Optional[Boolean]` for better flexibility. - Improved alignment and formatting of parameters and variables for better readability. - Updated `$compiler_targets` assignment to use `peadm::get_targets` for consistency.
- Added SSH configuration setup to ensure stable connections. - Grouped preparation and conversion steps for better readability in logs.
- Updated `primary_host` to handle cases where `certname` is undefined. - Added conditional logic to default to `$primary_target` if `certname` is undefined.
- Changed the `version` in the test-upgrade-legacy workflow from 2023.7.0 to 2021.7.9. - Ensured compatibility with older versions for testing purposes.
…th-dr - Changed the `architecture` in the test-upgrade-legacy workflow from `large-with-two-compilers` to `large-with-dr`. - Updated the `version` from `2021.7.9` to `2023.7.0`.
CoMfUcIoS
force-pushed
the
legacy_compilers
branch
from
September 16, 2024 10:56
071a1f4
to
86ca580
Compare
- Added a task to run the puppet agent on all nodes after the installation plan.
- Removed the redundant task to run the puppet agent on all nodes after installation. - Simplified the install_test_cluster plan by eliminating unnecessary steps.
…iler_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.
…ation - Added steps to gather certificate extension information from all systems using the `peadm::cert_data` task. - Updated variable names for clarity and consistency. - Filtered legacy compiler targets based on availability group using the gathered certificate data. This enhancement improves the accuracy of the conversion process by ensuring that the correct certificate data is used.
…ation - Updated `puppetdb_host` to include both internal compiler pool addresses. - Modified `convert_compiler_to_legacy` plan to gather certificate extension information from legacy targets using the `peadm::cert_data` task. - Adjusted filtering of legacy compiler targets based on availability group using the gathered certificate data. This enhancement improves the accuracy of the conversion process by ensuring that the correct certificate data is used.
…ation - Added steps to apply `peadm::setup::node_manager_yaml` class on the primary target. - Ensured `primary_host` is set correctly based on the primary target's certname. - Improved the setup process by gathering certificate extension information. This enhancement ensures that the correct certificate data is used, improving the accuracy of the conversion process.
…ation - Added steps to apply `peadm::setup::legacy_compiler_group` class with internal compiler pool addresses. - Ensured `primary_host` is set correctly based on the primary target's certname. - Removed redundant application of `peadm::setup::node_manager_yaml` and `peadm::setup::legacy_compiler_group` classes. This enhancement ensures that the correct certificate data is used, improving the accuracy of the conversion process.
…ss retrieval - Changed retrieval of `internal_compiler_a_pool_address` and `internal_compiler_b_pool_address` to use `getvar` function. - Ensured compatibility with updated cluster parameter structure. This update improves the robustness of the plan by ensuring correct retrieval of internal compiler pool addresses.
- Deleted `.github/workflows/test-upgrade-legacy.yaml` file. - Removed workflow for testing PE upgrade with one legacy compiler. This change simplifies the CI configuration by removing an outdated or unnecessary workflow.
bastelfreak
reviewed
Sep 18, 2024
], | ||
classes => { | ||
'puppet_enterprise::profile::master' => { | ||
'puppetdb_host' => [$internal_compiler_a_pool_address, $internal_compiler_b_pool_address].filter |$_| { $_ }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is the purpose of the .filter
call to delete undef values? nice hack.
ragingra
reviewed
Sep 19, 2024
ragingra
reviewed
Sep 19, 2024
- Updated the version reference from 3.21 to 3.25 in the upgrade documentation. - Added instructions for using the `peadm::convert_compiler_to_legacy` plan. - Removed outdated steps for updating certificate extensions and converting legacy compilers. - Simplified the upgrade process description for Puppet Enterprise using puppetlabs-peadm module 3.25 or later.
ragingra
approved these changes
Sep 25, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Adding support for legacy compilers
Adding inventory file to test upgrade legacy workflow
feat(documentation): add instructions for converting compilers to legacy
This commit introduces a new section in the
convert.md
documentation. It provides instructions on how to convert compilers to legacy compilers for Puppet Enterprise installations using puppetlabs-peadm version 3.21 or later, as well as for versions prior to 3.21. The new section includes specific commands to run and references to other relevant documentation.Fixing lint and regenerating reference.md
PE-38772 Node groups added for legacy compilers (PE-38772 Node groups added for legacy compilers #455)
Fixing typo for parameter in docs
Co-authored-by: Ioannis Karasavvaidis ioannis@puppet.com
Co-authored-by: Neil Anderson neil.anderson@perforce.com
Co-authored-by: Aaron Shannon aaron.shannon@puppet.com
Checklist
Changes include test coverage?
Have you updated the documentation?