Skip to content

Commit

Permalink
Support Puppet 7
Browse files Browse the repository at this point in the history
  • Loading branch information
treydock committed Dec 9, 2020
1 parent be2556a commit a1e1064
Show file tree
Hide file tree
Showing 9 changed files with 133 additions and 14 deletions.
74 changes: 74 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ matrix:
env: CHECK="validate lint strings:generate reference" PUPPET_GEM_VERSION="~> 6"
stage: unit
bundler_args: --without system_tests development
- rvm: 2.5.7
env: CHECK="validate lint strings:generate reference" PUPPET_GEM_VERSION="~> 7"
stage: unit
bundler_args: --without system_tests development
- rvm: 2.4.9
env: CHECK="parallel_spec" PUPPET_GEM_VERSION="~> 5"
stage: unit
Expand All @@ -47,6 +51,14 @@ matrix:
env: CHECK="parallel_spec" PUPPET_GEM_VERSION="~> 6" FIXTURES_YML=".fixtures-latest.yml"
stage: unit
bundler_args: --without system_tests development
- rvm: 2.7.0
env: CHECK="parallel_spec" PUPPET_GEM_VERSION="~> 7"
stage: unit
bundler_args: --without system_tests development
- rvm: 2.7.0
env: CHECK="parallel_spec" PUPPET_GEM_VERSION="~> 7" FIXTURES_YML=".fixtures-latest.yml"
stage: unit
bundler_args: --without system_tests development
- rvm: 2.4.9
services: docker
env: BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_sensu_mode=full
Expand All @@ -57,6 +69,11 @@ matrix:
env: BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=full
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet7 BEAKER_sensu_mode=full
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_sensu_ci_build=yes BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=full
Expand All @@ -72,6 +89,11 @@ matrix:
env: BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=examples
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet7 BEAKER_sensu_mode=examples
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_sensu_ci_build=yes BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=examples
Expand All @@ -87,6 +109,11 @@ matrix:
env: BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=types
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet7 BEAKER_sensu_mode=types
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_sensu_ci_build=yes BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=types
Expand All @@ -102,6 +129,11 @@ matrix:
env: BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=types BEAKER_sensu_use_agent=yes
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet7 BEAKER_sensu_mode=types BEAKER_sensu_use_agent=yes
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.4.9
services: docker
env: BEAKER_set="centos-7-cluster" BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_sensu_mode=cluster
Expand All @@ -112,6 +144,11 @@ matrix:
env: BEAKER_set="centos-7-cluster" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=cluster
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="centos-7-cluster" BEAKER_PUPPET_COLLECTION=puppet7 BEAKER_sensu_mode=cluster
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.4.9
services: docker
env: BEAKER_set="centos-7-cluster" BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_sensu_mode=cluster BEAKER_sensu_use_agent=yes
Expand All @@ -122,6 +159,11 @@ matrix:
env: BEAKER_set="centos-7-cluster" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=cluster BEAKER_sensu_use_agent=yes
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="centos-7-cluster" BEAKER_PUPPET_COLLECTION=puppet7 BEAKER_sensu_mode=cluster BEAKER_sensu_use_agent=yes
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_sensu_ci_build=yes BEAKER_set="centos-7-cluster" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=cluster
Expand All @@ -137,6 +179,11 @@ matrix:
env: BEAKER_set="centos-8" BEAKER_PUPPET_COLLECTION=puppet6
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="centos-8" BEAKER_PUPPET_COLLECTION=puppet7
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_sensu_ci_build=yes BEAKER_set="centos-8" BEAKER_PUPPET_COLLECTION=puppet6
Expand All @@ -152,6 +199,11 @@ matrix:
env: BEAKER_set="debian-9" BEAKER_PUPPET_COLLECTION=puppet6
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="debian-9" BEAKER_PUPPET_COLLECTION=puppet7
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_sensu_ci_build=yes BEAKER_set="debian-9" BEAKER_PUPPET_COLLECTION=puppet6
Expand All @@ -167,6 +219,11 @@ matrix:
env: BEAKER_set="debian-10" BEAKER_PUPPET_COLLECTION=puppet6
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="debian-10" BEAKER_PUPPET_COLLECTION=puppet7
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_sensu_ci_build=yes BEAKER_set="debian-10" BEAKER_PUPPET_COLLECTION=puppet6
Expand Down Expand Up @@ -202,6 +259,11 @@ matrix:
env: BEAKER_set="ubuntu-1804" BEAKER_PUPPET_COLLECTION=puppet6
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="ubuntu-1804" BEAKER_PUPPET_COLLECTION=puppet7
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_sensu_ci_build=yes BEAKER_set="ubuntu-1804" BEAKER_PUPPET_COLLECTION=puppet6
Expand All @@ -217,6 +279,11 @@ matrix:
env: BEAKER_set="amazonlinux-2" BEAKER_PUPPET_COLLECTION=puppet6
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="amazonlinux-2" BEAKER_PUPPET_COLLECTION=puppet7
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_sensu_ci_build=yes BEAKER_set="amazonlinux-2" BEAKER_PUPPET_COLLECTION=puppet6
Expand All @@ -232,6 +299,11 @@ matrix:
env: BEAKER_set="amazonlinux-201803" BEAKER_PUPPET_COLLECTION=puppet6
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_set="amazonlinux-201803" BEAKER_PUPPET_COLLECTION=puppet7
script: bundle exec rake beaker
stage: acceptance
- rvm: 2.5.7
services: docker
env: BEAKER_sensu_ci_build=yes BEAKER_set="amazonlinux-201803" BEAKER_PUPPET_COLLECTION=puppet6
Expand All @@ -244,6 +316,8 @@ matrix:
env: CHECK="parallel_spec" PUPPET_GEM_VERSION="~> 5" FIXTURES_YML=".fixtures-latest.yml"
- rvm: 2.5.7
env: CHECK="parallel_spec" PUPPET_GEM_VERSION="~> 6" FIXTURES_YML=".fixtures-latest.yml"
- rvm: 2.7.0
env: CHECK="parallel_spec" PUPPET_GEM_VERSION="~> 7" FIXTURES_YML=".fixtures-latest.yml"
- rvm: 2.5.7
env: BEAKER_sensu_ci_build=yes BEAKER_set="centos-7" BEAKER_PUPPET_COLLECTION=puppet6 BEAKER_sensu_mode=full
- rvm: 2.5.7
Expand Down
6 changes: 5 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ if puppetversion = ENV['PUPPET_GEM_VERSION']
else
gem 'puppet', :require => false
end
gem 'facter', '< 4.0', :require => false
if facterversion = ENV['FACTER_GEM_VERSION']
gem 'facter', facterversion, :require => false
else
gem 'facter', :require => false
end

