cloudspin-stack-rake 0.1.1 → 0.1.2

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
2
  SHA256:
3
- metadata.gz: a156d40067c77fd2b857f1df3c7802d07b8d76263ed5a632adf13fa7c1db65b5
4
- data.tar.gz: 55e696f2c5516b67b73ce489760652238232be9c8749b0f6b58c54b0f9934711
3
+ metadata.gz: 44795420dcb8c0f155c14901d97232e3713b4ab33eb832081c9f48c02b002890
4
+ data.tar.gz: 39fa269d73c166910feb86e8b03e317c7b6d1cf9f96ae7eb79aca9ae82834794
5
5
  SHA512:
6
- metadata.gz: 886628fd35467467dc091b9345fa8d02762492a04d56f7906c2466f43a34c16484a1e9f48885083fc247bca0a04c0cfc31e4af1fd2078425a3002f6245de3c94
7
- data.tar.gz: e36aa1a1269fb5e44548929f8a34e463c741226bde59ed3c90b53140c355dad91a124e959e8a36a323d8afc4f521035a6642e0d5464614da4180a072f38b91b8
6
+ metadata.gz: 6936a4c98ddf423ccddfe3562ba85cafd10f201642df572aed16714aec0fd27d0b010fd0c422ef9493a74355f892ef36f5b45232d68f7f1aaf6c61b3ec7949df
7
+ data.tar.gz: 373e6fd9713f20d967cf7999ee41cdf682b89becfc68c04879d3b059d739abc85df7441b2adc0cbef99ad3fe4902417001f2c934444d7b68bd7a9e90fac1163b
data/README.md CHANGED
@@ -1,8 +1,13 @@
1
1
  # Cloudspin::Stack::Rake
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/cloudspin/stack/rake`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ This Ruby library can be used in a Rakefile to manage infrastructure stacks. It makes use of the [cloudspin-stack](https://github.com/cloudspinners/cloudspin-stack) gem for the actual stack management code. The ideas behind this are documented (somewhat) in that project.
4
+
5
+ This is a prototype for an infrastructure project delivery framework. It is intended as a basis for exploring project structures, conventions, and functionality, but is not currently in a stable state.
6
+
7
+ Feel free to copy and use this, but be prepared to extend and modify it in order to make it useful for your own project. There isn't likely to be a clean path to upgrade your projects as this thing evolves - my assumption is that nobody else is directly depending on this code or the gems I've published from it.
8
+
9
+ I'm using [spin-stack-network](https://github.com/cloudspinners/spin-stack-network) as an example of an infrastructure stack project to make use of this framework. I may add other projects in the future as the tool is developed.
4
10
 
5
- TODO: Delete this and the text above, and describe your gem
6
11
 
7
12
  ## Installation
8
13
 
@@ -14,15 +19,75 @@ gem 'cloudspin-stack-rake'
14
19
 
15
20
  And then execute:
16
21
 
17
- $ bundle
22
+ ```bash
23
+ bundle
24
+ ```
18
25
 
19
26
  Or install it yourself as:
20
27
 
21
- $ gem install cloudspin-stack-rake
28
+ ```bash
29
+ gem install cloudspin-stack-rake
30
+ ```
31
+
32
+ ## Usage: Stack management
22
33
 
23
- ## Usage
34
+ Here's a snippet from a Rakefile:
35
+
36
+ ```ruby
37
+ require 'cloudspin/stack/rake'
38
+
39
+ namespace :stack do
40
+ namespace 'test-network' do
41
+ Cloudspin::Stack::Rake::StackTask.new(id: 'test-network')
42
+ end
43
+ end
44
+ ```
45
+
46
+ If you run `rake -T` you'll see a list of tasks:
47
+
48
+ ```bash
49
+ rake stack:test-network:down # Destroy stack test-network
50
+ rake stack:test-network:dry # Show command line to be run for stack test-network
51
+ rake stack:test-network:plan # Plan changes to stack test-network
52
+ rake stack:test-network:up # Create or update stack test-network
53
+ ```
54
+
55
+ You can also add inspec test tasks. The Rakefile snippet:
56
+ ```ruby
57
+ require 'cloudspin/stack/rake'
58
+
59
+ namespace :stack do
60
+ namespace 'test-network' do
61
+ stack = Cloudspin::Stack::Rake::StackTask.new(id: 'test-network').instance
62
+ Cloudspin::Stack::Rake::InspecTask.new(stack_instance: stack,
63
+ inspec_target: 'aws://eu-west-1/assume-spin_stack_manager-skeleton')
64
+ end
65
+ end
66
+ ```
67
+
68
+ This includes the stack management tasks from the first example, but adds a new one when you run `rake -T`:
69
+
70
+ ```bash
71
+ rake stack:test-network:inspec # Run inspec tests
72
+ ```
73
+
74
+ This assumes you have a folder `./inspec` with profile and controls in it.
75
+
76
+ For convenience, you can add a top level task to your Rakefile that creates a stack, runs inspec, and then destroys it:
77
+
78
+ ```ruby
79
+ desc 'Create, test, and destroy the stack'
80
+ task :full_test => [
81
+ :'stack:test-network:up',
82
+ :'stack:test-network:inspec',
83
+ :'stack:test-network:down'
84
+ ]
85
+ ```
86
+
87
+ You can then simply run `rake full_test` to do this.
88
+
89
+ Again, [spin-stack-network](https://github.com/cloudspinners/spin-stack-network) has an example of this, and is likely to move ahead of this documentation.
24
90
 
25
- TODO: Write usage instructions here
26
91
 
27
92
  ## Development
28
93
 
@@ -33,3 +98,8 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
33
98
  ## Contributing
34
99
 
35
100
  Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/cloudspin-stack-rake.
101
+
102
+ # Credits
103
+
104
+ This project makes extensive use of ideas and code from Toby Clemson and Jimmy Thompson, particularly [infrablocks](https://github.com/infrablocks). I've also benefited from feedback on implementation concepts from Vincenzo Fabrizi, and other [ThoughtWorkers](https://thoughtworks.com).
105
+
@@ -25,8 +25,8 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_dependency 'cloudspin-stack'
27
27
  spec.add_dependency 'inspec'
28
+ spec.add_dependency 'rake'
28
29
 
29
- spec.add_development_dependency 'bundler', '~> 1.16'
30
- spec.add_development_dependency 'rake', '~> 10.0'
31
- spec.add_development_dependency 'rspec', '~> 3.0'
30
+ spec.add_development_dependency 'bundler'
31
+ # spec.add_development_dependency 'rspec'
32
32
  end
@@ -1,7 +1,7 @@
1
1
  module Cloudspin
2
2
  module Stack
3
3
  module Rake
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudspin-stack-rake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - 'kief '
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-23 00:00:00.000000000 Z
11
+ date: 2018-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cloudspin-stack
@@ -38,48 +38,34 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.16'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.16'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rake
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
- - - "~>"
45
+ - - ">="
60
46
  - !ruby/object:Gem::Version
61
- version: '10.0'
62
- type: :development
47
+ version: '0'
48
+ type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
- - - "~>"
52
+ - - ">="
67
53
  - !ruby/object:Gem::Version
68
- version: '10.0'
54
+ version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
- name: rspec
56
+ name: bundler
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - "~>"
59
+ - - ">="
74
60
  - !ruby/object:Gem::Version
75
- version: '3.0'
61
+ version: '0'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - "~>"
66
+ - - ">="
81
67
  - !ruby/object:Gem::Version
82
- version: '3.0'
68
+ version: '0'
83
69
  description:
84
70
  email:
85
71
  - cloudspin@kief.com