kubecontrol 0.4.5 → 0.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/Gemfile.lock +1 -1
- data/README.md +5 -0
- data/lib/kubecontrol/resources/secret.rb +15 -0
- data/lib/kubecontrol/version.rb +1 -1
- data/spec/kubecontrol/resources/secret_spec.rb +44 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 358060485591cee4de44f0924d781ca98dcc5d68e29169543f49d38c9a92bc56
|
4
|
+
data.tar.gz: d4d91d701a577d8686793f4967ec4ad8c7493deb72628045dfd39cdba6e49462
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b041c46add29ffd259c254513000388f9fb148fef3f67959bd072ac6c90cb7cc6c427ffb5bc4b62e5eef475d08ab99a8e1a94d0820422b600aec921d16c1a8a6
|
7
|
+
data.tar.gz: 68ed529b47728cf687262def701ba5093a28f9ea776f17bbc6b88fccda1df5a044cfdc6d0f4025ed878421c9f9eab7048e4d06b91730ff0494a061f309863eef
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
# v0.5.0 / 02-26-2020
|
2
|
+
- [FEATURE] Kubecontrol::Secret#data_values
|
3
|
+
|
1
4
|
# v0.4.5 / 02-24-2020
|
2
5
|
- [ENHANCEMENT] Kubecontrol::Resources - Move all existing resources(Pod, Deployment, Service, Secret, Stateful Set) into a 'Resources' namespace.
|
3
6
|
- [FEATURE] Kubecontrol::Secret
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'json'
|
2
|
+
require "base64"
|
3
|
+
|
1
4
|
module Kubecontrol
|
2
5
|
module Resources
|
3
6
|
class Secret
|
@@ -13,6 +16,18 @@ module Kubecontrol
|
|
13
16
|
@namespace = namespace
|
14
17
|
@client = client
|
15
18
|
end
|
19
|
+
|
20
|
+
def data_values
|
21
|
+
@data_values ||= begin
|
22
|
+
std_out, _std_err, exit_code = @client.kubectl_command("get secret #{@name} -o json")
|
23
|
+
if exit_code.zero?
|
24
|
+
json_secret = JSON.parse(std_out)
|
25
|
+
json_secret['data'].reduce({}) {|h, (k,v)| h[k] = Base64.decode64(v); h }
|
26
|
+
else
|
27
|
+
{}
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
16
31
|
end
|
17
32
|
end
|
18
33
|
end
|
data/lib/kubecontrol/version.rb
CHANGED
@@ -37,4 +37,48 @@ RSpec.describe Kubecontrol::Resources::Secret do
|
|
37
37
|
expect(subject.client).to eq client
|
38
38
|
end
|
39
39
|
end
|
40
|
+
|
41
|
+
describe '#data_values' do
|
42
|
+
let(:status_code) { 0 }
|
43
|
+
let(:key_one) { 'one' }
|
44
|
+
let(:value_one) { 'foo' }
|
45
|
+
let(:key_two) { 'two' }
|
46
|
+
let(:value_two) { 'bar' }
|
47
|
+
let(:get_secret_std_out) do
|
48
|
+
{
|
49
|
+
data: {
|
50
|
+
key_one => Base64.encode64(value_one),
|
51
|
+
key_two => Base64.encode64(value_two),
|
52
|
+
}
|
53
|
+
}.to_json
|
54
|
+
end
|
55
|
+
let(:get_secret_response) { [get_secret_std_out, '', status_code] }
|
56
|
+
|
57
|
+
subject { secret.data_values }
|
58
|
+
|
59
|
+
before do
|
60
|
+
allow(secret.client).to receive(:kubectl_command).with("get secret #{secret.name} -o json").and_return get_secret_response
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'sends a kubectl request to the command line' do
|
64
|
+
expect(secret.client).to receive(:kubectl_command).with("get secret #{secret.name} -o json").and_return get_secret_response
|
65
|
+
subject
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'kubectl command is successful' do
|
69
|
+
it 'returns an hash of the decoded secret data' do
|
70
|
+
result = subject
|
71
|
+
expect(result).to be_an_instance_of Hash
|
72
|
+
expect(result[key_one]).to eq(value_one)
|
73
|
+
expect(result[key_two]).to eq(value_two)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context 'kubectl command is unsuccessful' do
|
78
|
+
let(:status_code) { 1 }
|
79
|
+
it 'returns an empty hash' do
|
80
|
+
expect(subject).to eq({})
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
40
84
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kubecontrol
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marco Adkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-02-
|
11
|
+
date: 2020-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|