group :development, :unit_tests do
gem 'rake'
Expand Down
6 changes: 6 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,16 @@ image:
environment:
matrix:
- PUPPET_GEM_VERSION: '~>5.x'
FACTER_GEM_VERSION: '~>3.x'
PUPPET_REPO: puppet5
RUBY_VERSION: 24-x64
- PUPPET_GEM_VERSION: '~>6.x'
FACTER_GEM_VERSION: '~>3.x'
PUPPET_REPO: puppet6
RUBY_VERSION: 25-x64
- PUPPET_GEM_VERSION: '~>7.x'
FACTER_GEM_VERSION: '~>4.x'
PUPPET_REPO: puppet7
RUBY_VERSION: 26-x64
matrix:
fast_finish: false
2 changes: 1 addition & 1 deletion metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
"requirements": [
{
"name": "puppet",
"version_requirement": ">= 5.0.0 < 7.0.0"
"version_requirement": ">= 5.0.0 < 8.0.0"
}
],
"tags": [
Expand Down
12 changes: 12 additions & 0 deletions spec/acceptance/03_no_ssl_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,16 @@ class { 'sensu::agent':
its(:exit_status) { should eq 0 }
end
end

context 're-enables SSL' do
it 'should work without errors' do
backend_pp = <<-EOS
class { '::sensu':
password => 'P@ssw0rd!',
}
class { 'sensu::backend': }
EOS
apply_manifest_on(backend, backend_pp, :catch_failures => true)
end
end
end
24 changes: 18 additions & 6 deletions spec/acceptance/99_facts_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@
describe 'sensu::backend class', if: ['base','full'].include?(RSpec.configuration.sensu_mode) do
backend = hosts_as('sensu-backend')[0]
agent = hosts_as('sensu-agent')[0]
let(:facter_command) do
puppet_version = on(backend, 'puppet --version').stdout
if Gem::Version.new(puppet_version) >= Gem::Version.new('7.0.0')
'puppet facts show'
else
'facter -p --json'
end
end

context 'backend facts' do
it 'should work without errors' do
pp = <<-EOS
Expand All @@ -23,13 +32,15 @@
end

it "should have backend facts" do
version = on(backend, 'facter -p sensu_backend.version').stdout
expect(version).to match(/^[0-9\.]+/)
out = on(backend, "#{facter_command} sensu_backend.version").stdout
data = JSON.parse(out)
expect(data['sensu_backend.version']).to match(/^[0-9\.]+/)
end

it "should have sensuctl facts" do
version = on(backend, 'facter -p sensuctl.version').stdout
expect(version).to match(/^[0-9\.]+/)
out = on(backend, "#{facter_command} sensuctl.version").stdout
data = JSON.parse(out)
expect(data['sensuctl.version']).to match(/^[0-9\.]+/)
end
end

Expand All @@ -53,8 +64,9 @@
end

it "should have agent facts" do
version = on(agent, 'facter -p sensu_agent.version').stdout
expect(version).to match(/^[0-9\.]+/)
out = on(agent, "#{facter_command} sensu_agent.version").stdout
data = JSON.parse(out)
expect(data['sensu_agent.version']).to match(/^[0-9\.]+/)
end
end
end
6 changes: 3 additions & 3 deletions spec/acceptance/nodesets/centos-7-cluster.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ HOSTS:
- '/usr/sbin/init'
docker_image_commands:
- "sed -i -r '/^tsflags/d' /etc/yum.conf"
- 'yum install -y wget which'
- 'yum install -y wget which iproute'
docker_container_name: 'sensu-backend1-el7'
sensu-backend2:
roles:
Expand All @@ -27,7 +27,7 @@ HOSTS:
- '/usr/sbin/init'
docker_image_commands:
- "sed -i -r '/^tsflags/d' /etc/yum.conf"
- 'yum install -y wget which'
- 'yum install -y wget which iproute'
docker_container_name: 'sensu-backend2-el7'
sensu-backend3:
roles:
Expand All @@ -41,7 +41,7 @@ HOSTS:
- '/usr/sbin/init'
docker_image_commands:
- "sed -i -r '/^tsflags/d' /etc/yum.conf"
- 'yum install -y wget which'
- 'yum install -y wget which iproute'
docker_container_name: 'sensu-backend3-el7'
CONFIG:
log_level: debug
Expand Down
15 changes: 12 additions & 3 deletions spec/acceptance/windows_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,15 @@
# the Sensu Go backend inside the Appveyor Windows testing environment

describe 'sensu::cli class', if: Gem.win_platform? do
let(:facter_command) do
puppet_version = `puppet --version`
if Gem::Version.new(puppet_version) >= Gem::Version.new('7.0.0')
'puppet facts show'
else
'facter -p --json'
end
end

context 'default' do
pp = <<-EOS
class { '::sensu':
Expand Down Expand Up @@ -36,7 +45,7 @@ class { 'sensu::cli':
end
describe 'sensuctl.version fact' do
it 'has version fact' do
output = `facter --json -p sensuctl`
output = `#{facter_command} sensuctl`
data = JSON.parse(output.strip)
expect(data['sensuctl']['version']).to match(/^[0-9\.]+/)
end
Expand Down Expand Up @@ -89,7 +98,7 @@ class { 'sensu::agent':
end
describe 'sensu_agent.version fact' do
it 'has version fact' do
output = `facter --json -p sensu_agent`
output = `#{facter_command} sensu_agent`
data = JSON.parse(output.strip)
expect(data['sensu_agent']['version']).to match(/^[0-9\.]+/)
end
Expand Down Expand Up @@ -136,7 +145,7 @@ class { 'sensu::agent':
end
describe 'sensu_agent.version fact' do
it 'has version fact' do
output = `facter --json -p sensu_agent`
output = `#{facter_command} sensu_agent`
data = JSON.parse(output.strip)
expect(data['sensu_agent']['version']).to match(/^[0-9\.]+/)
end
Expand Down
2 changes: 2 additions & 0 deletions spec/unit/facter/sensu_facts_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
end

it 'returns nil' do
allow(Facter::Core::Execution).to receive(:which).with('sensuctl').and_return(nil)
allow(Facter::Core::Execution).to receive(:which).with('sensu-agent').and_return(nil)
allow(Facter::Core::Execution).to receive(:which).with('sensu-backend').and_return(nil)
SensuFacts.add_backend_facts
expect(Facter.fact(:sensu_backend).value).to be_nil
Expand Down

0 comments on commit a1e1064

Please sign in to comment.