31 changes: 29 additions & 2 deletions .sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,36 @@
# env: PUPPET_GEM_VERSION="~> 5.0" CHECK=spec

Gemfile:
optional:
required:
':development':
# Ping rspec-puppet 2.6.9 until https://github.com/rodjek/rspec-puppet/issues/663 is fixed
# Gems built using puppet-module-gems utility
- gem: 'puppet-module-posix-default-r#{minor_version}'
platforms: 'ruby'
- gem: 'puppet-module-win-default-r#{minor_version}'
platforms:
- 'mswin'
- 'mingw'
- 'x64_mingw'
- gem: 'puppet-module-posix-dev-r#{minor_version}'
platforms: 'ruby'
version: '0.3.3'
- gem: 'puppet-module-win-dev-r#{minor_version}'
platforms:
- 'mswin'
- 'mingw'
- 'x64_mingw'
version: '0.0.7'
# json_pure 2.0.2 added a requirement on ruby >= 2. We pin to json_pure <= 2.0.1
# if using ruby 1.x
- gem: json_pure
version: '<= 2.0.1'
condition: "Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')"
- gem: fast_gettext
version: '1.1.0'
condition: "Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')"
- gem: fast_gettext
condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')"
# Pin rspec-puppet 2.6.9 until https://github.com/rodjek/rspec-puppet/issues/663 is fixed
- gem: 'rspec-puppet'
version: '2.6.9'

Expand Down
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ matrix:
- rvm: 2.4.1
env: CHECK="validate lint"
- rvm: 2.1.0
env: PUPPET_GEM_VERSION="~> 3.8" FUTURE_PARSER="yes" CHECK=spec
env: PUPPET_GEM_VERSION="~> 3.8" FUTURE_PARSER="yes" CHECK=spec BEAKER_VERSION="3.0"
- rvm: 2.1.5
env: PUPPET_GEM_VERSION="~> 4.0.0" CHECK=spec
env: PUPPET_GEM_VERSION="~> 4.0.0" CHECK=spec BEAKER_VERSION="3.0"
- rvm: 2.1.9
env: PUPPET_GEM_VERSION="4.7.1" HIERA_GEM_VERSION="3.2.2" CHECK=spec
- rvm: 2.1.9
Expand Down
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

## [1.6.1] - 2018-06-29

### Summary
Minor bugfix release

