(PUP-4477) Start module project skeleton
Generated using https://github.com/garethr/puppet-module-skeleton.
(PUP-4477) Implement upgrade for rpm-based distros
Implements migrating ssl and puppet.conf to new locations, removing deprecated settings from puppet.conf, and installing `puppet-agent`. MCollective support is still in progress.
Prune test matrix to a minimal set that is expected to pass. Need to extend to 3.7 and 4.0 cases later.
(PUP-4477) Bump Gemfile to Puppet 3.8.0
No published gem for Puppet 3.8 exists, so use Git instead.
Implement unit tests for facts, add facts for basic spec tests, and add tests for puppetlabs_yum class and rpm_gpg_key function.
(doc) Remove changelog and fill minimal README
(PUP-4477) Use latest rspec-puppet gem
The previous behavior - following rspec-puppet's Git repo - came from the skeleton used to initialize the project. The latest gem is sufficient, so use it instead.
(maint) Use contain instead of anchor-pattern
Use the `contain` function to show class containment, rather than the anchor pattern. http://docs.puppetlabs.com/puppet/latest/reference/lang_containment.html
(maint) Use PUPPET_VERSION in Gemfile
Use PUPPET_VERSION to override default puppet version in Gemfile. Test runs set PUPPET_VERSION to test different puppet versions.
Merge pull request #1 from MikaelSmith/task/master/PUP-4477-rpm-upgrade
(PUP-4477) Upgrade module for rpm-based distro
(maint) Simplify test configuration
Remove unused `development` Gems, and unnecessary variables for `rake test` setup in Travis.
Merge pull request #2 from MikaelSmith/maint/master/simplify-test
(maint) Simplify test configuration
(PUP-4559) Extend spec test to Puppet 3.7 and 4.0
Extend spec testing to cover error case when using Puppet prior to 3.8, and use idempotent behavior for Puppet 4+.
Merge pull request #5 from MikaelSmith/task/master/PUP-4559-test-3.7-4.0
(PUP-4559) Extend spec test to Puppet 3.7 and 4.0
(PUP-4557) Extend unit testing for 100% coverage
(PUP-4477) Add more deprecated/removed settings
The first pass missed some settings that were removed. This update includes all settings that existed in http://docs.puppetlabs.com/references/3.8.latest/configuration.html but not in http://docs.puppetlabs.com/references/4.0.latest/configuration.html.
Merge pull request #3 from MikaelSmith/task/master/PUP-4557-extend-un…
…it-testing (PUP-4557) Extend unit testing for 100% coverage
(maint) Fix accidental license attribution
Merge pull request #6 from MikaelSmith/maint/master/fix-license
(maint) Fix accidental license attribution
(PUP-4567) Update acceptance nodesets
Use Puppet boxes where available, and default to Centos 7.
(PUP-4567) Use dev builds when SHA is specified
Use `install_puppetlabs_dev_repo` and `install_packages_from_local_dev_repo` to get unreleased packages.
(PUP-4567) Update acceptance test
Prior to this change, only a single test could be run, because `puppet` was only installed at the start of the test suite. Change to a pattern where every test sets up `puppet`, then cleans up after the test. Update the existing acceptance test to expect the `puppet-agent` package with the `puppet` and `mcollective` services running. Also don't expect idempotency to work yet, because we switch from `puppet` to `puppet-agent` mid-test. Add new acceptance tests for upgrading without starting services, and upgrading when mcollective is configured.
(PUP-4567) Add master/agent upgrade test
Prior to this, no acceptance test verified that the upgrade module worked when run in a master/agent configuration, only masterless. Add a test verifying master/agent behavior. This includes lots of hacks due to BKR-273, BKR-254, waiting on Puppet Server compatibility with Puppet 3 agents in SERVER-595, and a release of Puppet 3.8.1 packages.
(docs) Clarify that the future parser setting isn't a requirement for…
… the agent
Merge pull request #7 from kylog/clarify-readme-on-future-parser
clarify-readme-on-future-parser
Merge pull request #4 from MikaelSmith/task/master/PUP-4567-acceptanc…
…e-infra (PUP-4567) Update acceptance infrastructure
(PUP-4567) Add future parser in Rakefile
Enable future parser and disable stringify facts in the Rakefile, so it doesn't have to be specified on every specs run. This simplifies maintenance of the Jenkins pipeline used to run specs.
(maint) Clear ssldir and use default
Prior behavior would move ssl files to the new default location in Puppet-Agent, but wouldn't clear the ssldir setting. If ssldir was previously set using a variable that's changed - such as vardir - Puppet-Agent would look for SSL files in the wrong place. Rather than trying to resolve where ssldir would point under Puppet-Agent before installing Puppet-Agent, clear ssldir so we use the default.
Merge pull request #8 from MikaelSmith/task/master/PUP-4567-fix-ci-specs
(PUP-4567) Add future parser in Rakefile
(PUP-4567) Fixes for acceptance and Beaker 2.12
Without this change, acceptance fails because `step` expects to be in the context of a test. They also fail specifically in CI because the master also includes the agent role. * Pin to a working version of Beaker; BKR-283 tracks fixing it. * Use default instead of agents for the machine being tested. * Also only sync modules when needed.
Merge remote-tracking branch 'upstream/pr/12'
* upstream/pr/12: (PUP-4567) Fixes for acceptance and Beaker 2.12
(PUP-4561) Extract platform-specific code
Before this commit, the `prepare` class was full of platform-specific code that needed to be refactored before non-RedHat platforms could be supported. Extract the platform-specific code to `params` and a new class that is selected based on the `osfamily` fact.
Merge remote-tracking branch 'upstream/pr/9'
* upstream/pr/9: (maint) Clear ssldir and use default
Merge remote-tracking branch 'upstream/pr/13'
* upstream/pr/13: (PUP-4561) Extract platform-specific code
(maint) Do nothing when using module in Puppet 4+
In Puppet 4+, this module will do nothing except provide a notice that the module does nothing.
Merge remote-tracking branch 'upstream/pr/10'
* upstream/pr/10: (maint) Do nothing when using module in Puppet 4+
(maint) Minor puppet.conf cleanup
Without this change, no test confirmed that some settings are preserved from puppet.conf. Add that confirmation.
(PUP-4560) Add mcollective setup and testing
Adds mcollective setup to acceptance tests, and verifies that its correctly setup before upgrade. Marionette Collective setup copied from https://github.com/richardc/mcollective-aio-beaker.
(maint) Purge instead of absent for test cleanup
Use purged instead of absent for test cleanup, to ensure a cleaner test environment. Without this change, config files may be left behind on platforms that support both uninstall and purge.
(PUP-4560) Add mcollective support
Adds migrating mcollective configuration - client.cfg and server.cfg - to the new expected locations; and updating logdir, libdir, and plugin.yaml to account for new locations.
Puppet 3.8 gems were released as Puppet 3.8.1. Use those for testing, rather than git.
(maint) Make path separators configurable
Windows will use `;` path separators, as opposed to `:`. Make path separators a parameter to be configured based on the OS.
Merge remote-tracking branch 'upstream/pr/14'
* upstream/pr/14: (maint) Use Puppet 3.8 gems
Merge remote-tracking branch 'upstream/pr/11'
* upstream/pr/11: (maint) Make path separators configurable (PUP-4560) Add mcollective support (maint) Purge instead of absent for test cleanup (PUP-4560) Add mcollective setup and testing (maint) Minor puppet.conf cleanup
(maint) Only match hostname against mco ping output
Previously, the tests failed when run against the vmpooler, because the
vmpooler returns a dynamically generated fqdn as the `default` node's
hostname, and that's what `Beaker::Host#to_s` returns. However, `mco ping`
only outputs the hostname:
izem5qqz7rbrm0u.delivery.puppetlabs.net (agent) 23:08:26$ mco ping
izem5qqz7rbrm0u time=173.65 ms
This commit calls the `Host#hostname` method, extracts the hostname
component of the fqdn, and matches against the hostname and optional
domain component.(PUP-4638) Rename agent_upgrade -> puppet_agent
Merge pull request #16 from kylog/pup-4638-rename-all-the-things
pup-4638-rename-all-the-things
(PUP-4658) Prefer new mco libdir
When the agent_upgrade module updates the mcollective's libdir, it should prepend the new location rather than append it so that modules in the new location are preferred.
Make metadata.json match output from PMT
Merge pull request #17 from mhaskel/metadata_ordering
Make metadata.json match output from PMT