Skip to content

Commit 81b5cb8

Browse files
use input instead of attribute (#35)
* use input instead of attribute In the last versions of Inspec and cinc-auditor, attribute is deprecated and input should be used. https://docs.chef.io/workstation/cookstyle/inspec_deprecations_attributehelper/ Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 1_2_master_node_api_server.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 1_3_master_node_controller_manager.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 1_4_master_node_scheduler.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 2_etcd_node.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 3_2_control_plane_logging.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 4_1_worker_node_configuration_files.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 4_2_worker_node_kubelet.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_2_policies_pod_security_policies.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_3_policies_network_policies_and_cni.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_4_policies_secrets_management.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_5_policies_extensible_admission_control.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_6_policies_general_policies.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update inspec.yml Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Create test.yml Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update Rakefile Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update Rakefile Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update Gemfile Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update .rubocop.yml Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 1_1_master_node_configuration_files.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 1_2_master_node_api_server.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 1_3_master_node_controller_manager.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 1_4_master_node_scheduler.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 2_etcd_node.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 3_1_control_plane_authn_and_authz.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 3_2_control_plane_logging.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 4_1_worker_node_configuration_files.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 4_2_worker_node_kubelet.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_1_policies_rbac_and_service_accounts.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_2_policies_pod_security_policies.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_3_policies_network_policies_and_cni.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_4_policies_secrets_management.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_5_policies_extensible_admission_control.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update 5_6_policies_general_policies.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update kubernetes.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update process_env_var.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update kubernetes.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update process_env_var.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update process_env_var.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update process_env_var.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update process_env_var.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update process_env_var.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com> * Update process_env_var.rb Signed-off-by: Michée Lengronne <michee.lengronne@coppint.com>
1 parent 6a960bc commit 81b5cb8

22 files changed

+130
-55
lines changed

.github/workflows/test.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Test
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
schedule:
9+
- cron: '0 6 * * *'
10+
11+
jobs:
12+
test:
13+
runs-on: ubuntu-latest
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
ruby-version: ['2.6', '2.7', '3.0']
18+
19+
steps:
20+
- uses: actions/checkout@v2
21+
- name: Set up Ruby
22+
uses: ruby/setup-ruby@v1
23+
with:
24+
ruby-version: ${{ matrix.ruby-version }}
25+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
26+
- name: Run tests
27+
run: bundle exec rake

.rubocop.yml

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,36 @@
11
---
2+
AllCops:
3+
Exclude:
4+
- vendor/**/*
25
Documentation:
36
Enabled: false
4-
AlignParameters:
5-
Enabled: true
6-
Encoding:
7+
Layout/ParameterAlignment:
78
Enabled: true
89
HashSyntax:
910
Enabled: true
1011
LineLength:
1112
Enabled: false
1213
EmptyLinesAroundBlockBody:
1314
Enabled: false
15+
Style/Encoding:
16+
Enabled: false
1417
MethodLength:
1518
Max: 40
19+
NumericLiterals:
20+
MinDigits: 10
1621
Metrics/BlockLength:
17-
Max: 30
22+
Max: 45 # needed for 6.1.1
1823
Metrics/CyclomaticComplexity:
1924
Max: 10
2025
Metrics/PerceivedComplexity:
2126
Max: 10
2227
Metrics/AbcSize:
23-
Max: 29
24-
Style/MethodMissing:
25-
Exclude:
26-
- 'libraries/process_env_var.rb'
28+
Max: 30
29+
# Lint/AmbiguousBlockAssociation is incompatible with RSpec
30+
# https://github.com/rubocop-hq/rubocop/issues/4222
31+
Lint/AmbiguousBlockAssociation:
32+
Enabled: false
33+
Lint/AmbiguousRegexpLiteral:
34+
Enabled: false
35+
Style/NumericPredicate:
36+
Enabled: false

Gemfile

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1+
# frozen_string_literal: true
2+
13
source 'https://rubygems.org'
24

3-
gem 'highline', '~> 1.6.0'
4-
gem 'inspec', '~> 3'
5-
gem 'rack', '>= 1.6.11'
5+
gem 'highline'
6+
gem 'rack'
67
gem 'rake'
7-
gem 'rubocop', '~> 0.49.0'
8+
gem 'rubocop'
89

910
group :tools do
10-
gem 'github_changelog_generator', '~> 1.12.0'
11+
gem 'github_changelog_generator'
12+
gem 'pry-coolline'
13+
end
14+
15+
source 'https://packagecloud.io/cinc-project/stable' do
16+
gem 'chef-config'
17+
gem 'cinc-auditor-bin'
1118
end

Rakefile

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# frozen_string_literal: true
2+
13
require 'rake/testtask'
24
require 'rubocop/rake_task'
35

@@ -17,23 +19,9 @@ task default: [:lint, 'test:check']
1719
namespace :test do
1820
# run inspec check to verify that the profile is properly configured
1921
task :check do
20-
dir = File.join(File.dirname(__FILE__))
21-
sh("bundle exec inspec check #{dir}")
22-
end
23-
end
24-
25-
# Automatically generate a changelog for this project. Only loaded if
26-
# the necessary gem is installed. By default its picking up the version from
27-
# inspec.yml. You can override that behavior with s`rake changelog to=1.2.0`
28-
begin
29-
require 'yaml'
30-
metadata = YAML.load_file('inspec.yml')
31-
v = ENV['to'] || metadata['version']
32-
puts "Generate changelog for version #{v}"
33-
require 'github_changelog_generator/task'
34-
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
35-
config.future_release = v
22+
require 'inspec'
23+
puts "Checking profile with InSpec Version: #{Inspec::VERSION}"
24+
profile = Inspec::Profile.for_target('.', backend: Inspec::Backend.create(Inspec::Config.mock))
25+
pp profile.check
3626
end
37-
rescue LoadError
38-
puts '>>>>> GitHub Changelog Generator not loaded, omitting tasks'
3927
end

controls/1_1_master_node_configuration_files.rb

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1+
# frozen_string_literal: true
2+
13
title '1.1 Master Node: Configuration Files'
24

3-
apiserver_manifest = attribute('apiserver-manifest')
4-
controller_manager_manifest = attribute('controller_manager-manifest')
5-
scheduler_manifest = attribute('scheduler-manifest')
6-
etcd_manifest = attribute('etcd-manifest')
7-
etcd_regex = Regexp.new(attribute('etcd'))
8-
admin_conf = attribute('admin-conf')
9-
scheduler_conf = attribute('scheduler-conf')
10-
controller_manager_conf = attribute('controller_manager-conf')
11-
kubernetes_pki = attribute('kubernetes-pki')
5+
apiserver_manifest = input('apiserver-manifest')
6+
controller_manager_manifest = input('controller_manager-manifest')
7+
scheduler_manifest = input('scheduler-manifest')
8+
etcd_manifest = input('etcd-manifest')
9+
etcd_regex = Regexp.new(input('etcd'))
10+
admin_conf = input('admin-conf')
11+
scheduler_conf = input('scheduler-conf')
12+
controller_manager_conf = input('controller_manager-conf')
13+
kubernetes_pki = input('kubernetes-pki')
1214

1315
control 'cis-kubernetes-benchmark-1.1.1' do
1416
title 'Ensure that the API server pod specification file permissions are set to 644 or more restrictive'

controls/1_2_master_node_api_server.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
# frozen_string_literal: true
2+
13
title '1.2 Master Node: API Server'
24

3-
apiserver = attribute('apiserver')
5+
apiserver = input('apiserver')
46
# fallback if apiserver attribute is not defined
57
apiserver = kubernetes.apiserver_bin if apiserver.empty?
68

controls/1_3_master_node_controller_manager.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
# frozen_string_literal: true
2+
13
title '1.3 Master Node: Controller Manager'
24

3-
controller_manager = attribute('controller_manager')
5+
controller_manager = input('controller_manager')
46
# fallback if scheduler attribute is not defined
57
controller_manager = kubernetes.controllermanager_bin if controller_manager.empty?
68

controls/1_4_master_node_scheduler.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
# frozen_string_literal: true
2+
13
title '1.4 Master Node: Scheduler'
24

3-
scheduler = attribute('scheduler')
5+
scheduler = input('scheduler')
46
# fallback if scheduler attribute is not defined
57
scheduler = kubernetes.scheduler_bin if scheduler.empty?
68

controls/2_etcd_node.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
# frozen_string_literal: true
2+
13
title '2 Etcd Node'
24

3-
etcd_regex = Regexp.new(attribute('etcd'))
5+
etcd_regex = Regexp.new(input('etcd'))
46
etcd_process = processes(etcd_regex)
57
etcd_env_vars = process_env_var(etcd_regex)
68

controls/3_1_control_plane_authn_and_authz.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# frozen_string_literal: true
2+
13
title '3.1 Control Plane Configuration'
24

35
control 'cis-kubernetes-benchmark-3.1.1' do

0 commit comments

Comments
 (0)