kubes_aws 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 216f223229ec7e134e52a869f36507518c8376d768e3ae72ec5b557c7e1a31a7
4
- data.tar.gz: 3fd50925b7906fe8c18f6b6e5c20065e895097aeaa57926093cf57ad1b445121
3
+ metadata.gz: 5cccbde70946470994346fb2e6464153312e4148518b46747137396682455f62
4
+ data.tar.gz: 93c32447c9c48b7feda8fc340022d763736d8d911942e3da10bb7291b8418875
5
5
  SHA512:
6
- metadata.gz: ef86d09153f32cb9bd6ae87eb905ef4de3a07ffa86abae0ed039655ee2305bae228de3d895c7d77cc3112fa2166ffa25fa4632163bd17969034947b067d30446
7
- data.tar.gz: 4437ae6bdc30d96afd98b0261893d52a4c195eeb135b14b8823d6024d601743f431eaefaccf787a90cb1600c6eedc405d59c8f94f958c76ef8109be39b6b6243
6
+ metadata.gz: 8a02025e42e55c83432dd8c3cc23d91078395474cb7ca363317ef4200df1a2747e24841ec02baaadbc6ee6808f39498edd40e9e5331ec4d34c00b87f16f94526
7
+ data.tar.gz: 8a9c098dfb2d3285cee9ef8145c71ce7a8a6d36a9e96470a2e6cffbe3e43b9c8f5edd7e3a877e80e7f1eb0d3029687f1ae621d0686e44bc4019ce91c11c7d5c0
@@ -3,5 +3,8 @@
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.2.0]
7
+ - #1 helpers: aws_secret, aws_ssm
8
+
6
9
  ## [0.1.0]
7
10
  - Initial release.
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ["lib"]
24
24
 
25
25
  spec.add_dependency "activesupport"
26
+ spec.add_dependency "aws-sdk-ecr"
26
27
  spec.add_dependency "aws-sdk-eks"
27
28
  spec.add_dependency "aws-sdk-iam"
28
29
  spec.add_dependency "aws-sdk-secretsmanager"
@@ -18,3 +18,5 @@ module KubesAws
18
18
 
19
19
  extend self
20
20
  end
21
+
22
+ Kubes::Plugin.register(KubesAws)
@@ -0,0 +1,16 @@
1
+ module KubesAws
2
+ module Helpers
3
+ extend Memoist
4
+ include Services
5
+
6
+ def aws_secret(name, options={})
7
+ fetcher = Secrets::Fetcher.new(options)
8
+ fetcher.fetch(name)
9
+ end
10
+
11
+ def aws_ssm(name, options={})
12
+ fetcher = SSM::Fetcher.new(options)
13
+ fetcher.fetch(name)
14
+ end
15
+ end
16
+ end
@@ -5,7 +5,7 @@ require "json"
5
5
  module KubesAws
6
6
  class IamRole
7
7
  extend Memoist
8
- include AwsServices
8
+ include Services
9
9
  include Logging
10
10
  include Prebaked
11
11
 
@@ -5,7 +5,7 @@ require "openssl"
5
5
  module KubesAws
6
6
  class OpenId
7
7
  extend Memoist
8
- include AwsServices
8
+ include Services
9
9
  include Logging
10
10
 
11
11
  def initialize(cluster)
@@ -2,7 +2,7 @@ require "aws-sdk-secretsmanager"
2
2
 
3
3
  module KubesAws
4
4
  class Secrets
5
- include AwsServices
5
+ include Services
6
6
 
7
7
  def initialize(upcase: false, base64: false, prefix: nil, filters: [])
8
8
  @upcase, @base64, @filters = upcase, base64, filters
