train-kubernetes 0.1.4 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8054d36cd7aa95b6c66500cc6e2ef5a3a046a2953e909dcae9c28af25cceac27
4
- data.tar.gz: 8c34f5e7e0ef77c1c14363a862188839587c15037138920aae89b68769b7cfe9
3
+ metadata.gz: 8986e6c4d497daf88599d830bcad43f9206936666311c6c0c0fab15002e41985
4
+ data.tar.gz: d1c56b619bceddf1c957ae6b29dfebfa583177202c9f6412616d519ee9e2ad26
5
5
  SHA512:
6
- metadata.gz: 6e8ecdf58177aa1629142c518c7a8d7808be54469db423a1e6557c8bd9623fe3611fc50f58e6e171a0a32e68caf3eea404b48d0f4ce0955e41fce0c265605734
7
- data.tar.gz: 5989ed4276cd050ef76f0bc0e1cfef17c2e3a2ed3df5c37dc49caa53d4afbba88f1b1f9f24a9743209fb78c351844b53060c5ba6cdd8b35467adcc4027f93168
6
+ metadata.gz: e2cc0de3cded1306ef5edd69c47b8c66ee49dfd517ec9f50223d152c08debe4e01ed95d9d2d8714bf7dd30865b45d9db86422e284ec0ae1a7ba271495de9a03a
7
+ data.tar.gz: 8399e9ab6d48cbd741ff42208ca400a7e91f7b86bd76f0c4593b7e95c2c7daecc47135fead6faf0dd839e3cbe5bc2be2ed8cd4e7e5f4a998eed58be94eeb2d4d
data/README.md CHANGED
@@ -62,7 +62,7 @@ If it has the version set to `"= 0.1.3"`, modify it to `"0.1.3"` and save the fi
62
62
  Verify the plugin:
63
63
 
64
64
  ```
65
- inspec plugins list
65
+ inspec plugin list
66
66
  ```
67
67
 
68
68
  ```
@@ -81,7 +81,7 @@ If you run into issues installing via `inspec plugin install train-kubernetes`,
81
81
 
82
82
  * Try running `gem install train-kubernetes` before `inspec plugin install train-kubernetes`.
83
83
  * Ensure the `~/.inspec/plugins.json` has `"0.1.3"` and not `"= 0.1.3"` for the `version` value. Modify it by hand if needed.
84
- * Ensure you can cleanly install the `k8s-client` gem version `0.10.4` or greater. e.g. `gem install k8s-client -v 0.10.4`
84
+ * Ensure you can cleanly install the `k8s-ruby` gem version `0.10.4` or greater. e.g. `gem install k8s-ruby -v 0.10.4`
85
85
  * Ensure that only one version of the `excon` gem is installed. e.g. `gem list | grep excon`. If you see two versions, `gem uninstall excon` and remove the older version.
86
86
 
87
87
  ## Reporting Issues
@@ -1,5 +1,5 @@
1
1
  require 'train'
2
- require 'k8s-client'
2
+ require 'k8s-ruby'
3
3
  require 'train-kubernetes/platform'
4
4
 
5
5
  module TrainPlugins
@@ -9,7 +9,8 @@ module TrainPlugins
9
9
 
10
10
  def initialize(options)
11
11
  super(options)
12
-
12
+ @pod = options[:pod]
13
+ @container = options[:container]
13
14
  parse_kubeconfig
14
15
  connect
15
16
  end
@@ -35,6 +36,14 @@ module TrainPlugins
35
36
  kubeconfig_file = @options[:kubeconfig] if @options[:kubeconfig]
36
37
  @client = K8s::Client.config(K8s::Config.load_file(File.expand_path(kubeconfig_file)))
37
38
  end
39
+
40
+ private
41
+
42
+ attr_reader :pod, :container
43
+
44
+ def run_command_via_connection(cmd, &_data_handler)
45
+ KubectlClient.new(pod: pod, container: container).execute(cmd)
46
+ end
38
47
  end
39
48
  end
40
49
  end
@@ -0,0 +1,34 @@
1
+ require 'mixlib/shellout'
2
+
3
+ module TrainPlugins
4
+ module TrainKubernetes
5
+ class KubectlClient
6
+ attr_reader :pod, :container
7
+ def initialize(pod:, container: nil)
8
+ @pod = pod
9
+ @container = container
10
+ end
11
+
12
+ def execute(command, stdin: true, tty: true)
13
+ instruction = build_instruction(command, stdin, tty)
14
+ shell = Mixlib::ShellOut.new(instruction)
15
+ shell.run_command
16
+ end
17
+
18
+ private
19
+
20
+ def shell
21
+ @shell ||= Mixlib::ShellOut.new(instruction)
22
+ end
23
+
24
+ def build_instruction(command, stdin, tty)
25
+ ["kubectl exec"].tap do |arr|
26
+ arr << '--stdin' if stdin
27
+ arr << "--tty" if tty
28
+ arr << pod if pod
29
+ arr << command
30
+ end.join("\s")
31
+ end
32
+ end
33
+ end
34
+ end
@@ -5,6 +5,6 @@
5
5
 
6
6
  module TrainPlugins
7
7
  module TrainKubernetes
8
- VERSION = '0.1.4'.freeze
8
+ VERSION = '0.1.7'.freeze
9
9
  end
10
10
  end
@@ -22,6 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.homepage = 'https://github.com/bgeesaman/train-kubernetes'
23
23
  spec.license = 'Apache-2.0'
24
24
 
25
+ spec.required_ruby_version = '>= 2.4'
26
+
25
27
  # Though complicated-looking, this is pretty standard for a gemspec.
26
28
  # It just filters what will actually be packaged in the gem (leaving
27
29
  # out tests, etc)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: train-kubernetes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brad Geesaman
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-11 00:00:00.000000000 Z
11
+ date: 2022-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: k8s-ruby
@@ -50,6 +50,7 @@ files:
50
50
  - README.md
51
51
  - lib/train-kubernetes.rb
52
52
  - lib/train-kubernetes/connection.rb
53
+ - lib/train-kubernetes/kubectl_client.rb
53
54
  - lib/train-kubernetes/platform.rb
54
55
  - lib/train-kubernetes/transport.rb
55
56
  - lib/train-kubernetes/version.rb
@@ -58,7 +59,7 @@ homepage: https://github.com/bgeesaman/train-kubernetes
58
59
  licenses:
59
60
  - Apache-2.0
60
61
  metadata: {}
61
- post_install_message:
62
+ post_install_message:
62
63
  rdoc_options: []
63
64
  require_paths:
64
65
  - lib
@@ -66,15 +67,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
67
  requirements:
67
68
  - - ">="
68
69
  - !ruby/object:Gem::Version
69
- version: '0'
70
+ version: '2.4'
70
71
  required_rubygems_version: !ruby/object:Gem::Requirement
71
72
  requirements:
72
73
  - - ">="
73
74
  - !ruby/object:Gem::Version
74
75
  version: '0'
75
76
  requirements: []
76
- rubygems_version: 3.1.2
77
- signing_key:
77
+ rubygems_version: 3.0.8
78
+ signing_key:
78
79
  specification_version: 4
79
80
  summary: Train Kubernetes
80
81
  test_files: []