kubes_aws 0.2.0 → 0.3.0

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: 5cccbde70946470994346fb2e6464153312e4148518b46747137396682455f62
4
- data.tar.gz: 93c32447c9c48b7feda8fc340022d763736d8d911942e3da10bb7291b8418875
3
+ metadata.gz: 5a00a2ad4b20a5e60f9a74a0c622262ebc28ce370c41576cc732030151fd7a79
4
+ data.tar.gz: b6022d326ecac506d57d74964d7f31e770550cbc2bf1cd303a14bb7a89a88d9e
5
5
  SHA512:
6
- metadata.gz: 8a02025e42e55c83432dd8c3cc23d91078395474cb7ca363317ef4200df1a2747e24841ec02baaadbc6ee6808f39498edd40e9e5331ec4d34c00b87f16f94526
7
- data.tar.gz: 8a9c098dfb2d3285cee9ef8145c71ce7a8a6d36a9e96470a2e6cffbe3e43b9c8f5edd7e3a877e80e7f1eb0d3029687f1ae621d0686e44bc4019ce91c11c7d5c0
6
+ metadata.gz: 161da6b9c641f61d2dbdd30af1c6539f110e118e51b2efa6301f15586a6cbedb383cbf48861c47ad9b55a4a1dcf7ab32f63cd8affc1fb49037ab9a12c77d5496
7
+ data.tar.gz: ef8e6bedb40c1af9529fb0928c024fa1259cf0236c18afaf8a116590a6d292f7f981fc289e69ae96123d8a8d25e72fd5bc999e318e33fd90a3aa7ef4d0f54f2c
@@ -3,6 +3,11 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
5
5
 
6
+ ## [0.3.0] - 2020-11-11
7
+ - [#2](https://github.com/boltops-tools/kubes_aws/pull/2) Config interface and base64_secrets setting
8
+ - fix specs
9
+ - smarter base64 option
10
+
6
11
  ## [0.2.0]
7
12
  - #1 helpers: aws_secret, aws_ssm
8
13
 
@@ -31,4 +31,6 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency "aws_data"
32
32
  spec.add_dependency "memoist"
33
33
  spec.add_dependency "zeitwerk"
34
+
35
+ spec.add_development_dependency "kubes"
34
36
  end
@@ -16,6 +16,25 @@ module KubesAws
16
16
  @@logger = v
17
17
  end
18
18
 
19
+ # Friendlier method configure.
20
+ #
21
+ # .kubes/config/env/dev.rb
22
+ # .kubes/config/plugins/google.rb # also works
23
+ #
24
+ # Example:
25
+ #
26
+ # KubesGoogle.configure do |config|
27
+ # config.hooks.gke_whitelist = true
28
+ # end
29
+ #
30
+ def configure(&block)
31
+ Config.instance.configure(&block)
32
+ end
33
+
34
+ def config
35
+ Config.instance.config
36
+ end
37
+
19
38
  extend self
20
39
  end
21
40
 
@@ -0,0 +1,20 @@
1
+ module KubesAws
2
+ class Config
3
+ include Singleton
4
+
5
+ def defaults
6
+ c = ActiveSupport::OrderedOptions.new
7
+ c.base64_secrets = true
8
+ c
9
+ end
10
+
11
+ @@config = nil
12
+ def config
13
+ @@config ||= defaults
14
+ end
15
+
16
+ def configure
17
+ yield(config)
18
+ end
19
+ end
20
+ end
@@ -5,15 +5,19 @@ class KubesAws::Secrets
5
5
 
6
6
  def initialize(options={})
7
7
  @options = options
8
- @base64 = options[:base64].nil? ? true : options[:base64]
8
+ @base64 = options[:base64]
9
9
  end
10
10
 
11
11
  def fetch(secret_id)
12
12
  value = fetch_value(secret_id)
13
- value = Base64.strict_encode64(value).strip if @base64
13
+ value = Base64.strict_encode64(value).strip if base64?
14
14
  value
15
15
  end
16
16
 
17
+ def base64?
18
+ @base64.nil? ? KubesAws.config.base64_secrets : @base64
19
+ end
20
+
17
21
  def fetch_value(secret_id)
18
22
  secret_value = secrets.get_secret_value(secret_id: secret_id)
19
23
  secret_value.secret_string
@@ -5,18 +5,27 @@ class KubesAws::SSM
5
5
 
6
6
  def initialize(options={})
7
7
  @options = options
8
- @base64 = options[:base64].nil? ? true : options[:base64]
8
+ @base64 = options[:base64]
9
9
  end
10
10
 
11
11
  def fetch(name)
12
- value = fetch_value(name)
13
- value = Base64.strict_encode64(value).strip if @base64
12
+ parameter = fetch_parameter(name)
13
+ value = parameter.value
14
+ value = Base64.strict_encode64(value).strip if base64?(parameter.type)
14
15
  value
15
16
  end
16
17
 
17
- def fetch_value(name)
18
+ def base64?(type)
19
+ if @base64.nil?
20
+ type == "SecureString"
21
+ else
22
+ @base64
23
+ end
24
+ end
25
+
26
+ def fetch_parameter(name)
18
27
  resp = ssm.get_parameter(name: name, with_decryption: true)
19
- resp.parameter.value
28
+ resp.parameter
20
29
  rescue Aws::SSM::Errors::ParameterNotFound => e
21
30
  logger.info "WARN: name #{name} not found".color(:yellow)
22
31
  logger.info e.message
@@ -1,3 +1,3 @@
1
1
  module KubesAws
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kubes_aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-09 00:00:00.000000000 Z
11
+ date: 2020-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: kubes
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  description:
140
154
  email:
141
155
  - tung@boltops.com
@@ -153,6 +167,7 @@ files:
153
167
  - kubes_aws.gemspec
154
168
  - lib/kubes_aws.rb
155
169
  - lib/kubes_aws/autoloader.rb
170
+ - lib/kubes_aws/config.rb
156
171
  - lib/kubes_aws/helpers.rb
157
172
  - lib/kubes_aws/iam_role.rb
158
173
  - lib/kubes_aws/iam_role/prebaked.rb