Skip to content

Commit c97b2b3

Browse files
committed
some much needed cleanup
Addressed CVEs: - CVE-2017-8418 - CVE-2017-17042 Breaking Changes: - use `sensu-plugin` 2.x - removed support for ruby < 2.3 Misc Changes: - appeased the cops Signed-off-by: Ben Abrams <[email protected]>
1 parent 1129319 commit c97b2b3

7 files changed

+27
-20
lines changed

.travis.yml

-4
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ cache:
44
install:
55
- bundle install
66
rvm:
7-
- 2.1
8-
- 2.2
97
- 2.3.0
108
- 2.4.1
119
notifications:
@@ -26,8 +24,6 @@ deploy:
2624
on:
2725
tags: true
2826
all_branches: true
29-
rvm: 2.1
30-
rvm: 2.2
3127
rvm: 2.3.0
3228
rvm: 2.4.1
3329
repo: sensu-plugins/sensu-plugins-kubernetes

CHANGELOG.md

+10-1
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,21 @@ This project adheres to [Semantic Versioning](http://semver.org/).
44
This CHANGELOG follows the format listed [here ](https://github.com/sensu-plugins/community/blob/master/HOW_WE_CHANGELOG.md)
55

66
## [Unreleased]
7+
### Security
8+
- updated rubocop dependency to `~> 0.51.0` per: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8418. (@majormoses)
9+
- updated yard dependency to `~> 0.9.11` per: https://nvd.nist.gov/vuln/detail/CVE-2017-17042 (@majormoses)
10+
11+
### Breaking Changes
12+
- drop suppport for ruby versions `< 2.3` as they are EOL (@majormoses)
13+
- bumped dependency of sensu-plugin to 2.x you can read about it [here](https://github.com/sensu-plugins/sensu-plugin/blob/master/CHANGELOG.md#v145---2017-03-07) (@majormoses)
14+
15+
### Changed
16+
- appeased the cops (@majormoses)
717

818
## [3.3.0] - 2018-11-26
919
### Changed
1020
- `check-kube-pods-running.rb`: Skip a POD which is in the not ready state for shorter time than the specified time. Otherwise, the check alerts if we get lots of new PODs which are spawned every second and get up or get terminated longer than a minute. (@sys-ops)
1121

12-
1322
## [3.2.0] - 2018-11-21
1423
### Changed
1524
- `check-kube-service-available.rb`: Skip a service if its selector is empty. Otherwise all PODs in the cluster are listed with client.get_pods() call (including those that we do not want to monitor) (@sys-ops)

Rakefile

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ require 'yard'
77
require 'yard/rake/yardoc_task'
88

99
YARD::Rake::YardocTask.new do |t|
10-
OTHER_PATHS = %w().freeze
10+
OTHER_PATHS = %w[].freeze
1111
t.files = ['lib/**/*.rb', 'bin/**/*.rb', OTHER_PATHS]
12-
t.options = %w(--markup-provider=redcarpet --markup=markdown --main=README.md --files CHANGELOG.md)
12+
t.options = %w[--markup-provider=redcarpet --markup=markdown --main=README.md --files CHANGELOG.md]
1313
end
1414

1515
RuboCop::RakeTask.new
@@ -35,4 +35,4 @@ task :check_binstubs do
3535
end
3636
end
3737

38-
task default: [:spec, :make_bin_executable, :yard, :rubocop, :check_binstubs]
38+
task default: %i[spec make_bin_executable yard rubocop check_binstubs]

bin/check-kube-service-available.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ def run
6060
services = parse_list(config[:service_list])
6161
failed_services = []
6262
s = client.get_services
63-
s.each do |a|
63+
# TODO: come back and clean me up
64+
s.each do |a| # rubocop:disable Metrics/BlockLength
6465
next unless services.include?(a.metadata.name)
6566
# Build the selector key so we can fetch the corresponding pod
6667
selector_key = []
@@ -73,7 +74,7 @@ def run
7374
pod = nil
7475
begin
7576
pod = client.get_pods(label_selector: selector_key.join(',').to_s)
76-
rescue
77+
rescue StandardError
7778
failed_services << a.metadata.name.to_s
7879
end
7980
# Make sure our pod is running

lib/sensu-plugins-kubernetes/client.rb

+4-4
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def kubeclient(options = {})
5757

5858
ssl_options = config.context.ssl_options
5959
auth_options = config.context.auth_options
60-
rescue => e
60+
rescue StandardError => e
6161
raise e, "Unable to read kubeconfig: #{e}", e.backtrace
6262
end
6363
else
@@ -75,22 +75,22 @@ def kubeclient(options = {})
7575
}
7676
end
7777

78-
if [:client_cert_file, :client_key_file].count { |k| options[k] } == 1
78+
if %i[client_cert_file client_key_file].count { |k| options[k] } == 1
7979
raise ArgumentError, 'SSL requires both client cert and client key'
8080
end
8181

8282
if options[:client_cert_file]
8383
begin
8484
ssl_options[:client_cert] = OpenSSL::X509::Certificate.new(File.read(options[:client_cert_file]))
85-
rescue => e
85+
rescue StandardError => e
8686
raise e, "Unable to read client certificate: #{e}", e.backtrace
8787
end
8888
end
8989

9090
if options[:client_key_file]
9191
begin
9292
ssl_options[:client_key] = OpenSSL::PKey::RSA.new(File.read(options[:client_key_file]))
93-
rescue => e
93+
rescue StandardError => e
9494
raise e, "Unable to read client key: #{e}", e.backtrace
9595
end
9696
end

sensu-plugins-kubernetes.gemspec

+7-6
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
44
require 'date'
55
require_relative 'lib/sensu-plugins-kubernetes'
66

7-
Gem::Specification.new do |s|
7+
Gem::Specification.new do |s| # rubocop:disable Metrics/BlockLength
88
s.authors = ['Sensu-Plugins and contributors']
99
s.date = Date.today.to_s
1010
s.description = 'Provides monitoring for Kubernetes via Sensu'
1111
s.email = '<[email protected]>'
1212
s.executables = Dir.glob('bin/**/*.rb').map { |file| File.basename(file) }
13-
s.files = Dir.glob('{bin,lib}/**/*') + %w(LICENSE README.md CHANGELOG.md)
13+
s.files = Dir.glob('{bin,lib}/**/*') + %w[LICENSE README.md CHANGELOG.md]
1414
s.homepage = 'https://github.com/sensu-plugins/sensu-plugins-kubernetes'
1515
s.license = 'MIT'
1616
s.metadata = { 'maintainer' => 'sensu-plugin',
@@ -22,22 +22,23 @@ Gem::Specification.new do |s|
2222
s.platform = Gem::Platform::RUBY
2323
s.post_install_message = 'You can use the embedded Ruby by setting EMBEDDED_RUBY=true in /etc/default/sensu'
2424
s.require_paths = ['lib']
25-
s.required_ruby_version = '>= 2.1.0'
25+
s.required_ruby_version = '>= 2.3.0'
2626
s.summary = 'Sensu plugins for kubernetes'
2727
s.test_files = s.files.grep(%r{^(test|spec|features)/})
2828
s.version = SensuPluginsKubernetes::Version::VER_STRING
2929

30-
s.add_runtime_dependency 'sensu-plugin', '~> 1.2'
31-
s.add_runtime_dependency 'kubeclient', '~> 2.3'
30+
s.add_runtime_dependency 'sensu-plugin', '~> 2.7'
31+
3232
s.add_runtime_dependency 'activesupport', '< 5.0.0'
33+
s.add_runtime_dependency 'kubeclient', '~> 2.3'
3334

3435
s.add_development_dependency 'bundler', '~> 1.7'
3536
s.add_development_dependency 'codeclimate-test-reporter', '~> 0.4'
3637
s.add_development_dependency 'github-markup', '~> 1.3'
3738
s.add_development_dependency 'pry', '~> 0.10'
3839
s.add_development_dependency 'rake', '~> 10.5'
3940
s.add_development_dependency 'redcarpet', '~> 3.2'
40-
s.add_development_dependency 'rubocop', '~> 0.40.0'
4141
s.add_development_dependency 'rspec', '~> 3.4'
42+
s.add_development_dependency 'rubocop', '~> 0.51.0'
4243
s.add_development_dependency 'yard', '~> 0.8'
4344
end

test/check-kube-pods-running_spec.rb

100644100755
File mode changed.

0 commit comments

Comments
 (0)