ebfly 0.0.2 → 0.0.3
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 +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:
|