Streamline implementation of optional HA
Try to reduce the number of `if` statements in code, and remove the need to specify `ha` as a Boolean plan parameter. Instead, do HA if HA systems are specified, and don't if they aren't.
Swich from notice() to out::message()
Newer versions of Bolt don't print anything to the screen when running the notice() function. The replacement is out::message().
Handle undef in configure_node_groups task
So that when/if no HA systems are passed, the manifest works correctly. This was a problem in the shell wrapper, not the Puppet code itself.
Add missing EOF to shell heredoc
Wasn't functionally necessary but this is more correct
Not sure where this got lost, but it's a non-operational task without it...
Fix incorrect pe-installer/agent assignment
The database systems need to use the installer to set up, but the replica doesn't.
Add "pe_master" variable to PE Master group
This identifier can help user code know whether or not a node is a master, has resources like Service[pe-nginx], and so make intelligent decisions about whether or not to apply addendum configuration that depends on a node being a master.
Merge pull request #21 from billclaytor/slv-365_make_ha_optional
(SLV-365) Update the install, configure, and upgrade plans in the pe_xl module to make ha optional
Removed local:// dependency for upgrades
Upgrades can now be completed from anywhere as long as it doesn't rely on PCP transport
Bump version numbers and PDK template for 0.3.0
General cleanup. New features have been added so a version bump is about due.
(SLV-366) Make external database host optional
This commit updates the plans, tasks, and templates to make the setting of `puppetdb_database_host` optional. Without this setting, a "large" environment will be deployed where PuppetDB resides on the master.
(SLV-366) Add docs for Large deployment
This commit adds a document for using the pe_xl module to deploy a "PE Large Architecture". An architecture diagram for the supported deployment is included for clarity. Currently, deploying the HA version of the Large Architecture is not supported by the tooling.
(SLV-366) variable name adjustments, compactness
This commit makes some UX changes to varible names to new "target" variables in use, now that there are several of them. The changes aim to make each "target" clearly relate to the original input variable it was based on. This commit also tries to smooth over the epp template quoted string issue. It makes the puppetdb_database_host parameter to the template optional, so that undef is permissable to pass.
Merge pull request #23 from johnduarte/slv-366-make-pdb-pg-optional
SLV-366 Make external database host optional
Remove "environment" code_manager task param
It was unused, and wouldn't have worked even if somebody did pass a value to it. Updated the code_manager.json file to match actual usage. Specifically, the action param was listed as type enum, but in the configure plan we were already using a variable in invoking it such that the action didn't match any of the enum values. So now it's just a string. Fixes #19
Simplify fail_on_transport function
Make use of Puppet language #protocol object methods to check a Target's transport. This obviates the need to include a Ruby langugage function for accessing the internal #target method.
Merge pull request #24 from dylanratcliffe/upgrade
Removed local:// dependency for upgrades
This should be updated later to a Solutions Architects Github group, assuming we create one.
(maint) Template updates, reidmv => puppetlabs
The puppet-syntax gem doen't deal well with Bolt Plans. Add a line to the Rakefile to configure it to stay out of the plans directory for now. Update the metadata.json file with the new module namespace, moving from "reidmv" to "puppetlabs"
Simplify initial Code Manager configuration
Provide parameters that match 80% of users' experience configuring code-manager. Namely, add r10k_remote and r10k_private_key settings.
Simplify r10k_private_key handling
Observationally: - We ALWAYS want to configure Code Manager - We ALWAYS want the private key location configured the same - We can use pe_conf_data to override anything if we need to - We don't want magic To that end, this commit simplifies the r10k private key input to require that the key content is supplied OR the path to a local file containing the key. The two parameters are different, and mutually exclusive.
Merge pull request #25 from dylanratcliffe/code_manager
Added ability fo fully bootstrap Code manager
Change main interface to pe_xl::provision
This cleans up the interface a bit, optimizing it for the 90% use case.
Move sub-tasks to "unit" directory
This helps clarify the intended user interface classes, currently provision and upgrade.
Previously, it did not include module deployment.
Changed for more reliable hostname resolution
Using `hostnamectl --transient` doesn't *always* return the FQDN, which is what the plans are usually expecting. `hostname -f` is a more reliable way of doing this. Fixes #22
Merge pull request #27 from dylanratcliffe/fix_hostname_domain
Changed for more reliable hostname resolution
Initial refactor of pe_xl::unit::install only. Make use of better input typing. Use get_target and get_targets in order to operate explicitly on Target objects. This will be useful later in configure and upgrade plans, for detecting automatically if a target is using the local transport. Various cleanup and compacting of code, taking advantage of the above changes. Removal of explicit OID numbers from csr_extension_requests.yaml. Bug was fixed in Puppet such that this is no longer necessary.
This commit extends modern target object useage to the unit/configure and provision plans
Account for non-xl architectures
Namely, implement the pe_xl::target_host function to intelligently extract the host element of a Target, iif the TargetSpec is not an empty array. Return undef if the TargetSpec is an empty array.
Merge branch 'use-new-bolt-features'
This feature merge implements newer Bolt features such as data typing based on TargetSpec, and use of Target objects by way of calling `get_targets()` and `get_target()` on user inputs. It also rolls in improvements to validation and bug fixes found along the way.
Change CODEOWNERS primary to team name
Previously it was just one individual