elastic_whenever 0.3.2 → 0.4.0

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
- SHA256:
3
- metadata.gz: 2acb9a47149651251063b2f1bcd457067f75cfd603db66ec252bfc367c923d3b
4
- data.tar.gz: e6588eb7b07de1e9aa3b252c2da6858637346e8334a179d3dfbbc4a87d13211e
2
+ SHA1:
3
+ metadata.gz: 221091fd69b334eb2e1a29e0d98f5bd8154d3a6c
4
+ data.tar.gz: ed62915c7e06921b264dc21b9646a367cc747e13
5
5
  SHA512:
6
- metadata.gz: 7f5497d55ce4b2c6f8a62742f4902c291009fe3d60ed630f61a37a8088939dbc93e4d5072849f4dc87e61218572ac88cd19f551e45b4b166f56086cf6c8a5b4f
7
- data.tar.gz: 68df187c4e639557fec8a3ecb22f19832cea79976bdae70d4107eaa65df965e45ab7e30f9b2b8192c84c05284b5c5cf5fad9f409275ac098c2cc8fc390a2786c
6
+ metadata.gz: 9173b91d178b252b455dd833e9d0bfdabf2dc730f593ac156c58ddc8bb55c268fcaf38614b7eda8402c8163b66a21a3caf15d114dd9b0b235b3c661853faae1d
7
+ data.tar.gz: 3bbf59e2d2265073a59159f941555f5b6b8d27934eeb6363cc692eb52172ad4f7bff4d667ef64f852d7bee1f2d00a5291967d38f8d27d7a37ed7b9e5bbc4f87a
@@ -1,7 +1,7 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.2
5
- - 2.5.0
4
+ - 2.4.5
5
+ - 2.5.3
6
6
  before_install:
7
7
  - gem update --system
@@ -1,16 +1,45 @@
1
- # v0.3.2 (2018-06-25)
1
+ ## v0.4.0 (2018-12-19)
2
2
 
