Showing with 2,049 additions and 80 deletions.
  1. +7 −1 .fixtures.yml
  2. +3 −3 .rubocop.yml
  3. +0 −1 .ruby-version
  4. +3 −1 .sync.yml
  5. +19 −0 CHANGELOG.md
  6. +6 −0 README.md
  7. BIN documentation/images/table_output.png
  8. +1 −1 documentation/provision.md
  9. +170 −0 documentation/res/raw_summary.json
  10. +111 −0 documentation/res/summarized.json
  11. +166 −0 documentation/status.md
  12. +3 −2 documentation/upgrade.md
  13. +5 −0 examples/provision/minimal.json
  14. +2 −0 examples/ruby_task.rb
  15. +13 −0 functions/convert_hash.pp
  16. +50 −0 functions/convert_status.pp
  17. +62 −0 functions/determine_status.pp
  18. +2 −0 lib/puppet/functions/peadm/file_content_upload.rb
  19. +2 −0 lib/puppet/functions/peadm/node_manager_yaml_location.rb
  20. +6 −2 metadata.json
  21. +97 −0 plans/status.pp
  22. +2 −0 spec/acceptance/peadm_spec.rb
  23. +1 −0 spec/docker/.dockerignore
  24. +12 −6 spec/docker/Dockerfile
  25. +12 −12 spec/docker/extra-large-ha/docker-compose.yaml
  26. +1 −2 spec/docker/extra-large-ha/inventory.yaml
  27. +8 −8 spec/docker/extra-large/docker-compose.yaml
  28. +1 −2 spec/docker/extra-large/inventory.yaml
  29. +8 −8 spec/docker/large-ha/docker-compose.yaml
  30. +1 −2 spec/docker/large-ha/inventory.yaml
  31. +6 −6 spec/docker/large/docker-compose.yaml
  32. +1 −2 spec/docker/large/inventory.yaml
  33. +8 −0 spec/docker/live_audit.service
  34. +20 −0 spec/docker/live_audit.sh
  35. +2 −1 spec/docker/provision.sh
  36. +6 −6 spec/docker/standard-ha/docker-compose.yaml
  37. +1 −2 spec/docker/standard-ha/inventory.yaml
  38. +4 −4 spec/docker/standard/docker-compose.yaml
  39. +1 −2 spec/docker/standard/inventory.yaml
  40. +469 −0 spec/fixtures/infrastatus.json
  41. +12 −0 spec/fixtures/plans/failed_table.txt
  42. +16 −0 spec/fixtures/plans/passed_table.txt
  43. +170 −0 spec/fixtures/plans/raw_summary.json
  44. +111 −0 spec/fixtures/plans/summarized.json
  45. +10 −0 spec/fixtures/plans/summary_table.txt
  46. +41 −0 spec/fixtures/status.json
  47. +16 −0 spec/functions/convert_hash_spec.rb
  48. +17 −0 spec/functions/convert_status_spec.rb
  49. +14 −0 spec/functions/determine_status_spec.rb
  50. +14 −0 spec/functions/fail_on_transport_spec.rb
  51. +17 −0 spec/functions/file_or_content_spec.rb
  52. +11 −0 spec/functions/flatten_compact_spec.rb
  53. +32 −0 spec/functions/generate_pe_conf_spec.rb
  54. +16 −0 spec/functions/get_targets_spec.rb
  55. +16 −0 spec/functions/oid_spec.rb
  56. +14 −0 spec/functions/target_name_spec.rb
  57. +80 −0 spec/functions/validate_architecture_spec.rb
  58. +67 −0 spec/plans/status_disable.rb
  59. +4 −2 spec/spec_helper.rb
  60. +2 −0 spec/spec_helper_acceptance_local.rb
  61. +34 −0 spec/spec_helper_local.rb
  62. +15 −0 tasks/infrastatus.json
  63. +16 −0 tasks/infrastatus.sh
  64. +3 −1 tasks/rbac_token.rb
  65. +3 −2 tasks/read_file.rb
  66. +2 −0 tasks/sign_csr.rb
  67. +2 −0 tasks/submit_csr.rb
  68. +2 −1 tasks/trusted_facts.rb