### Features
- Add Ubuntu 18.04 support
- Add skip_if_unavailable to yumrepo resource ([MODULES-4424](https://tickets.puppetlabs.com/browse/MODULES-4424))

### Bug fixes
- Do not manage PA version on PE infra nodes ([MODULES-5230](https://tickets.puppetlabs.com/browse/MODULES-5230))
- Fix update failure for FIPS ([MODULES-7329](https://tickets.puppetlabs.com/browse/MODULES-7329))

## [1.6.0] - 2018-03-21

### Summary
Expand Down
16 changes: 8 additions & 8 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ minor_version = "#{ruby_version_segments[0]}.#{ruby_version_segments[1]}"
#end

group :development do
gem "puppet-module-posix-default-r#{minor_version}", :require => false, :platforms => "ruby"
gem "puppet-module-win-default-r#{minor_version}", :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
gem "puppet-module-posix-dev-r#{minor_version}", :require => false, :platforms => "ruby"
gem "puppet-module-win-dev-r#{minor_version}", '0.0.7', :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
gem "json_pure", '<= 2.0.1', :require => false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
gem "fast_gettext", '1.1.0', :require => false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
gem "fast_gettext", :require => false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
gem "rspec-puppet", "2.6.9", :require => false
gem "puppet-module-posix-default-r#{minor_version}", :require => false, :platforms => "ruby"
gem "puppet-module-win-default-r#{minor_version}", :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
gem "puppet-module-posix-dev-r#{minor_version}", '0.3.3', :require => false, :platforms => "ruby"
gem "puppet-module-win-dev-r#{minor_version}", '0.0.7', :require => false, :platforms => ["mswin", "mingw", "x64_mingw"]
gem "json_pure", '<= 2.0.1', :require => false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
gem "fast_gettext", '1.1.0', :require => false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
gem "fast_gettext", :require => false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
gem "rspec-puppet", "2.6.9", :require => false
end

group :system_tests do
Expand Down
17 changes: 13 additions & 4 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# Install from Puppet Enterprise repos. Enabled if communicating with a PE master.
# [manage_pki_dir]
# Whether or not to manage the /etc/pki directory. Defaults to true.
# Managing the /etc/pki directory inside the puppet_agent module can be problematic for
# Managing the /etc/pki directory inside the puppet_agent module can be problematic for
# organizations that manage gpg keys and settings in other modules.
# [manage_repo]
# Boolean to determine whether to configure repositories
Expand Down Expand Up @@ -65,6 +65,7 @@
$install_dir = $::puppet_agent::params::install_dir,
$disable_proxy = false,
$install_options = $::puppet_agent::params::install_options,
$skip_if_unavailable = 'absent',
$msi_move_locked_files = false,
) inherits ::puppet_agent::params {

Expand All @@ -78,6 +79,8 @@
info('puppet_agent performs no actions if a package_version is not specified on Puppet 4')
} elsif $package_version == undef and $is_pe {
info("puppet_agent performs no actions if the master's agent version cannot be determed on PE 3.x")
} elsif defined('$::pe_server_version') {
info('puppet_agent performs no actions on PE infrastructure nodes to prevent a mismatch between agent and PE components')
} else {
if $package_version != undef and $package_version !~ /^\d+\.\d+\.\d+([.-]?\d*|\.\d+\.g[0-9a-f]+)$/ {
fail("invalid version ${package_version} requested")
Expand Down Expand Up @@ -128,9 +131,15 @@
$_package_file_name = "${puppet_agent::package_name}-${package_version}-1.osx${$::macosx_productversion_major}.dmg"
} elsif $::operatingsystem == 'AIX' {
$_aix_ver_number = regsubst($::platform_tag,'aix-(\d+\.\d+)-power','\1')
$aix_ver_number = $_aix_ver_number ? {
/^7\.2$/ => '7.1',
default => $_aix_ver_number,
if $_aix_ver_number {
if $collection =~ /(PC1|puppet5)/ {
$aix_ver_number = $_aix_ver_number ? {
/^7\.2$/ => '7.1',
default => $_aix_ver_number,
}
} else {
$aix_ver_number = '6.1'
}
}
$_package_file_name = "${puppet_agent::package_name}-${package_version}-1.aix${aix_ver_number}.ppc.rpm"
} elsif $::osfamily == 'windows' {
Expand Down
3 changes: 3 additions & 0 deletions manifests/install.pp
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,9 @@
# Workaround PUP-5802/PUP-5025
if ($::operatingsystem == 'Fedora') {
$dist_tag = "fedoraf${::operatingsystemmajrelease}"
} elsif ($::platform_tag != undef and $::platform_tag =~ /redhatfips.*/) {
# The undef check here is for unit tests that don't supply this fact.
$dist_tag = 'redhatfips7'
} elsif $::operatingsystem == 'Amazon' {
$dist_tag = 'el6'
} else {
Expand Down
20 changes: 11 additions & 9 deletions manifests/osfamily/redhat.pp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
assert_private()

$pa_collection = getvar('::puppet_agent::collection')
$skip_if_unavailable = getvar('::puppet_agent::skip_if_unavailable')

if $::operatingsystem == 'Fedora' {
if $pa_collection == 'PC1' {
Expand Down Expand Up @@ -111,15 +112,16 @@
default => undef,
}
yumrepo { 'pc_repo':
baseurl => $source,
descr => "Puppet Labs ${pa_collection} Repository",
enabled => true,
gpgcheck => '1',
gpgkey => "${gpg_keys}",
proxy => $_proxy,
sslcacert => $_sslcacert_path,
sslclientcert => $_sslclientcert_path,
sslclientkey => $_sslclientkey_path,
baseurl => $source,
descr => "Puppet Labs ${pa_collection} Repository",
enabled => true,
gpgcheck => '1',
gpgkey => "${gpg_keys}",
proxy => $_proxy,
sslcacert => $_sslcacert_path,
sslclientcert => $_sslclientcert_path,
sslclientkey => $_sslclientkey_path,
skip_if_unavailable => $skip_if_unavailable,
}
}
}
12 changes: 9 additions & 3 deletions manifests/prepare/package.pp
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,16 @@
}
$source = "puppet:///pe_packages/${pe_server_version}/${tag}/${package_file_name}"
} elsif $::operatingsystem == 'AIX' {
$tag = $::platform_tag ? {
'aix-7.2-power' => 'aix-7.1-power',
default => $::platform_tag,
if $::puppet_agent::collection =~ /(PC1|puppet5)/ {
$tag = $::platform_tag ? {
'aix-7.2-power' => 'aix-7.1-power',
default => $::platform_tag,
}
} else {
# From puppet6 onward, AIX 6.1 packages are used for all AIX platforms
$tag = 'aix-6.1-power'
}

$source = "puppet:///pe_packages/${pe_server_version}/${tag}/${package_file_name}"
} else {
$source = "puppet:///pe_packages/${pe_server_version}/${::platform_tag}/${package_file_name}"
Expand Down
5 changes: 3 additions & 2 deletions metadata.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "puppetlabs-puppet_agent",
"version": "1.6.0",
"version": "1.6.1",
"author": "puppetlabs",
"summary": "Upgrades Puppet 3.7+ and All-In-One Puppet Agents",
"license": "Apache-2.0",
Expand Down Expand Up @@ -66,7 +66,8 @@
"15.04",
"15.10",
"16.04",
"16.10"
"16.10",
"18.04"
]
},
{
Expand Down
Loading