3
- ## BugFix
3
+ Elastic Whenever now supports Fargate launch type. Thanks @avinson.
4
+
5
+ From this release, ECS parameters must be passed as arguments. Previously, it supported schedule file variables, but it will be ignored.
6
+
7
+ ```
8
+ # Before
9
+ $ elastic_whenever --set 'cluster=ecs-test&task_definition=oneoff-application:2&container=oneoff'
10
+
11
+ # After
12
+ $ elastic_whenever --cluster ecs-test --task-definition oneoff-application:2 --container oneoff
13
+ ```
14
+
15
+ ### Enhancements
16
+
17
+ - update elastic_whenever for FARGATE launch type ([#34](https://github.com/wata727/elastic_whenever/pull/34))
18
+
19
+ ### Changes
20
+
21
+ - Bump aws-sdk-cloudwatchevents dependency ([#36](https://github.com/wata727/elastic_whenever/pull/36))
22
+ - Pass ECS params as an argument ([#37](https://github.com/wata727/elastic_whenever/pull/37))
23
+
24
+ ### Chore
25
+
26
+ - CI against Ruby 2.4.5 and 2.5.3 ([#35](https://github.com/wata727/elastic_whenever/pull/35))
27
+ - Set nil as verbose mode ([#38](https://github.com/wata727/elastic_whenever/pull/38))
28
+ - Revise task's target ([#39](https://github.com/wata727/elastic_whenever/pull/39))
29
+
30
+ ## v0.3.2 (2018-06-25)
31
+
32
+ ### BugFix
4
33
 
5
34
  - fix: `Task::Role#exists?` always return true ([#33](https://github.com/wata727/elastic_whenever/pull/33))
6
35
 
7
- # v0.3.1 (2018-06-25)
36
+ ## v0.3.1 (2018-06-25)
8
37
 
9
- ## BugFix
38
+ ### BugFix
10
39
 
11
40
  - add `attr_reader :enviroment` ([#32](https://github.com/wata727/elastic_whenever/pull/32))
12
41
 
13
- ## Others
42
+ ### Others
14
43
 
15
44
  - CI against Ruby 2.5 ([#30](https://github.com/wata727/elastic_whenever/pull/30))
16
45
  - Use `File.exist?` instead of `File.exists?` ([#31](https://github.com/wata727/elastic_whenever/pull/31))
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE.txt)
4
4
  [![Gem Version](https://badge.fury.io/rb/elastic_whenever.svg)](https://badge.fury.io/rb/elastic_whenever)
5
5
 
6
- Manage ECS scheduled tasks like whenever gem.
6
+ Manage ECS scheduled tasks like [Whenever](https://github.com/javan/whenever) gem.
7
7
 
8
8
  ## Installation
9
9
 
@@ -23,7 +23,7 @@ Or install it yourself as:
23
23
 
24
24
  ## Usage
25
25
 
26
- You can use it almost like whenever :)
26
+ You can use it almost like Whenever. However, please be aware that you must specify an identifier.
27
27
 
28
28
  ```
29
29
  $ elastic_whenever --help
@@ -31,7 +31,16 @@ Usage: elastic_whenever [options]
31
31
  -i, --update identifier Clear and create scheduled tasks by schedule file
32
32
  -c, --clear identifier Clear scheduled tasks
33
33
  -l, --list identifier List scheduled tasks
34
- -s, --set variables Example: --set 'environment=staging&cluster=ecs-test'
34
+ -s, --set variables Example: --set 'environment=staging'
35
+ --cluster cluster ECS cluster to run tasks
36
+ --task-definition task_definition
37
+ Task definition name, If omit a revision, use the latest revision of the family automatically. Example: --task-deifinition oneoff-application:2
38
+ --container container Container name defined in the task definition
39
+ --launch-type launch_type Launch type. EC2 or FARGATE. Defualt: EC2
40
+ --assign-public-ip Assign a public IP. Default: DISABLED (FARGATE only)
41
+ --security-groups groups Example: --security-groups 'sg-2c503655,sg-72f0cb0a' (FARGATE only)
42
+ --subnets subnets Example: --subnets 'subnet-4973d63f,subnet-45827d1d' (FARGATE only)
43
+ --platform-version version Optionally specify the platform version. Default: LATEST (FARGATE only)
35
44
  -f, --file schedule_file Default: config/schedule.rb
36
45
  --profile profile_name AWS shared profile name
37
46
  --access-key aws_access_key_id
@@ -40,30 +49,13 @@ Usage: elastic_whenever [options]
40
49
  AWS secret access key
41
50
  --region region AWS region
42
51
  -v, --version Print version
52
+ -V, --verbose Run rake jobs without --silent
43
53
  ```
44
54
 
45
- However, please be aware that you must specify an identifier. Also, you must specify the cluster, task definition and container name in schedule file.
46
-
47
- ```ruby
48
- set :cluster, 'ecs-test' # ECS cluster name
49
- set :task_definition, 'oneoff-application:2' # Task definition name, If omit the revision, use the latest revision of family automatically.
50
- set :container, 'oneoff' # Container name of task definition
51
-
52
- every :day, at: '03:00am' do
53
- runner 'Hoge.run'
54
- end
55
- ```
56
-
57
- If you do not write it in the schedule file, specify it with arguments.
55
+ NOTE: Currently, Elastic Whenever supports the Whenever syntax partially. We strongly encourage to use dry-run mode for verifying tasks to be created.
58
56
 
59
57
  ```
60
- $ elastic_whenever -i test --set 'environment=staging&cluster=ecs-test&task_definition=oneoff-application:2&container=oneoff'
61
- ```
62
-
63
- NOTE: Currently, it supports only the syntax of whenever partially. We recommend to check what happens beforehand with the `elastic_whenever` command.
64
-
65
- ```
66
- $ elastic_whenever
58
+ $ elastic_whenever --cluster ecs-test --task-definition example:2 --container cron
67
59
  cron(0 3 * * ? *) ecs-test example:2 cron bundle exec rake hoge:run
68
60
 
69
61
  ## [message] Above is your schedule file converted to scheduled tasks; your scheduled tasks was not updated.
@@ -71,7 +63,7 @@ cron(0 3 * * ? *) ecs-test example:2 cron bundle exec rake hoge:run
71
63
  ```
72
64
 
73
65
  ## How it works
74
- Elastic Whenever creates CloudWatch Events as many as `every` block. The number of jobs declared in it corresponds to the target.
66
+ Elastic Whenever creates CloudWatch Events as many as `every` block. Each event has as many targets as there are commands in the block.
75
67
 
76
68
  ```ruby
77
69
  every '0 0 * * *' do # scheduled task (identifier_68237a3b152a6c44359e1cf5cd8e7cf0def303d7)
@@ -80,20 +72,21 @@ every '0 0 * * *' do # scheduled task (identifier_68237a3b152a6c44359e1cf5cd8e7c
80
72
  end
81
73
  ```
82
74
 
83
- The name of the scheduled task is the identifier passed in CLI and the digest value calculated from the command etc.
84
- Because CloudWatch Events rule names are unique across all clusters, you should not use the same identifier across different clusters.
75
+ The scheduled task's name is a digest value calculated from an identifier, commands, and so on.
76
+
77
+ NOTE: You should not use the same identifier across different clusters because CloudWatch Events rule names are unique across all clusters.
85
78
 
86
79
  ## Compatible with Whenever
87
- ### `job_type` method is not supported
88
- Whenever supports custom job type using `job_type` method, but Elastic Whenever does not support it.
80
+ ### `job_type`
81
+ Whenever supports custom job type with `job_type` method, but Elastic Whenever doesn't support it.
89
82
 
90
83
  ```ruby
91
84
  # [warn] Skipping unsupported method: job_type
92
85
  job_type :awesome, '/usr/local/bin/awesome :task :fun_level'
93
86
  ```
94
87
 
95
- ### `env` method is not supported
96
- Whenever supports environment variables using `env` method, but Elastic Whenever does not support it.
88
+ ### `env`
89
+ Whenever supports environment variables with `env` method, but Elastic Whenever doesn't support it.
97
90
  You should use task definitions to set environment variables.
98
91
 
99
92
  ```ruby
@@ -101,16 +94,16 @@ You should use task definitions to set environment variables.
101
94
  env "VERSION", "v1"
102
95
  ```
103
96
 
104
- ### `:job_template` option is not supported.
105
- Whenever has a template to describe as cron, but Elastic Whenever does not have the template.
97
+ ### `:job_template`
98
+ Whenever has a template to describe as cron, but Elastic Whenever doesn't have the template.
106
99
  Therefore, `:job_template` option is ignored.
107
100
 
108
101
  ```ruby
109
102
  set :job_template, "/bin/zsh -l -c ':job'" # ignored
110
103
  ```
111
104
 
112
- ### Behavior of frequency
113
- Elastic Whenever processes the frequency received by `every` block almost like whenever.
105
+ ### Frequency
106
+ Elastic Whenever processes frequency passed to `every` block almost like Whenever.
114
107
 
115
108
  ```ruby
116
109
  # Whenever
@@ -134,7 +127,7 @@ every 10.minutes do
134
127
  end
135
128
  ```
136
129
 
137
- However, handling of the day of week is partially different because it follows the scheduled expression.
130
+ However, handling of the day of week is partially different because it follows scheduled expression.
138
131
 
139
132
  ```ruby
140
133
  # Whenever
@@ -148,7 +141,7 @@ every :monday do
148
141
  end
149
142
  ```
150
143
 
151
- Therefore, the cron syntax is converted to scheduled tasks.
144
+ Therefore, cron syntax is converted to scheduled expression like the following:
152
145
 
153
146
  ```ruby
154
147
  # cron(0 0 ? * 2 *) ecs-test myapp:2 web awesome
@@ -157,7 +150,7 @@ every "0 0 * * 1" do
157
150
  end
158
151
  ```
159
152
 
160
- Of course, you can write the scheduled expression.
153
+ Absolutely, you can also write scheduled expression.
161
154
 
162
155
  ```ruby
163
156
  # cron(0 0 ? * 2 *) ecs-test myapp:2 web awesome
@@ -166,8 +159,8 @@ every "0 0 ? * 2 *" do
166
159
  end
167
160
  ```
168
161
 
169
- #### `:reboot` option is not supported
170
- Whenever supports `:reboot` which is a function of cron, but Elastic Whenever does not support it.
162
+ #### `:reboot`
163
+ Whenever supports `:reboot` as a cron option, but Elastic Whenever doesn't support it.
171
164
 
172
165
  ```ruby
173
166
  # [warn] `reboot` is not supported option. Ignore this task.
@@ -176,9 +169,9 @@ every :reboot do
176
169
  end
177
170
  ```
178
171
 
179
- ### Behavior of bundle commands
180
- Whenever checks if the application uses bundler and automatically adds the prefix to commands.
181
- However, Elastic Whenever always adds the prefix on the premise that the application is using bundler.
172
+ ### Bundle commands
173
+ Whenever checks if the application uses bundler and automatically adds a prefix to commands.
174
+ However, Elastic Whenever always adds a prefix on a premise that the application is using bundler.
182
175
 
183
176
  ```ruby
184
177
  # Whenever
@@ -197,8 +190,8 @@ If you don't want to add the prefix, set `bundle_command` to empty as follows:
197
190
  set :bundle_command, ""
198
191
  ```
199
192
 
200
- ### Drop support for for Rails 3 or below
201
- Whenever supports `runner` job with old Rails version, but Elastic Whenever supports Rails 4 and above only.
193
+ ### Rails
194
+ Whenever supports `runner` job with old Rails versions, but Elastic Whenever supports Rails 4 and above only.
202
195
 
203
196
  ```ruby
204
197
  # Whenever
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "rspec", "~> 3.0"
26
26
 
27
27
  spec.add_dependency "aws-sdk-ecs", "~> 1.0"
28
- spec.add_dependency "aws-sdk-cloudwatchevents", "~> 1.0"
28
+ spec.add_dependency "aws-sdk-cloudwatchevents", "~> 1.5"
29
29
  spec.add_dependency "aws-sdk-iam", "~> 1.0"
30
30
  spec.add_dependency "chronic", "~> 0.10"
31
31
  end
@@ -36,7 +36,6 @@ module ElasticWhenever
36
36
  ERROR_EXIT_CODE
37
37
  rescue OptionParser::MissingArgument,
38
38
  Option::InvalidOptionException,
39
- Schedule::InvalidScheduleException,
40
39
  Task::Target::InvalidContainerException => exn
41
40
 
42
41
  Logger.instance.fail(exn.message)
@@ -46,11 +45,10 @@ module ElasticWhenever
46
45
  private
47
46
 
48
47
  def update_tasks(option, dry_run:)
49
- schedule = Schedule.new(option.schedule_file, option.variables)
50
- schedule.validate!
48
+ schedule = Schedule.new(option.schedule_file, option.verbose, option.variables)
51
49
 
52
- cluster = Task::Cluster.new(option, schedule.cluster)
53
- definition = Task::Definition.new(option, schedule.task_definition)
50
+ cluster = Task::Cluster.new(option, option.cluster)
51
+ definition = Task::Definition.new(option, option.task_definition)
54
52
  role = Task::Role.new(option)
55
53
  if !role.exists? && !dry_run
56
54
  role.create
@@ -64,7 +62,7 @@ module ElasticWhenever
64
62
  option,
65
63
  cluster: cluster,
66
64
  definition: definition,
67
- container: schedule.container,
65
+ container: option.container,
68
66
  commands: command,
69
67
  rule: rule,
70
68
  role: role,
@@ -8,7 +8,16 @@ module ElasticWhenever
8
8
 
9
9
  attr_reader :identifier
10
10
  attr_reader :mode
11
+ attr_reader :verbose
11
12
  attr_reader :variables
13
+ attr_reader :cluster
14
+ attr_reader :task_definition
15
+ attr_reader :container
16
+ attr_reader :assign_public_ip
17
+ attr_reader :launch_type
18
+ attr_reader :platform_version
19
+ attr_reader :security_groups
20
+ attr_reader :subnets
12
21
  attr_reader :schedule_file
13
22
 
14
23
  class InvalidOptionException < StandardError; end
@@ -16,7 +25,16 @@ module ElasticWhenever
16
25
  def initialize(args)
17
26
  @identifier = nil
18
27
  @mode = DRYRUN_MODE
28
+ @verbose = false
19
29
  @variables = []
30
+ @cluster = nil
31
+ @task_definition = nil
32
+ @container = nil
33
+ @assign_public_ip = 'DISABLED'
34
+ @launch_type = 'EC2'
35
+ @platform_version = 'LATEST'
36
+ @security_groups = []
37
+ @subnets = []
20
38
  @schedule_file = 'config/schedule.rb'
21
39
  @profile = nil
22
40
  @access_key = nil
@@ -36,7 +54,7 @@ module ElasticWhenever
36
54
  @identifier = identifier
37
55
  @mode = LIST_MODE
38
56
  end
39
- opts.on('-s' ,'--set variables', "Example: --set 'environment=staging&cluster=ecs-test'") do |set|
57
+ opts.on('-s' ,'--set variables', "Example: --set 'environment=staging'") do |set|
40
58
  pairs = set.split('&')
41
59
  pairs.each do |pair|
42
60
  unless pair.include?('=')
@@ -47,6 +65,30 @@ module ElasticWhenever
47
65
  @variables << { key: key, value: value }
48
66
  end
49
67
  end
68
+ opts.on('--cluster cluster', 'ECS cluster to run tasks') do |cluster|
69
+ @cluster = cluster
70
+ end
71
+ opts.on('--task-definition task_definition', 'Task definition name, If omit a revision, use the latest revision of the family automatically. Example: --task-deifinition oneoff-application:2') do |definition|
72
+ @task_definition = definition
73
+ end
74
+ opts.on('--container container', 'Container name defined in the task definition') do |container|
75
+ @container = container
76
+ end
77
+ opts.on('--launch-type launch_type', 'Launch type. EC2 or FARGATE. Defualt: EC2') do |launch_type|
78
+ @launch_type = launch_type
79
+ end
80
+ opts.on('--assign-public-ip', 'Assign a public IP. Default: DISABLED (FARGATE only)') do
81
+ @assign_public_ip = 'ENABLED'
82
+ end
83
+ opts.on('--security-groups groups', "Example: --security-groups 'sg-2c503655,sg-72f0cb0a' (FARGATE only)") do |groups|
84
+ @security_groups = groups.split(',')
85
+ end
86
+ opts.on('--subnets subnets', "Example: --subnets 'subnet-4973d63f,subnet-45827d1d' (FARGATE only)") do |subnets|
87
+ @subnets = subnets.split(',')
88
+ end
89
+ opts.on('--platform-version version', "Optionally specify the platform version. Default: LATEST (FARGATE only)") do |version|
90
+ @platform_version = version
91
+ end
50
92
  opts.on('-f', '--file schedule_file', 'Default: config/schedule.rb') do |file|
51
93
  @schedule_file = file
52
94
  end
@@ -65,6 +107,9 @@ module ElasticWhenever
65
107
  opts.on('-v', '--version', 'Print version') do
66
108
  @mode = PRINT_VERSION_MODE
67
109
  end
110
+ opts.on('-V', '--verbose', 'Run rake jobs without --silent') do
111
+ @verbose = true
112
+ end
68
113
  end.parse(args)
69
114
 
70
115
  @credentials = if profile
@@ -80,6 +125,9 @@ module ElasticWhenever
80
125
 
81
126
  def validate!
82
127
  raise InvalidOptionException.new("Can't find file: #{schedule_file}") unless File.exist?(schedule_file)
128
+ raise InvalidOptionException.new("You must set cluster") unless cluster
129
+ raise InvalidOptionException.new("You must set task definition") unless task_definition
130
+ raise InvalidOptionException.new("You must set container") unless container
83
131
  end
84
132
 
85
133
  private
@@ -1,14 +1,10 @@
1
1
  module ElasticWhenever
2
2
  class Schedule
3
3
  attr_reader :tasks
4
- attr_reader :cluster
5
- attr_reader :task_definition
6
- attr_reader :container
7
4
  attr_reader :chronic_options
8
5
  attr_reader :bundle_command
9
6
  attr_reader :environment
10
7
 
11
- class InvalidScheduleException < StandardError; end
12
8
  class UnsupportedFrequencyException < StandardError; end
13
9
 
14
10
  module WheneverNumeric
@@ -51,12 +47,10 @@ module ElasticWhenever
51
47
  end
52
48
  using WheneverNumeric
53
49
 
54
- def initialize(file, variables)
50
+ def initialize(file, verbose, variables)
55
51
  @environment = "production"
52
+ @verbose = verbose
56
53
  @tasks = []
57
- @cluster = nil
58
- @task_definition = nil
59
- @container = nil
60
54
  @chronic_options = {}
61
55
  @bundle_command = "bundle exec"
62
56
 
@@ -69,19 +63,13 @@ module ElasticWhenever
69
63
  end
70
64
 
71
65
  def every(frequency, options = {}, &block)
72
- @tasks << Task.new(@environment, @bundle_command, schedule_expression(frequency, options)).tap do |task|
66
+ @tasks << Task.new(@environment, @verbose, @bundle_command, schedule_expression(frequency, options)).tap do |task|
73
67
  task.instance_eval(&block)
74
68
  end
75
69
  rescue UnsupportedFrequencyException => exn
76
70
  Logger.instance.warn(exn.message)
77
71
  end
78
72
 
79
- def validate!
80
- raise InvalidScheduleException.new("You must set cluster") unless cluster
81
- raise InvalidScheduleException.new("You must set task definition") unless task_definition
82
- raise InvalidScheduleException.new("You must set container") unless container
83
- end
84
-
85
73
  def schedule_expression(frequency, options)
86
74
  opts = { :now => Time.new(2017, 12, 1, 0, 0, 0) }.merge(@chronic_options)
87
75
  time = Chronic.parse(options[:at], opts) || Time.new(2017, 12, 1, 0, 0, 0)
@@ -3,8 +3,9 @@ module ElasticWhenever
3
3
  attr_reader :commands
4
4
  attr_reader :expression
5
5
 
6
- def initialize(environment, bundle_command, expression)
6
+ def initialize(environment, verbose, bundle_command, expression)
7
7
  @environment = environment
8
+ @verbose_mode = verbose ? nil : "--silent"
8
9
  @bundle_command = bundle_command.split(" ")
9
10
  @expression = expression
10
11
  @commands = []
@@ -15,7 +16,7 @@ module ElasticWhenever
15
16
  end
16
17
 
17
18
  def rake(task)
18
- @commands << [@bundle_command, "rake", task, "--silent"].flatten
19
+ @commands << [@bundle_command, "rake", task, @verbose_mode].flatten.compact
19
20
  end
20
21
 
21
22
  def runner(src)
@@ -5,6 +5,11 @@ module ElasticWhenever
5
5
  attr_reader :definition
6
6
  attr_reader :container
7
7
  attr_reader :commands
8
+ attr_reader :assign_public_ip
9
+ attr_reader :launch_type
10
+ attr_reader :platform_version
11
+ attr_reader :security_groups
12
+ attr_reader :subnets
8
13
 
9
14
  class InvalidContainerException < StandardError; end
10
15
 
@@ -37,6 +42,11 @@ module ElasticWhenever
37
42
  @commands = commands
38
43
  @rule = rule
39
44
  @role = role
45
+ @assign_public_ip = option.assign_public_ip
46
+ @launch_type = option.launch_type
47
+ @platform_version = option.platform_version
48
+ @security_groups = option.security_groups
49
+ @subnets = option.subnets
40
50
  @client = Aws::CloudWatchEvents::Client.new(option.aws_config)
41
51
  end
42
52
 
@@ -49,10 +59,7 @@ module ElasticWhenever
49
59
  arn: cluster.arn,
50
60
  input: input_json(container, commands),
51
61
  role_arn: role.arn,
52
- ecs_parameters: {
53
- task_definition_arn: definition.arn,
54
- task_count: 1,
55
- }
62
+ ecs_parameters: ecs_parameters,
56
63
  }
57
64
  ]
58
65
  )
@@ -71,6 +78,30 @@ module ElasticWhenever
71
78
  }.to_json
72
79
  end
73
80
 
81
+ def ecs_parameters
82
+ if launch_type == "FARGATE"
83
+ {
84
+ launch_type: launch_type,
85
+ task_definition_arn: definition.arn,
86
+ task_count: 1,
87
+ network_configuration: {
88
+ awsvpc_configuration: {
89
+ subnets: subnets,
90
+ security_groups: security_groups,
91
+ assign_public_ip: assign_public_ip,
92
+ }
93
+ },
94
+ platform_version: platform_version,
95
+ }
96
+ else
97
+ {
98
+ launch_type: launch_type,
99
+ task_definition_arn: definition.arn,
100
+ task_count: 1,
101
+ }
102
+ end
103
+ end
104
+
74
105
  attr_reader :rule
75
106
  attr_reader :role
76
107
  attr_reader :client
@@ -1,3 +1,3 @@
1
1
  module ElasticWhenever
2
- VERSION = "0.3.2"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elastic_whenever
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuma Watanabe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-25 00:00:00.000000000 Z
11
+ date: 2018-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.0'
75
+ version: '1.5'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.0'
82
+ version: '1.5'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: aws-sdk-iam
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -159,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
159
  version: '0'
160
160
  requirements: []
161
161
  rubyforge_project:
162
- rubygems_version: 2.7.6
162
+ rubygems_version: 2.6.11
163
163
  signing_key:
164
164
  specification_version: 4
165
165
  summary: Manage ECS Scheduled Tasks like Whenever