8 changes: 7 additions & 1 deletion .fixtures.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,11 @@ fixtures:
apply_helpers: 'https://github.com/puppetlabs/puppetlabs-apply_helpers'
bolt_shim: 'https://github.com/puppetlabs/puppetlabs-bolt_shim'
debug: 'https://github.com/nwops/puppet-debug'
format: 'https://github.com/voxpupuli/puppet-format'
symlinks:
"peadm": "#{source_dir}"
"peadm": "#{source_dir}"
out: "#{source_dir}/.bundle/gems/bolt-1.49.0/bolt-modules/out"
ctrl: "#{source_dir}/.bundle/gems/bolt-1.49.0/bolt-modules/ctrl"
file: "#{source_dir}/.bundle/gems/bolt-1.49.0/bolt-modules/file"
system: "#{source_dir}/.bundle/gems/bolt-1.49.0/bolt-modules/system"
boltlib: "#{source_dir}/.bundle/gems/bolt-1.49.0/bolt-modules/boltlib"
6 changes: 3 additions & 3 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ require:
- rubocop-i18n
AllCops:
DisplayCopNames: true
TargetRubyVersion: '2.1'
TargetRubyVersion: '2.4'
Include:
- "./**/*.rb"
Exclude:
Expand Down Expand Up @@ -67,7 +67,7 @@ Style/TrailingCommaInArguments:
Description: Prefer always trailing comma on multiline argument lists. This makes
diffs, and re-ordering nicer.
EnforcedStyleForMultiline: comma
Style/TrailingCommaInLiteral:
Style/TrailingCommaInArrayLiteral:
Description: Prefer always trailing comma on multiline literals. This makes diffs,
and re-ordering nicer.
EnforcedStyleForMultiline: comma
Expand All @@ -90,7 +90,7 @@ Style/StringMethods:
Enabled: true
Layout/EndOfLine:
Enabled: false
Layout/IndentHeredoc:
Layout/HeredocIndentation:
Enabled: false
Metrics/AbcSize:
Enabled: false
Expand Down
1 change: 0 additions & 1 deletion .ruby-version

This file was deleted.

4 changes: 3 additions & 1 deletion .sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ Rakefile:
- 'PuppetSyntax.exclude_paths = ["plans/**/*.pp", "vendor/**/*"]'
.gitignore:
paths:
- '.rerun.json'
- '.rerun.json'
- '*.tar.gz'

19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## Release 1.1.0
### Summary

This release supports PE 2019.1 through 2019.5.

A Changelog was not maintained prior to this release.

### Features
- Provision new PE clusters with standard, large, or extra-large architecture
- Upgrade PE clusters provisioned with peadm

### Bugfixes

N/A

