cfndk 0.0.1 → 0.0.2

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
  SHA1:
3
- metadata.gz: ab06c175fb5cdccfc94b9687d885d18b1876d6fd
4
- data.tar.gz: a29b07a06036df653836de1b16f310e8d02c5c88
3
+ metadata.gz: dddd69205f95f5871c77ab744edfa46723ec66c6
4
+ data.tar.gz: 156d7878eb40e490faaa63ee5a1f2db4b737629c
5
5
  SHA512:
6
- metadata.gz: 5e73ca3a44aeaf1d912c0fe06bc7a3c9c7b072ff1c8d6cda247f6ebd83db38ed149fb0bc3f4df7fffad9f6528c8d0a984cb5dbcf50281c7add88607c19cd6326
7
- data.tar.gz: 4d22614faac17bfb1fce63b406d8da6b87c64ac5d2e011b4434aa7881f28eb6cbdc89610ec1f026fabee2fc6267956f642001f420e59da576a42429a3314ff38
6
+ metadata.gz: 32f60b2829d35017e6fbea00d41ad4cd0637572b01b32f9892d7a47a29350fbf339b4ea054b23f002cf38b3765e89801e1af3572b6fc12d285a6925d28928d0a
7
+ data.tar.gz: 3ca54f445be5345cb62f0873a3cd8e2638bafad5dc2e0bbc25f36425e4d1457675e4ad5b78703af19aa47ff9aeca430d08b4f1989771b69756b76e599a0d0215
data/bin/cfndk CHANGED
@@ -79,7 +79,7 @@ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
79
79
 
80
80
  data = open(option[:config_path], 'r') { |f| YAML.load(f) } if File.file?(option[:config_path]) && ARGV[0] != 'init'
81
81
 
82
- credentials = CFnDK::Aws::CredentialProviderChain.new.resolve
82
+ credentials = CFnDK::CredentialProviderChain.new.resolve
83
83
  client = Aws::CloudFormation::Client.new(credentials: credentials)
84
84
  stacks = CFnDK::Stacks.new(data, option, client)
85
85
 
data/lib/cfndk.rb CHANGED
@@ -2,7 +2,7 @@ require 'cfndk/version'
2
2
  require 'cfndk/stack'
3
3
  require 'cfndk/stacks'
4
4
  require 'cfndk/parameter_string'
5
- require 'cfndk/aws/credential_provider_chain'
5
+ require 'cfndk/credential_provider_chain'
6
6
 
7
7
  module CFnDK
8
8
  end
@@ -0,0 +1,113 @@
1
+ module CFnDK
2
+ class CredentialProviderChain
3
+ def initialize(config = nil)
4
+ @config = config
5
+ end
6
+
7
+ def resolve
8
+ providers.each do |method_name, options|
9
+ provider = send(method_name, options.merge(config: @config))
10
+ return provider if provider && provider.set?
11
+ end
12
+ nil
13
+ end
14
+
15
+ private
16
+
17
+ def providers
18
+ [
19
+ [:static_credentials, {}],
20
+ [:env_credentials, {}],
21
+ [:assume_role_credentials, {}],
22
+ [:shared_credentials, {}],
23
+ [:process_credentials, {}],
24
+ [:instance_profile_credentials, {
25
+ retries: @config ? @config.instance_profile_credentials_retries : 0,
26
+ http_open_timeout: @config ? @config.instance_profile_credentials_timeout : 1,
27
+ http_read_timeout: @config ? @config.instance_profile_credentials_timeout : 1,
28
+ }],
29
+ ]
30
+ end
31
+
32
+ def static_credentials(options)
33
+ if options[:config]
34
+ ::Aws::Credentials.new(
35
+ options[:config].access_key_id,
36
+ options[:config].secret_access_key,
37
+ options[:config].session_token)
38
+ else
39
+ nil
40
+ end
41
+ end
42
+
43
+ def env_credentials(options)
44
+ key = %w(AWS_ACCESS_KEY_ID AMAZON_ACCESS_KEY_ID AWS_ACCESS_KEY)
45
+ secret = %w(AWS_SECRET_ACCESS_KEY AMAZON_SECRET_ACCESS_KEY AWS_SECRET_KEY)
46
+ token = %w(AWS_SESSION_TOKEN AMAZON_SESSION_TOKEN)
47
+ ::Aws::Credentials.new(envar(key), envar(secret), envar(token))
48
+ end
49
+
50
+ def envar(keys)
51
+ keys.each do |key|
52
+ return ENV[key] if ENV.key?(key)
53
+ end
54
+ nil
55
+ end
56
+
57
+ def shared_credentials(options)
58
+ if options[:config]
59
+ ::Aws::SharedCredentials.new(profile_name: options[:config].profile)
60
+ else
61
+ ::Aws::SharedCredentials.new(
62
+ profile_name: ENV['AWS_PROFILE'].nil? ? 'default' : ENV['AWS_PROFILE'])
63
+ end
64
+ rescue ::Aws::Errors::NoSuchProfileError
65
+ nil
66
+ end
67
+
68
+ def process_credentials(options)
69
+ profile_name = options[:config].profile if options[:config]
70
+ profile_name ||= ENV['AWS_PROFILE'].nil? ? 'default' : ENV['AWS_PROFILE']
71
+
72
+ config = ::Aws.shared_config
73
+ if config.config_enabled? && process_provider = config.credentials_process(profile_name)
74
+ ::Aws::ProcessCredentials.new(process_provider)
75
+ else
76
+ nil
77
+ end
78
+ rescue ::Aws::Errors::NoSuchProfileError
79
+ nil
80
+ end
81
+
82
+ def assume_role_credentials(options)
83
+ if ::Aws.shared_config.config_enabled?
84
+ profile = nil
85
+ region = nil
86
+ if options[:config]
87
+ profile = options[:config].profile
88
+ region = options[:config].region
89
+ assume_role_with_profile(options[:config].profile, options[:config].region)
90
+ end
91
+ assume_role_with_profile(profile, region)
92
+ else
93
+ nil
94
+ end
95
+ end
96
+
97
+ def instance_profile_credentials(options)
98
+ if ENV['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI']
99
+ ::Aws::ECSCredentials.new(options)
100
+ else
101
+ ::Aws::InstanceProfileCredentials.new(options)
102
+ end
103
+ end
104
+
105
+ def assume_role_with_profile(prof, region)
106
+ ::Aws.shared_config.assume_role_credentials_from_config(
107
+ profile: prof,
108
+ region: region,
109
+ chain_config: @config
110
+ )
111
+ end
112
+ end
113
+ end
data/lib/cfndk/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CFnDK
2
- VERSION = '0.0.1'.freeze
2
+ VERSION = '0.0.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfndk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshihisa AMAKATA
@@ -112,7 +112,7 @@ files:
112
112
  - bin/cfndk
