ebfly 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/docs/env.md +58 -3
- data/lib/ebfly/cli.rb +1 -0
- data/lib/ebfly/command/env.rb +24 -1
- data/lib/ebfly/options.rb +45 -0
- data/lib/ebfly/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e8a96e5ccb8ced1ef344f6c7143f36d0b15ad1f
|
4
|
+
data.tar.gz: 3e00a03a3538a793353f9468f164097ca283ddff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff0ba53d8bec8b3edfb94a1b6d65abec6a2079392fa86c19ddc572c113a5d1b41f2329202bd6fddfd465d9d9bb728fd564994d65044b9eb09280a51828575a89
|
7
|
+
data.tar.gz: 3bae350983e6ff4e6cd195a51775e4cfab323156476ebeb0618c3334b2191949c11f68d10640101d336c9e08aa9eab04fdc809ede288dd87015d86c9e36c7bb3
|
data/docs/env.md
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
|
7
7
|
- [create](#create)
|
8
8
|
- [delete](#delete)
|
9
|
+
- [update](#update)
|
9
10
|
- [info](#info)
|
10
11
|
- [open](#open)
|
11
12
|
- [push](#push)
|
@@ -16,7 +17,7 @@
|
|
16
17
|
Create an environment.
|
17
18
|
|
18
19
|
```
|
19
|
-
ebfly env create [name] -a [app] -s [stack] -t [tier] -l [label] -d [desc]
|
20
|
+
ebfly env create [name] -a [app] -s [stack] -t [tier] -l [label] -o [namespace-key=value ...] -d [desc]
|
20
21
|
```
|
21
22
|
|
22
23
|
#### Options
|
@@ -27,6 +28,7 @@ ebfly env create [name] -a [app] -s [stack] -t [tier] -l [label] -d [desc]
|
|
27
28
|
| -s | The Solution stack name to create. Some [predefined values](#predefined_values) are available. | Yes |
|
28
29
|
| -t | Tier type, value must be `web` or `worker`. Default value is `web` | No |
|
29
30
|
| -l | The name of the application version to deploy | No |
|
31
|
+
| -o | ElasticBeanstalk option values. For detail see [Option Values](#option_values) section | No |
|
30
32
|
| -d | The description of the application. | No |
|
31
33
|
|
32
34
|
#### Examples
|
@@ -37,10 +39,10 @@ Create Ruby 1.9 web environment.
|
|
37
39
|
ebfly env create envname -a app -s ruby19 -t web
|
38
40
|
```
|
39
41
|
|
40
|
-
Create Python 2.7 worker environment.
|
42
|
+
Create Python 2.7 worker environment with option values.
|
41
43
|
|
42
44
|
```
|
43
|
-
ebfly env create envname -a app -s python27 -t worker
|
45
|
+
ebfly env create envname -a app -s python27 -t worker -o -o sqsd-MimeType="text/plain" sqsd-HttpPath="/enqueue"
|
44
46
|
```
|
45
47
|
|
46
48
|
<a name="predefined_values"></a>
|
@@ -73,6 +75,24 @@ ebfly env delete [name] -a [app]
|
|
73
75
|
| ---- | ------------------------------------------- | -------- |
|
74
76
|
| -a | The application name to create environment. | Yes |
|
75
77
|
|
78
|
+
<a name="update"></a>
|
79
|
+
### update
|
80
|
+
|
81
|
+
Update an environment.
|
82
|
+
|
83
|
+
```
|
84
|
+
ebfly env update [name] -a [app] -l [label] -o [namespace-key=value ...] -d [desc]
|
85
|
+
```
|
86
|
+
|
87
|
+
#### Options
|
88
|
+
|
89
|
+
| Name | Description | Required |
|
90
|
+
| ---- | ---------------------------------------------------------------------------------------------- | -------- |
|
91
|
+
| -a | The application name to create environment. | Yes |
|
92
|
+
| -l | The name of the application version to deploy | No |
|
93
|
+
| -o | ElasticBeanstalk option values. For detail see [Option Values](#option_values) section | No |
|
94
|
+
| -d | The description of the application. | No |
|
95
|
+
|
76
96
|
<a name="info"></a>
|
77
97
|
### info
|
78
98
|
|
@@ -130,3 +150,38 @@ Push specified commit `66c598c` to the environment.
|
|
130
150
|
```
|
131
151
|
ebfly env push envname 66c598c -a app
|
132
152
|
```
|
153
|
+
|
154
|
+
<a href="option_values"></a>
|
155
|
+
## Option Values
|
156
|
+
|
157
|
+
Option values format is `namespace-key=value` style.
|
158
|
+
Which `namespace`, `key` and `value` can be used is describe at [AWS Elastic Beanstalk official document](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html).
|
159
|
+
|
160
|
+
You can use short `namespace` as followings.
|
161
|
+
|
162
|
+
| Short namespace | Real namespace |
|
163
|
+
| -------------------- | ------------------------------------------- |
|
164
|
+
| asg | aws:autoscaling:asg |
|
165
|
+
| launchconfiguration | aws:autoscaling:launchconfiguration |
|
166
|
+
| trigger | aws:autoscaling:trigger |
|
167
|
+
| rollingupdate | aws:autoscaling:updatepolicy:rollingupdate |
|
168
|
+
| vpc | aws:ec2:vpc |
|
169
|
+
| application | aws:elasticbeanstalk:application |
|
170
|
+
| command | aws:elasticbeanstalk:command |
|
171
|
+
| environment | aws:elasticbeanstalk:environment |
|
172
|
+
| monitoring | aws:elasticbeanstalk:monitoring |
|
173
|
+
| topics | aws:elasticbeanstalk:sns:topics |
|
174
|
+
| sqsd | aws:elasticbeanstalk:sqsd |
|
175
|
+
| healthcheck | aws:elb:healthcheck |
|
176
|
+
| loadbalancer | aws:elb:loadbalancer |
|
177
|
+
| policies | aws:elb:policies |
|
178
|
+
| dbinstance | aws:rds:dbinstance |
|
179
|
+
| hostmanager | aws:elasticbeanstalk:hostmanager |
|
180
|
+
|
181
|
+
### Example
|
182
|
+
|
183
|
+
Set `InstanceType` of `aws:autoscaling:launchconfiguration` to `m1.small`
|
184
|
+
|
185
|
+
```
|
186
|
+
ebfly env update name -a app -o launchconfiguration-InstanceType="m1.small"
|
187
|
+
```
|
data/lib/ebfly/cli.rb
CHANGED
data/lib/ebfly/command/env.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module Ebfly
|
2
2
|
class Environment < Thor
|
3
3
|
include Command
|
4
|
+
include Options
|
4
5
|
|
5
6
|
desc "create <name>", "Create an environment named <name>"
|
6
7
|
option :a, :required => true, :banner => "<app>", :desc => "Application name"
|
@@ -8,6 +9,7 @@ module Ebfly
|
|
8
9
|
option :t, :banner => "<tier>", :default => "web", :desc => "Tier type (web|worker)"
|
9
10
|
option :d, :banner => "<description>", :desc => "Describes the environment"
|
10
11
|
option :l, :banner => "<label>", :desc => "The name of the application version to deploy"
|
12
|
+
option :o, :banner => "<namespace:key=value ...>", :type => :array, :desc => "ElasticBeanstalk option values. See http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html"
|
11
13
|
def create(name)
|
12
14
|
app = options[:a]
|
13
15
|
puts "Create environment: #{env_name(app, name)} ..."
|
@@ -18,7 +20,8 @@ module Ebfly
|
|
18
20
|
tier: tier(options[:t])
|
19
21
|
}
|
20
22
|
opts.merge!(description: options[:d]) if options[:d]
|
21
|
-
opts.merge!(version_label: options[:
|
23
|
+
opts.merge!(version_label: options[:l]) if options[:l]
|
24
|
+
opts.merge!(option_settings: parse_option_values(options[:o])) if options[:o] and !options[:o].empty?
|
22
25
|
|
23
26
|
debug opts
|
24
27
|
ret = run { eb.create_environment(opts) }
|
@@ -37,6 +40,26 @@ module Ebfly
|
|
37
40
|
puts "Done"
|
38
41
|
end
|
39
42
|
|
43
|
+
desc "update <name>", "Update the specified environment"
|
44
|
+
option :a, :required => true, :banner => "<app>", :desc => "Application name"
|
45
|
+
option :d, :banner => "<description>", :desc => "Describes the environment"
|
46
|
+
option :l, :banner => "<label>", :desc => "The name of the application version to deploy"
|
47
|
+
option :o, :banner => "<namespace:key=value ...>", :type => :array, :desc => "ElasticBeanstalk option values. See http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html"
|
48
|
+
def update(name)
|
49
|
+
app = options[:a]
|
50
|
+
puts "Update environment: #{env_name(app, name)} ..."
|
51
|
+
opts = {
|
52
|
+
environment_name: env_name(app, name)
|
53
|
+
}
|
54
|
+
opts.merge!(description: options[:d]) if options[:d]
|
55
|
+
opts.merge!(version_label: options[:l]) if options[:l]
|
56
|
+
opts.merge!(option_settings: parse_option_values(options[:o])) if options[:o] and !options[:o].empty?
|
57
|
+
|
58
|
+
debug(opts)
|
59
|
+
ret = run { eb.update_environment(opts) }
|
60
|
+
show_env_info(ret)
|
61
|
+
end
|
62
|
+
|
40
63
|
desc "info <name>", "Show the specified environment information."
|
41
64
|
option :a, :required => true, :banner => "<app>", :desc => "Application name"
|
42
65
|
option :r, :default => false, :desc => "Show environment resources"
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# Hndle Option values.
|
2
|
+
#
|
3
|
+
# http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html
|
4
|
+
|
5
|
+
module Ebfly
|
6
|
+
module Options
|
7
|
+
NAMESPACES = {
|
8
|
+
"asg" => "aws:autoscaling:asg",
|
9
|
+
"launchconfiguration" => "aws:autoscaling:launchconfiguration",
|
10
|
+
"trigger" => "aws:autoscaling:trigger",
|
11
|
+
"rollingupdate" => "aws:autoscaling:updatepolicy:rollingupdate",
|
12
|
+
"vpc" => "aws:ec2:vpc",
|
13
|
+
"application" => "aws:elasticbeanstalk:application",
|
14
|
+
"command" => "aws:elasticbeanstalk:command",
|
15
|
+
"environment" => "aws:elasticbeanstalk:environment",
|
16
|
+
"monitoring" => "aws:elasticbeanstalk:monitoring",
|
17
|
+
"topics" => "aws:elasticbeanstalk:sns:topics",
|
18
|
+
"sqsd" => "aws:elasticbeanstalk:sqsd",
|
19
|
+
"healthcheck" => "aws:elb:healthcheck",
|
20
|
+
"loadbalancer" => "aws:elb:loadbalancer",
|
21
|
+
"policies" => "aws:elb:policies",
|
22
|
+
"dbinstance" => "aws:rds:dbinstance",
|
23
|
+
"hostmanager" => "aws:elasticbeanstalk:hostmanager"
|
24
|
+
}
|
25
|
+
|
26
|
+
def parse_option_values(option_values)
|
27
|
+
ret = []
|
28
|
+
option_values.each do |ov|
|
29
|
+
k, value = ov.split('=')
|
30
|
+
next if value.nil?
|
31
|
+
|
32
|
+
ns, key = k.split('-')
|
33
|
+
namespace = NAMESPACES[ns.strip]
|
34
|
+
namespace = ns unless namespace
|
35
|
+
|
36
|
+
ret << {
|
37
|
+
namespace: namespace,
|
38
|
+
option_name: key.strip,
|
39
|
+
value: value.strip
|
40
|
+
}
|
41
|
+
end
|
42
|
+
ret
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/ebfly/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ebfly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kazuyuki Honda
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- lib/ebfly/command/config.rb
|
61
61
|
- lib/ebfly/command/env.rb
|
62
62
|
- lib/ebfly/ebfly.rb
|
63
|
+
- lib/ebfly/options.rb
|
63
64
|
- lib/ebfly/version.rb
|
64
65
|
homepage: https://github.com/hakobera/ebifly
|
65
66
|
licenses:
|