cfndk 0.0.1 → 0.0.2

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
  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