@@ -0,0 +1,26 @@
1
+ class KubesAws::Secrets
2
+ class Fetcher
3
+ include KubesAws::Logging
4
+ include KubesAws::Services
5
+
6
+ def initialize(options={})
7
+ @options = options
8
+ @base64 = options[:base64].nil? ? true : options[:base64]
9
+ end
10
+
11
+ def fetch(secret_id)
12
+ value = fetch_value(secret_id)
13
+ value = Base64.strict_encode64(value).strip if @base64
14
+ value
15
+ end
16
+
17
+ def fetch_value(secret_id)
18
+ secret_value = secrets.get_secret_value(secret_id: secret_id)
19
+ secret_value.secret_string
20
+ rescue Aws::SecretsManager::Errors::ResourceNotFoundException => e
21
+ logger.info "WARN: secret_id #{secret_id} not found".color(:yellow)
22
+ logger.info e.message
23
+ "NOT FOUND #{secret_id}" # simple string so Kubernetes YAML is valid
24
+ end
25
+ end
26
+ end
@@ -1,8 +1,10 @@
1
1
  require "aws-sdk-eks"
2
2
  require "aws-sdk-iam"
3
+ require "aws-sdk-secretsmanager"
4
+ require "aws-sdk-ssm"
3
5
 
4
6
  module KubesAws
5
- module AwsServices
7
+ module Services
6
8
  extend Memoist
7
9
 
8
10
  def eks
@@ -1,8 +1,6 @@
1
- require "aws-sdk-ssm"
2
-
3
1
  module KubesAws
4
2
  class SSM
5
- include AwsServices
3
+ include Services
6
4
 
7
5
  def initialize(upcase: false, base64: false, prefix: nil, filters: [])
8
6
  @upcase, @base64, @filters = upcase, base64, filters
@@ -0,0 +1,26 @@
1
+ class KubesAws::SSM
2
+ class Fetcher
3
+ include KubesAws::Logging
4
+ include KubesAws::Services
5
+
6
+ def initialize(options={})
7
+ @options = options
8
+ @base64 = options[:base64].nil? ? true : options[:base64]
9
+ end
10
+
11
+ def fetch(name)
12
+ value = fetch_value(name)
13
+ value = Base64.strict_encode64(value).strip if @base64
14
+ value
15
+ end
16
+
17
+ def fetch_value(name)
18
+ resp = ssm.get_parameter(name: name, with_decryption: true)
19
+ resp.parameter.value
20
+ rescue Aws::SSM::Errors::ParameterNotFound => e
21
+ logger.info "WARN: name #{name} not found".color(:yellow)
22
+ logger.info e.message
23
+ "NOT FOUND #{name}" # simple string so Kubernetes YAML is valid
24
+ end
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module KubesAws
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.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.1.0
4
+ version: 0.2.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-10-28 00:00:00.000000000 Z
11
+ date: 2020-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: aws-sdk-ecr
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: aws-sdk-eks
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -139,13 +153,16 @@ files:
139
153
  - kubes_aws.gemspec
140
154
  - lib/kubes_aws.rb
141
155
  - lib/kubes_aws/autoloader.rb
142
- - lib/kubes_aws/aws_services.rb
156
+ - lib/kubes_aws/helpers.rb
143
157
  - lib/kubes_aws/iam_role.rb
144
158
  - lib/kubes_aws/iam_role/prebaked.rb
145
159
  - lib/kubes_aws/logging.rb
146
160
  - lib/kubes_aws/open_id.rb
147
161
  - lib/kubes_aws/secrets.rb
162
+ - lib/kubes_aws/secrets/fetcher.rb
163
+ - lib/kubes_aws/services.rb
148
164
  - lib/kubes_aws/ssm.rb
165
+ - lib/kubes_aws/ssm/fetcher.rb
149
166
  - lib/kubes_aws/version.rb
150
167
  homepage: https://github.com/boltops-tools/kubes_aws
151
168
  licenses:
@@ -167,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
184
  - !ruby/object:Gem::Version
168
185
  version: '0'
169
186
  requirements: []
170
- rubygems_version: 3.1.2
187
+ rubygems_version: 3.1.4
171
188
  signing_key:
172
189
  specification_version: 4
173
190
  summary: Kubes AWS Helpers Library