auster 0.2.2 → 0.3.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 +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
|