auster 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/example-repo/tasks/show-exports.rb +1 -0
- data/example-repo/tasks/sub/_omitted.rb +0 -0
- data/example-repo/tasks/sub/test-script.rb +1 -0
- data/example-repo/tasks/test-script1.rb +1 -0
- data/lib/cfer/auster/cli/apply.rb +35 -0
- data/lib/cfer/auster/cli/destroy.rb +3 -2
- data/lib/cfer/auster/cli/json.rb +3 -2
- data/lib/cfer/auster/cli/nuke.rb +2 -1
- data/lib/cfer/auster/cli/{run.rb → task.rb} +8 -7
- data/lib/cfer/auster/cli/tasks.rb +26 -0
- data/lib/cfer/auster/cli.rb +6 -2
- data/lib/cfer/auster/config.rb +0 -2
- data/lib/cfer/auster/repo.rb +22 -0
- data/lib/cfer/auster/step.rb +1 -1
- data/lib/cfer/auster/version.rb +1 -1
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77f239157bba892dba58bba35d3f6c7f4e9fa962
|
4
|
+
data.tar.gz: 411670ff3bebba164215bfd07993dd9aa6982385
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43b2d524317e0332e853b498448acc65651f1854c7a0113531820dc16e9df7bd56b01e428f227495d89d2ddd4c07f115b767b992d3d5e0f0c496c075b4ece481
|
7
|
+
data.tar.gz: e883ec1ddb96733f8722f7af91b3f68a8d95c3f4ce01e60fd7e31252010aa26a1a59960a560ad8e70d50577e6dd2798f7c45659b0f537992b86f27fbc2638ddd
|
data/README.md
CHANGED
@@ -19,8 +19,8 @@ $ cd auster/example-repo
|
|
19
19
|
Take a look around the repo if you'd like. Ensure that you have valid AWS credentials in your environment (`AWS_PROFILE`, etc.) and then run the following to create a pair of CloudFormation stacks. All they'll do is create S3 buckets, so you won't be charged for anything.
|
20
20
|
|
21
21
|
```bash
|
22
|
-
$ auster
|
23
|
-
$ auster
|
22
|
+
$ auster apply us-west-2/dev-ed1 bootstrap
|
23
|
+
$ auster apply us-west-2/dev-ed1 dependent
|
24
24
|
```
|
25
25
|
|
26
26
|
If you read through the Auster output, you'll see that it's creating S3 buckets (as you'd expect--it's still CloudFormation under the hood) and registering them as region-wide exports, prefixed with the plan ID `dev1-ed`.
|
@@ -39,10 +39,10 @@ If you'd like more information on writing Cfer itself, check out [chef-cfer-cons
|
|
39
39
|
- `auster generate step ##.human-tag` - Creates a new Auster step with stub files.
|
40
40
|
|
41
41
|
### Executors ###
|
42
|
-
**Note:** In the command line interface, the step number and the tag are interchangeable. `auster
|
42
|
+
**Note:** In the command line interface, the step number and the tag are interchangeable. `auster apply region/env 00` and `auster apply region/env human-tag` will refer to the same step, `00.human-tag`.
|
43
43
|
|
44
|
-
- `auster json us-west-2/dev1-ed (##|human-tag)` - Uses `cfer generate` to generate the output JSON that will be applied when this step is `auster
|
45
|
-
- `auster
|
44
|
+
- `auster json us-west-2/dev1-ed (##|human-tag)` - Uses `cfer generate` to generate the output JSON that will be applied when this step is `auster apply`'d.
|
45
|
+
- `auster apply us-west-2/dev1-ed (##|human-tag)` - Runs step 01 in region `us-west2` with configuration set `dev1-ed`. This will:
|
46
46
|
- If `/cfg/_schema.yaml` exists, it will validate `/cfg/us-west2/dev1-ed.yaml` against it and fail if it does not validate.
|
47
47
|
- If this is the first run of this step (there is no `dev1-ed-step01` CloudFormation stack in AWS), the scripts in `/steps/01/on-create.d` will be run in lexicographic order.
|
48
48
|
- The scripts in `/steps/01/pre-converge.d` will be run in lexicographic order.
|
@@ -0,0 +1 @@
|
|
1
|
+
puts exports.inspect
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
puts args.inspect
|
@@ -0,0 +1 @@
|
|
1
|
+
puts repo.root
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "cri"
|
3
|
+
|
4
|
+
require "cfer/auster/cli/_shared"
|
5
|
+
|
6
|
+
module Cfer
|
7
|
+
module Auster
|
8
|
+
module CLI
|
9
|
+
def self.apply
|
10
|
+
Cri::Command.define do
|
11
|
+
name "apply"
|
12
|
+
usage "apply aws-region/config-set count-or-tag"
|
13
|
+
description "Applies this Auster step against your AWS infrastructure."
|
14
|
+
|
15
|
+
CLI.standard_options(self)
|
16
|
+
|
17
|
+
run do |opts, args, cmd|
|
18
|
+
if args.length < 2
|
19
|
+
puts cmd.help
|
20
|
+
exit 1
|
21
|
+
else
|
22
|
+
CLI.repo_from_options(opts) do |repo|
|
23
|
+
args = args.dup
|
24
|
+
config_set = repo.config_set(args.shift)
|
25
|
+
step = repo.step_by_count_or_tag(args.shift)
|
26
|
+
|
27
|
+
step.apply(config_set)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -20,8 +20,9 @@ module Cfer
|
|
20
20
|
exit 1
|
21
21
|
else
|
22
22
|
CLI.repo_from_options(opts) do |repo|
|
23
|
-
|
24
|
-
|
23
|
+
args = args.dup
|
24
|
+
config_set = repo.config_set(args.shift)
|
25
|
+
step = repo.step_by_count_or_tag(args.shift)
|
25
26
|
|
26
27
|
step.destroy(config_set)
|
27
28
|
end
|
data/lib/cfer/auster/cli/json.rb
CHANGED
@@ -24,8 +24,9 @@ module Cfer
|
|
24
24
|
exit 1
|
25
25
|
else
|
26
26
|
CLI.repo_from_options(opts) do |repo|
|
27
|
-
|
28
|
-
|
27
|
+
args = args.dup
|
28
|
+
config_set = repo.config_set(args.shift)
|
29
|
+
step = repo.step_by_count_or_tag(args.shift)
|
29
30
|
|
30
31
|
ret = step.json(config_set)
|
31
32
|
|
data/lib/cfer/auster/cli/nuke.rb
CHANGED
@@ -6,11 +6,11 @@ require "cfer/auster/cli/_shared"
|
|
6
6
|
module Cfer
|
7
7
|
module Auster
|
8
8
|
module CLI
|
9
|
-
def self.
|
9
|
+
def self.task
|
10
10
|
Cri::Command.define do
|
11
|
-
name "
|
12
|
-
usage "
|
13
|
-
description "Runs
|
11
|
+
name "task"
|
12
|
+
usage "task aws-region/config-set script-name [args]"
|
13
|
+
description "Runs a task within the context of an Auster config set."
|
14
14
|
|
15
15
|
CLI.standard_options(self)
|
16
16
|
|
@@ -20,10 +20,11 @@ module Cfer
|
|
20
20
|
exit 1
|
21
21
|
else
|
22
22
|
CLI.repo_from_options(opts) do |repo|
|
23
|
-
|
24
|
-
|
23
|
+
args = args.dup
|
24
|
+
config_set = repo.config_set(args.shift)
|
25
|
+
task_name = args.shift
|
25
26
|
|
26
|
-
|
27
|
+
repo.run_task(task_name, config_set, args)
|
27
28
|
end
|
28
29
|
end
|
29
30
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "cri"
|
3
|
+
|
4
|
+
require "cfer/auster/cli/_shared"
|
5
|
+
|
6
|
+
module Cfer
|
7
|
+
module Auster
|
8
|
+
module CLI
|
9
|
+
def self.tasks
|
10
|
+
Cri::Command.define do
|
11
|
+
name "tasks"
|
12
|
+
usage "tasks"
|
13
|
+
description "Prints a list of tasks available in this repo."
|
14
|
+
|
15
|
+
CLI.standard_options(self)
|
16
|
+
|
17
|
+
run do |opts, args, cmd|
|
18
|
+
CLI.repo_from_options(opts) do |repo|
|
19
|
+
repo.tasks.each { |t| puts t }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/cfer/auster/cli.rb
CHANGED
@@ -7,8 +7,10 @@ require "cfer/auster"
|
|
7
7
|
require "cfer/auster/cli/_shared"
|
8
8
|
require "cfer/auster/cli/generate"
|
9
9
|
require "cfer/auster/cli/json"
|
10
|
-
require "cfer/auster/cli/
|
10
|
+
require "cfer/auster/cli/task"
|
11
|
+
require "cfer/auster/cli/tasks"
|
11
12
|
require "cfer/auster/cli/destroy"
|
13
|
+
require "cfer/auster/cli/apply"
|
12
14
|
require "cfer/auster/cli/nuke"
|
13
15
|
|
14
16
|
module Cfer
|
@@ -45,7 +47,9 @@ module Cfer
|
|
45
47
|
|
46
48
|
ret.add_command(CLI.generate)
|
47
49
|
ret.add_command(CLI.json)
|
48
|
-
ret.add_command(CLI.
|
50
|
+
ret.add_command(CLI.task)
|
51
|
+
ret.add_command(CLI.tasks)
|
52
|
+
ret.add_command(CLI.apply)
|
49
53
|
ret.add_command(CLI.destroy)
|
50
54
|
ret.add_command(CLI.nuke)
|
51
55
|
|
data/lib/cfer/auster/config.rb
CHANGED
data/lib/cfer/auster/repo.rb
CHANGED
@@ -73,6 +73,28 @@ module Cfer
|
|
73
73
|
@steps.sort.map(&:last)
|
74
74
|
end
|
75
75
|
|
76
|
+
def tasks
|
77
|
+
Dir["#{root}/tasks/**/*.rb"].reject { |f| File.basename(f).start_with?("_") }.map do |f|
|
78
|
+
f.gsub("#{root}/tasks/", "").gsub(/\.rb$/, "")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def run_task(task_name, config_set, args = [])
|
83
|
+
logger.debug "Attempting to run task '#{task_name}'."
|
84
|
+
task_file = "#{root}/tasks/#{task_name}.rb"
|
85
|
+
|
86
|
+
raise "task '#{task_name}' (#{task_file}) doesn't exist." \
|
87
|
+
unless File.file?(task_file)
|
88
|
+
|
89
|
+
Cfer::Auster::ScriptExecutor.new(
|
90
|
+
config_set.env_vars_for_shell.merge(
|
91
|
+
repo: self,
|
92
|
+
config_set: config_set,
|
93
|
+
args: args
|
94
|
+
)
|
95
|
+
).run(task_file)
|
96
|
+
end
|
97
|
+
|
76
98
|
def config_set(id)
|
77
99
|
raise "Config set not found with id '#{id}'." unless @config_sets.include?(id)
|
78
100
|
|
data/lib/cfer/auster/step.rb
CHANGED
data/lib/cfer/auster/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ed Ropple
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -224,18 +224,24 @@ files:
|
|
224
224
|
- example-repo/steps/01.dependent/on-destroy.d/00-debug.rb
|
225
225
|
- example-repo/steps/01.dependent/post-converge.d/00-debug.rb
|
226
226
|
- example-repo/steps/01.dependent/pre-converge.d/00-debug.rb
|
227
|
+
- example-repo/tasks/show-exports.rb
|
228
|
+
- example-repo/tasks/sub/_omitted.rb
|
229
|
+
- example-repo/tasks/sub/test-script.rb
|
230
|
+
- example-repo/tasks/test-script1.rb
|
227
231
|
- lib/cfer/auster.rb
|
228
232
|
- lib/cfer/auster/cfer_evaluator.rb
|
229
233
|
- lib/cfer/auster/cfer_helpers.rb
|
230
234
|
- lib/cfer/auster/cli.rb
|
231
235
|
- lib/cfer/auster/cli/_shared.rb
|
236
|
+
- lib/cfer/auster/cli/apply.rb
|
232
237
|
- lib/cfer/auster/cli/destroy.rb
|
233
238
|
- lib/cfer/auster/cli/generate.rb
|
234
239
|
- lib/cfer/auster/cli/generate/repo.rb
|
235
240
|
- lib/cfer/auster/cli/generate/step.rb
|
236
241
|
- lib/cfer/auster/cli/json.rb
|
237
242
|
- lib/cfer/auster/cli/nuke.rb
|
238
|
-
- lib/cfer/auster/cli/
|
243
|
+
- lib/cfer/auster/cli/task.rb
|
244
|
+
- lib/cfer/auster/cli/tasks.rb
|
239
245
|
- lib/cfer/auster/config.rb
|
240
246
|
- lib/cfer/auster/logging.rb
|
241
247
|
- lib/cfer/auster/param_validator.rb
|