cap-ec2 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +9 -1
- data/cap-ec2.gemspec +3 -3
- data/lib/cap-ec2/ec2-handler.rb +1 -1
- data/lib/cap-ec2/tasks/ec2.rake +1 -0
- data/lib/cap-ec2/utils.rb +17 -2
- data/lib/cap-ec2/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef4ca63866b4eff00801d44dda99ea21e280a804
|
4
|
+
data.tar.gz: d2674ee27e54da4e47ff65e42afd0ee8cbe82150
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b0f97b3297038ce7175f323e9f5a320143b499ff142b6b115dce29a32743a34e768a4030702d01fe42e26d8246973465b3f26562574210f98b97c050ce6e888
|
7
|
+
data.tar.gz: 9bf1860538d00091cb419fae33d5eafe5b8894be95fd88591aedd0754014f6b9676bc707a6f3c157776acb0b0ee2cae7bfa772a3d6dab5ece24e343bb9476efd
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Cap-EC2 changelog
|
2
2
|
|
3
|
+
## 1.1.2
|
4
|
+
|
5
|
+
* Allow using aws-sdk v3 [@magnusvk](https://github.com/magnusvk)
|
6
|
+
* Fix NoMethodError undefined method call for Hash [@ur5us](https://github.com/ur5us)
|
7
|
+
* Allow tag value delimiter to be configurable [@erez-rabih](https://github.com/erez-rabih)
|
8
|
+
|
3
9
|
## 1.1.1
|
4
10
|
|
5
11
|
Require aws-sdk v2 instead of v1
|
data/README.md
CHANGED
@@ -47,7 +47,9 @@ set :ec2_config, 'config/ec2.yml'
|
|
47
47
|
set :ec2_project_tag, 'Project'
|
48
48
|
set :ec2_roles_tag, 'Roles'
|
49
49
|
set :ec2_stages_tag, 'Stages'
|
50
|
+
set :ec2_tag_delimiter, ","
|
50
51
|
|
52
|
+
set :ec2_profile, 'myservice' # use ~/.aws/credentials with profile_name
|
51
53
|
set :ec2_access_key_id, nil
|
52
54
|
set :ec2_secret_access_key, nil
|
53
55
|
set :ec2_region, %w{} # REQUIRED
|
@@ -59,7 +61,7 @@ set :ec2_filter_by_status_ok?, nil
|
|
59
61
|
#### Order of inheritance
|
60
62
|
|
61
63
|
`cap-ec2` supports multiple methods of configuration. The order of inheritance is:
|
62
|
-
YAML File > User Capistrano Config > Default Capistrano Config > ENV variables.
|
64
|
+
YAML File > ~/.aws/credentials > User Capistrano Config > Default Capistrano Config > ENV variables.
|
63
65
|
|
64
66
|
#### Regions
|
65
67
|
|
@@ -92,6 +94,12 @@ credentials) will be honored.
|
|
92
94
|
Cap-EC2 will look for a tag with this name to determine which instances belong to
|
93
95
|
a given role. The tag name defaults to "Roles".
|
94
96
|
|
97
|
+
* tag_delimiter
|
98
|
+
|
99
|
+
When Cap-EC2 reads a tag value, this will be the default delimiter.
|
100
|
+
For example, for a Roles tag with web,db and tag_delimiter set to ,(comma)
|
101
|
+
the server will have the web and db roles.
|
102
|
+
|
95
103
|
* filter_by_status_ok?
|
96
104
|
|
97
105
|
If this is set to `true`, then Cap-EC2 will not return instances which do not have both EC2 status
|
data/cap-ec2.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'cap-ec2/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "cap-ec2"
|
8
8
|
spec.version = CapEC2::VERSION
|
9
|
-
spec.authors = ["Andy Sykes", "Robert Coleman"]
|
10
|
-
spec.email = ["github@tinycat.co.uk", "github@robert.net.nz"]
|
9
|
+
spec.authors = ["Andy Sykes", "Robert Coleman", "Forward3D Developers"]
|
10
|
+
spec.email = ["github@tinycat.co.uk", "github@robert.net.nz", "developers@forward3d.com"]
|
11
11
|
spec.description = %q{Cap-EC2 is used to generate Capistrano namespaces and tasks from Amazon EC2 instance tags, dynamically building the list of servers to be deployed to.}
|
12
12
|
spec.summary = %q{Cap-EC2 is used to generate Capistrano namespaces and tasks from Amazon EC2 instance tags, dynamically building the list of servers to be deployed to.}
|
13
13
|
spec.homepage = "https://github.com/forward3d/cap-ec2"
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
|
24
|
-
spec.add_dependency "aws-sdk", "
|
24
|
+
spec.add_dependency "aws-sdk", ">= 2.0"
|
25
25
|
spec.add_dependency "capistrano", ">= 3.0"
|
26
26
|
spec.add_dependency "terminal-table"
|
27
27
|
spec.add_dependency "colorize"
|
data/lib/cap-ec2/ec2-handler.rb
CHANGED
@@ -90,7 +90,7 @@ module CapEC2
|
|
90
90
|
private
|
91
91
|
|
92
92
|
def instance_has_tag?(instance, key, value)
|
93
|
-
(tag_value(instance, key) || '').split(
|
93
|
+
(tag_value(instance, key) || '').split(tag_delimiter).map(&:strip).include?(value.to_s)
|
94
94
|
end
|
95
95
|
|
96
96
|
def instance_status_ok?(instance)
|
data/lib/cap-ec2/tasks/ec2.rake
CHANGED
data/lib/cap-ec2/utils.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'aws-sdk'
|
2
|
+
|
1
3
|
module CapEC2
|
2
4
|
module Utils
|
3
5
|
|
@@ -20,8 +22,12 @@ module CapEC2
|
|
20
22
|
fetch(:ec2_stages_tag)
|
21
23
|
end
|
22
24
|
|
25
|
+
def tag_delimiter
|
26
|
+
fetch(:ec2_tag_delimiter)
|
27
|
+
end
|
28
|
+
|
23
29
|
def tag_value(instance, key)
|
24
|
-
instance.tags.find({}) { |t| t[:key] == key.to_s }[:value]
|
30
|
+
instance.tags.find(-> { {} }) { |t| t[:key] == key.to_s }[:value]
|
25
31
|
end
|
26
32
|
|
27
33
|
def self.contact_point_mapping
|
@@ -40,13 +46,22 @@ module CapEC2
|
|
40
46
|
end
|
41
47
|
|
42
48
|
def load_config
|
49
|
+
if fetch(:ec2_profile)
|
50
|
+
credentials = Aws::SharedCredentials.new(profile_name: fetch(:ec2_profile)).credentials
|
51
|
+
if credentials
|
52
|
+
set :ec2_access_key_id, credentials.access_key_id
|
53
|
+
set :ec2_secret_access_key, credentials.secret_access_key
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
43
57
|
config_location = File.expand_path(fetch(:ec2_config), Dir.pwd) if fetch(:ec2_config)
|
44
58
|
if config_location && File.exists?(config_location)
|
45
|
-
config = YAML.
|
59
|
+
config = YAML.load(ERB.new(File.read(fetch(:ec2_config))))
|
46
60
|
if config
|
47
61
|
set :ec2_project_tag, config['project_tag'] if config['project_tag']
|
48
62
|
set :ec2_roles_tag, config['roles_tag'] if config['roles_tag']
|
49
63
|
set :ec2_stages_tag, config['stages_tag'] if config['stages_tag']
|
64
|
+
set :ec2_tag_delimiter, config['tag_delimiter'] if config['tag_delimiter']
|
50
65
|
|
51
66
|
set :ec2_access_key_id, config['access_key_id'] if config['access_key_id']
|
52
67
|
set :ec2_secret_access_key, config['secret_access_key'] if config['secret_access_key']
|
data/lib/cap-ec2/version.rb
CHANGED
metadata
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cap-ec2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Sykes
|
8
8
|
- Robert Coleman
|
9
|
+
- Forward3D Developers
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
@@ -43,14 +44,14 @@ dependencies:
|
|
43
44
|
name: aws-sdk
|
44
45
|
requirement: !ruby/object:Gem::Requirement
|
45
46
|
requirements:
|
46
|
-
- - "
|
47
|
+
- - ">="
|
47
48
|
- !ruby/object:Gem::Version
|
48
49
|
version: '2.0'
|
49
50
|
type: :runtime
|
50
51
|
prerelease: false
|
51
52
|
version_requirements: !ruby/object:Gem::Requirement
|
52
53
|
requirements:
|
53
|
-
- - "
|
54
|
+
- - ">="
|
54
55
|
- !ruby/object:Gem::Version
|
55
56
|
version: '2.0'
|
56
57
|
- !ruby/object:Gem::Dependency
|
@@ -100,6 +101,7 @@ description: Cap-EC2 is used to generate Capistrano namespaces and tasks from Am
|
|
100
101
|
email:
|
101
102
|
- github@tinycat.co.uk
|
102
103
|
- github@robert.net.nz
|
104
|
+
- developers@forward3d.com
|
103
105
|
executables: []
|
104
106
|
extensions: []
|
105
107
|
extra_rdoc_files: []
|