113
113
  - cfndk.gemspec
114
114
  - lib/cfndk.rb
115
- - lib/cfndk/aws/credential_provider_chain.rb
115
+ - lib/cfndk/credential_provider_chain.rb
116
116
  - lib/cfndk/parameter_string.rb
117
117
  - lib/cfndk/stack.rb
118
118
  - lib/cfndk/stacks.rb
@@ -1,115 +0,0 @@
1
- module CFnDK
2
- module Aws
3
- class CredentialProviderChain
4
- def initialize(config = nil)
5
- @config = config
6
- end
7
-
8
- def resolve
9
- providers.each do |method_name, options|
10
- provider = send(method_name, options.merge(config: @config))
11
- return provider if provider && provider.set?
12
- end
13
- nil
14
- end
15
-
16
- private
17
-
18
- def providers
19
- [
20
- [:static_credentials, {}],
21
- [:env_credentials, {}],
22
- [:assume_role_credentials, {}],
23
- [:shared_credentials, {}],
24
- [:process_credentials, {}],
25
- [:instance_profile_credentials, {
26
- retries: @config ? @config.instance_profile_credentials_retries : 0,
27
- http_open_timeout: @config ? @config.instance_profile_credentials_timeout : 1,
28
- http_read_timeout: @config ? @config.instance_profile_credentials_timeout : 1,
29
- }],
30
- ]
31
- end
32
-
33
- def static_credentials(options)
34
- if options[:config]
35
- ::Aws::Credentials.new(
36
- options[:config].access_key_id,
37
- options[:config].secret_access_key,
38
- options[:config].session_token)
39
- else
40
- nil
41
- end
42
- end
43
-
44
- def env_credentials(options)
45
- key = %w(AWS_ACCESS_KEY_ID AMAZON_ACCESS_KEY_ID AWS_ACCESS_KEY)
46
- secret = %w(AWS_SECRET_ACCESS_KEY AMAZON_SECRET_ACCESS_KEY AWS_SECRET_KEY)
47
- token = %w(AWS_SESSION_TOKEN AMAZON_SESSION_TOKEN)
48
- ::Aws::Credentials.new(envar(key), envar(secret), envar(token))
49
- end
50
-
51
- def envar(keys)
52
- keys.each do |key|
53
- return ENV[key] if ENV.key?(key)
54
- end
55
- nil
56
- end
57
-
58
- def shared_credentials(options)
59
- if options[:config]
60
- ::Aws::SharedCredentials.new(profile_name: options[:config].profile)
61
- else
62
- ::Aws::SharedCredentials.new(
63
- profile_name: ENV['AWS_PROFILE'].nil? ? 'default' : ENV['AWS_PROFILE'])
64
- end
65
- rescue ::Aws::Errors::NoSuchProfileError
66
- nil
67
- end
68
-
69
- def process_credentials(options)
70
- profile_name = options[:config].profile if options[:config]
71
- profile_name ||= ENV['AWS_PROFILE'].nil? ? 'default' : ENV['AWS_PROFILE']
72
-
73
- config = ::Aws.shared_config
74
- if config.config_enabled? && process_provider = config.credentials_process(profile_name)
75
- ::Aws::ProcessCredentials.new(process_provider)
76
- else
77
- nil
78
- end
79
- rescue ::Aws::Errors::NoSuchProfileError
80
- nil
81
- end
82
-
83
- def assume_role_credentials(options)
84
- if ::Aws.shared_config.config_enabled?
85
- profile = nil
86
- region = nil
87
- if options[:config]
88
- profile = options[:config].profile
89
- region = options[:config].region
90
- assume_role_with_profile(options[:config].profile, options[:config].region)
91
- end
92
- assume_role_with_profile(profile, region)
93
- else
94
- nil
95
- end
96
- end
97
-
98
- def instance_profile_credentials(options)
99
- if ENV['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI']
100
- ::Aws::ECSCredentials.new(options)
101
- else
102
- ::Aws::InstanceProfileCredentials.new(options)
103
- end
104
- end
105
-
106
- def assume_role_with_profile(prof, region)
107
- ::Aws.shared_config.assume_role_credentials_from_config(
108
- profile: prof,
109
- region: region,
110
- chain_config: @config
111
- )
112
- end
113
- end
114
- end
115
- end