This changelog is used track changes with this module in human readable format.
Feel free to reference tickets with links or other important information the
reader would find useful when determining the level of risk with upgrading.
For more information on changelogs please [see the keeping a changelog site](http://keepachangelog.com/en/0.3.0/).
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,9 @@ Reference:
* [Architectures](documentation/architectures.md)
* [Testing](documentation/pre_post_checks.md)
* [Docker Based Examples](documentation/docker_examples.md)

## Requirements

Normally, if you are able to use peadm to set up an infrastructure and Puppet agent runs are all working, chances are you met all the requirements and don't have to worry. Sometimes Some notable requirements are highlighted below which may accidentally be adjusted by users, but which architectures deployed by this module rely on. These configuration requirements need to be maintained for the infrastructure to operate correctly.

* Classifier Data needs to be enabled. This feature is enabled by default on new installs, but can be disabled by users if they remove the relevant configuration from their global hiera.yaml file. See the [PE docs](https://puppet.com/docs/pe/latest/config_console.html#task-5039) for more information.
Binary file added documentation/images/table_output.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion documentation/provision.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The peadm provisioning plan creates base reference implementation. Once a base s

## Reference Architectures

When provisioning a new PE stack using peadm, there are several different host parameters which can be specified. At a minimum, you must always specify the Puppet master. Depending on which architecture you are deploying, other host parameters may be needed as well. The following is a list of the architectures peadm can provision.
When provisioning a new PE stack using peadm, there are several different host parameters which can be specified. At a minimum, you must always specify the master parameter. Depending on which architecture you are deploying, other host parameters may be needed as well. The following is a list of the architectures peadm can provision and the required parameters.

* Standard
- master
Expand Down
170 changes: 170 additions & 0 deletions documentation/res/raw_summary.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
{
"pnw_stack": {
"status": "degraded",
"state": {
"code-manager-service/pe-std.puppet.vm": true,
"file-sync-storage-service/pe-std.puppet.vm": true,
"file-sync-client-service/pe-std.puppet.vm": true,
"pe-master/pe-std.puppet.vm": true,
"classifier-service/pe-std.puppet.vm": true,
"rbac-service/pe-std.puppet.vm": true,
"activity-service/pe-std.puppet.vm": true,
"orchestrator-service/pe-std.puppet.vm": true,
"broker-service/pe-std.puppet.vm": true,
"puppetdb-status/pe-std.puppet.vm": true,
"file-sync-client/pe-std-replica.puppet.vm": false,
"master/pe-std-replica.puppet.vm": false,
"classifier/pe-std-replica.puppet.vm": false,
"rbac/pe-std-replica.puppet.vm": false,
"activity/pe-std-replica.puppet.vm": false,
"puppetdb/pe-std-replica.puppet.vm": false
},
"failed": {
"file-sync-client/pe-std-replica.puppet.vm": false,
"master/pe-std-replica.puppet.vm": false,
"classifier/pe-std-replica.puppet.vm": false,
"rbac/pe-std-replica.puppet.vm": false,
"activity/pe-std-replica.puppet.vm": false,
"puppetdb/pe-std-replica.puppet.vm": false
},
"passed": {
"code-manager-service/pe-std.puppet.vm": true,
"file-sync-storage-service/pe-std.puppet.vm": true,
"file-sync-client-service/pe-std.puppet.vm": true,
"pe-master/pe-std.puppet.vm": true,
"classifier-service/pe-std.puppet.vm": true,
"rbac-service/pe-std.puppet.vm": true,
"activity-service/pe-std.puppet.vm": true,
"orchestrator-service/pe-std.puppet.vm": true,
"broker-service/pe-std.puppet.vm": true,
"puppetdb-status/pe-std.puppet.vm": true
},
"stack_name": "pnw_stack"
},
"east_stack": {
"status": "degraded",
"state": {
"code-manager-service/pe-std.puppet.vm": true,
"file-sync-storage-service/pe-std.puppet.vm": true,
"file-sync-client-service/pe-std.puppet.vm": true,
"pe-master/pe-std.puppet.vm": true,
"classifier-service/pe-std.puppet.vm": true,
"rbac-service/pe-std.puppet.vm": true,
"activity-service/pe-std.puppet.vm": true,
"orchestrator-service/pe-std.puppet.vm": true,
"broker-service/pe-std.puppet.vm": true,
"puppetdb-status/pe-std.puppet.vm": true,
"file-sync-client/pe-std-replica.puppet.vm": false,
"master/pe-std-replica.puppet.vm": false,
"classifier/pe-std-replica.puppet.vm": false,
"rbac/pe-std-replica.puppet.vm": false,
"activity/pe-std-replica.puppet.vm": false,
"puppetdb/pe-std-replica.puppet.vm": false
},
"failed": {
"file-sync-client/pe-std-replica.puppet.vm": false,
"master/pe-std-replica.puppet.vm": false,
"classifier/pe-std-replica.puppet.vm": false,
"rbac/pe-std-replica.puppet.vm": false,
"activity/pe-std-replica.puppet.vm": false,
"puppetdb/pe-std-replica.puppet.vm": false
},
"passed": {
"code-manager-service/pe-std.puppet.vm": true,
"file-sync-storage-service/pe-std.puppet.vm": true,
"file-sync-client-service/pe-std.puppet.vm": true,
"pe-master/pe-std.puppet.vm": true,
"classifier-service/pe-std.puppet.vm": true,
"rbac-service/pe-std.puppet.vm": true,
"activity-service/pe-std.puppet.vm": true,
"orchestrator-service/pe-std.puppet.vm": true,
"broker-service/pe-std.puppet.vm": true,
"puppetdb-status/pe-std.puppet.vm": true
},
"stack_name": "east_stack"
},
"west_stack": {
"status": "degraded",
"state": {
"code-manager-service/pe-std.puppet.vm": true,
"file-sync-storage-service/pe-std.puppet.vm": true,
"file-sync-client-service/pe-std.puppet.vm": true,
"pe-master/pe-std.puppet.vm": true,
"classifier-service/pe-std.puppet.vm": true,
"rbac-service/pe-std.puppet.vm": true,
"activity-service/pe-std.puppet.vm": true,
"orchestrator-service/pe-std.puppet.vm": true,
"broker-service/pe-std.puppet.vm": true,
"puppetdb-status/pe-std.puppet.vm": true,
"file-sync-client/pe-std-replica.puppet.vm": false,
"master/pe-std-replica.puppet.vm": false,
"classifier/pe-std-replica.puppet.vm": false,
"rbac/pe-std-replica.puppet.vm": false,
"activity/pe-std-replica.puppet.vm": false,
"puppetdb/pe-std-replica.puppet.vm": false
},
"failed": {
"file-sync-client/pe-std-replica.puppet.vm": false,
"master/pe-std-replica.puppet.vm": false,
"classifier/pe-std-replica.puppet.vm": false,
"rbac/pe-std-replica.puppet.vm": false,
"activity/pe-std-replica.puppet.vm": false,
"puppetdb/pe-std-replica.puppet.vm": false
},
"passed": {
"code-manager-service/pe-std.puppet.vm": true,
"file-sync-storage-service/pe-std.puppet.vm": true,
"file-sync-client-service/pe-std.puppet.vm": true,
"pe-master/pe-std.puppet.vm": true,
"classifier-service/pe-std.puppet.vm": true,
"rbac-service/pe-std.puppet.vm": true,
"activity-service/pe-std.puppet.vm": true,
"orchestrator-service/pe-std.puppet.vm": true,
"broker-service/pe-std.puppet.vm": true,
"puppetdb-status/pe-std.puppet.vm": true
},
"stack_name": "west_stack"
},
"northeast_stack": {
"status": "degraded",
"state": {
"code-manager-service/pe-std.puppet.vm": true,
"file-sync-storage-service/pe-std.puppet.vm": true,
"file-sync-client-service/pe-std.puppet.vm": true,
"pe-master/pe-std.puppet.vm": true,
"classifier-service/pe-std.puppet.vm": true,
"rbac-service/pe-std.puppet.vm": true,
"activity-service/pe-std.puppet.vm": true,
"orchestrator-service/pe-std.puppet.vm": true,
"broker-service/pe-std.puppet.vm": true,
"puppetdb-status/pe-std.puppet.vm": true,
"file-sync-client/pe-std-replica.puppet.vm": false,
"master/pe-std-replica.puppet.vm": false,
"classifier/pe-std-replica.puppet.vm": false,
"rbac/pe-std-replica.puppet.vm": false,
"activity/pe-std-replica.puppet.vm": false,
"puppetdb/pe-std-replica.puppet.vm": false
},
"failed": {
"file-sync-client/pe-std-replica.puppet.vm": false,
"master/pe-std-replica.puppet.vm": false,
"classifier/pe-std-replica.puppet.vm": false,
"rbac/pe-std-replica.puppet.vm": false,
"activity/pe-std-replica.puppet.vm": false,
"puppetdb/pe-std-replica.puppet.vm": false
},
"passed": {
"code-manager-service/pe-std.puppet.vm": true,
"file-sync-storage-service/pe-std.puppet.vm": true,
"file-sync-client-service/pe-std.puppet.vm": true,
"pe-master/pe-std.puppet.vm": true,
"classifier-service/pe-std.puppet.vm": true,
"rbac-service/pe-std.puppet.vm": true,
"activity-service/pe-std.puppet.vm": true,
"orchestrator-service/pe-std.puppet.vm": true,
"broker-service/pe-std.puppet.vm": true,
"puppetdb-status/pe-std.puppet.vm": true
},
"stack_name": "northeast_stack"
}
}
111 changes: 111 additions & 0 deletions documentation/res/summarized.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
{
"summary": {
"status": "degraded",
"stacks": {
"pnw_stack": "degraded",
"east_stack": "degraded",
"west_stack": "degraded",
"northeast_stack": "degraded"
}
},
"failed": [
{
"Stack": "pnw_stack",
"Service": "file-sync-client",
"Url": "pe-std-replica.puppet.vm",
"Status": "failed"
},
{
"Stack": "pnw_stack",
"Service": "master",
"Url": "pe-std-replica.puppet.vm",
"Status": "failed"
},
{
"Stack": "pnw_stack",
"Service": "classifier",
"Url": "pe-std-replica.puppet.vm",
"Status": "failed"
},
{
"Stack": "pnw_stack",
"Service": "rbac",
"Url": "pe-std-replica.puppet.vm",
"Status": "failed"
},
{
"Stack": "pnw_stack",
"Service": "activity",
"Url": "pe-std-replica.puppet.vm",
"Status": "failed"
},
{
"Stack": "pnw_stack",
"Service": "puppetdb",
"Url": "pe-std-replica.puppet.vm",
"Status": "failed"
}
],
"operational": [
{
"Stack": "pnw_stack",
"Service": "code-manager-service",
"Url": "pe-std.puppet.vm",
"Status": "operational"
},
{
"Stack": "pnw_stack",
"Service": "file-sync-storage-service",
"Url": "pe-std.puppet.vm",
"Status": "operational"
},
{
"Stack": "pnw_stack",
"Service": "file-sync-client-service",
"Url": "pe-std.puppet.vm",
"Status": "operational"
},
{
"Stack": "pnw_stack",
"Service": "pe-master",
"Url": "pe-std.puppet.vm",
"Status": "operational"
},
{
"Stack": "pnw_stack",
"Service": "classifier-service",
"Url": "pe-std.puppet.vm",
"Status": "operational"
},
{
"Stack": "pnw_stack",
"Service": "rbac-service",
"Url": "pe-std.puppet.vm",
"Status": "operational"
},
{
"Stack": "pnw_stack",
"Service": "activity-service",
"Url": "pe-std.puppet.vm",
"Status": "operational"
},
{
"Stack": "pnw_stack",
"Service": "orchestrator-service",
"Url": "pe-std.puppet.vm",
"Status": "operational"
},
{
"Stack": "pnw_stack",
"Service": "broker-service",
"Url": "pe-std.puppet.vm",
"Status": "operational"
},
{
"Stack": "pnw_stack",
"Service": "puppetdb-status",
"Url": "pe-std.puppet.vm",
"Status": "operational"
}
]
}
Loading