formatron 0.1.0 → 0.1.1
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/exe/formatron +4 -0
- data/lib/formatron/chef/knife.rb +3 -3
- data/lib/formatron/chef.rb +10 -9
- data/lib/formatron/cli/generators/databag_secret.rb +25 -0
- data/lib/formatron/cli/generators/guid.rb +25 -0
- data/lib/formatron/cloud_formation/resources/ec2.rb +38 -0
- data/lib/formatron/cloud_formation/template/vpc/subnet/instance/block_devices.rb +36 -0
- data/lib/formatron/cloud_formation/template/vpc/subnet/instance.rb +57 -0
- data/lib/formatron/dsl/formatron/vpc/subnet/instance/block_device.rb +23 -0
- data/lib/formatron/dsl/formatron/vpc/subnet/instance/volume.rb +23 -0
- data/lib/formatron/dsl/formatron/vpc/subnet/instance.rb +5 -0
- data/lib/formatron/generators/util.rb +1 -1
- data/lib/formatron/version.rb +1 -1
- data/lib/formatron.rb +8 -6
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 151ab7174411866cef2baa32c55fc5369e005a01
|
4
|
+
data.tar.gz: 86caf9686fe667117f449703b28b991b0c86f4e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09ba7c7372af63e0f1091e163d249f5da961a7168b83ef24d72e037414bae6df303e7acb1b597b7b9a588f85d2f730884727a0cb39142a5a412337d3a49689ad
|
7
|
+
data.tar.gz: eb0926ad7d887d84bb7690051f666adaab4fcb88b27d51758a8f6fb651ea7a7cf6c4391330e860166a897d93791a9dc9d56dba7b774d87a6fd2825b2f98bd9bb
|
data/exe/formatron
CHANGED
@@ -4,6 +4,8 @@ require 'formatron/cli'
|
|
4
4
|
require 'formatron/cli/generators/credentials'
|
5
5
|
require 'formatron/cli/generators/bootstrap'
|
6
6
|
require 'formatron/cli/generators/instance'
|
7
|
+
require 'formatron/cli/generators/guid'
|
8
|
+
require 'formatron/cli/generators/databag_secret'
|
7
9
|
require 'formatron/cli/deploy'
|
8
10
|
require 'formatron/cli/destroy'
|
9
11
|
require 'formatron/cli/provision'
|
@@ -12,6 +14,8 @@ require 'formatron/cli/completion'
|
|
12
14
|
Formatron::CLI.include Formatron::CLI::Generators::Credentials
|
13
15
|
Formatron::CLI.include Formatron::CLI::Generators::Bootstrap
|
14
16
|
Formatron::CLI.include Formatron::CLI::Generators::Instance
|
17
|
+
Formatron::CLI.include Formatron::CLI::Generators::GUID
|
18
|
+
Formatron::CLI.include Formatron::CLI::Generators::DatabagSecret
|
15
19
|
Formatron::CLI.include Formatron::CLI::Deploy
|
16
20
|
Formatron::CLI.include Formatron::CLI::Destroy
|
17
21
|
Formatron::CLI.include Formatron::CLI::Provision
|
data/lib/formatron/chef/knife.rb
CHANGED
@@ -109,15 +109,15 @@ class Formatron
|
|
109
109
|
end
|
110
110
|
|
111
111
|
def bootstrap(
|
112
|
-
|
112
|
+
guid:,
|
113
113
|
bastion_hostname:,
|
114
114
|
cookbook:,
|
115
115
|
hostname:
|
116
116
|
)
|
117
117
|
# rubocop:disable Metrics/LineLength
|
118
|
-
command = "knife bootstrap #{hostname} --sudo -x ubuntu -i #{@keys.ec2_key} -E #{
|
118
|
+
command = "knife bootstrap #{hostname} --sudo -x ubuntu -i #{@keys.ec2_key} -E #{guid} -r #{cookbook} -N #{guid} -c #{@knife_file.path}#{@ssl_verify ? '' : ' --node-ssl-verify-mode none'} --secret-file #{@databag_secret_file.path}"
|
119
119
|
command = "#{command} -G ubuntu@#{bastion_hostname}" unless bastion_hostname.eql? hostname
|
120
|
-
fail "failed to bootstrap instance: #{
|
120
|
+
fail "failed to bootstrap instance: #{guid}" unless Util::Shell.exec command
|
121
121
|
# rubocop:enable Metrics/LineLength
|
122
122
|
end
|
123
123
|
|
data/lib/formatron/chef.rb
CHANGED
@@ -92,11 +92,12 @@ class Formatron
|
|
92
92
|
# rubocop:disable Metrics/MethodLength
|
93
93
|
def provision(
|
94
94
|
sub_domain:,
|
95
|
+
guid:,
|
95
96
|
cookbook:,
|
96
97
|
bastion:
|
97
98
|
)
|
98
99
|
Formatron::LOG.info do
|
99
|
-
"Provision #{
|
100
|
+
"Provision #{guid} with Chef cookbook: #{cookbook}"
|
100
101
|
end
|
101
102
|
bastion ||= @bastions.keys[0]
|
102
103
|
bastion_hostname = _hostname(
|
@@ -111,11 +112,11 @@ class Formatron
|
|
111
112
|
hostname = _hostname(
|
112
113
|
sub_domain: sub_domain
|
113
114
|
)
|
114
|
-
@knife.create_environment environment:
|
115
|
-
@berkshelf.upload environment:
|
115
|
+
@knife.create_environment environment: guid
|
116
|
+
@berkshelf.upload environment: guid, cookbook: cookbook
|
116
117
|
@knife.bootstrap(
|
117
118
|
bastion_hostname: bastion_hostname,
|
118
|
-
|
119
|
+
guid: guid,
|
119
120
|
cookbook: cookbook_name,
|
120
121
|
hostname: hostname
|
121
122
|
)
|
@@ -123,13 +124,13 @@ class Formatron
|
|
123
124
|
# rubocop:enable Metrics/ParameterLists
|
124
125
|
# rubocop:enable Metrics/MethodLength
|
125
126
|
|
126
|
-
def destroy(
|
127
|
+
def destroy(guid:)
|
127
128
|
Formatron::LOG.info do
|
128
|
-
"Delete Chef configuration for node: #{
|
129
|
+
"Delete Chef configuration for node: #{guid}"
|
129
130
|
end
|
130
|
-
@knife.delete_node node:
|
131
|
-
@knife.delete_client client:
|
132
|
-
@knife.delete_environment environment:
|
131
|
+
@knife.delete_node node: guid
|
132
|
+
@knife.delete_client client: guid
|
133
|
+
@knife.delete_environment environment: guid
|
133
134
|
end
|
134
135
|
|
135
136
|
def unlink
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'formatron/generators/util'
|
2
|
+
|
3
|
+
class Formatron
|
4
|
+
class CLI
|
5
|
+
module Generators
|
6
|
+
# CLI command for databag secret generator
|
7
|
+
module DatabagSecret
|
8
|
+
def databag_secret_action(c)
|
9
|
+
c.action do |_args, _options|
|
10
|
+
puts Formatron::Generators::Util.databag_secret
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def databag_secret_formatron_command
|
15
|
+
command :'generate data bag secret' do |c|
|
16
|
+
c.syntax = 'formatron generate data bag secret [options]'
|
17
|
+
c.summary = 'Generate a random data bag secret'
|
18
|
+
c.description = 'Generate a random data bag secret'
|
19
|
+
databag_secret_action c
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'formatron/generators/util'
|
2
|
+
|
3
|
+
class Formatron
|
4
|
+
class CLI
|
5
|
+
module Generators
|
6
|
+
# CLI command for GUID generator
|
7
|
+
module GUID
|
8
|
+
def guid_action(c)
|
9
|
+
c.action do |_args, _options|
|
10
|
+
puts Formatron::Generators::Util.guid
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def guid_formatron_command
|
15
|
+
command :'generate guid' do |c|
|
16
|
+
c.syntax = 'formatron generate guid [options]'
|
17
|
+
c.summary = 'Generate a random GUID'
|
18
|
+
c.description = 'Generate a random GUID'
|
19
|
+
guid_action c
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -6,6 +6,8 @@ class Formatron
|
|
6
6
|
# Generates CloudFormation template EC2 resources
|
7
7
|
# rubocop:disable Metrics/ModuleLength
|
8
8
|
module EC2
|
9
|
+
BLOCK_DEVICE_MAPPINGS = :BlockDeviceMappings
|
10
|
+
|
9
11
|
def self.vpc(cidr:)
|
10
12
|
{
|
11
13
|
Type: 'AWS::EC2::VPC',
|
@@ -232,6 +234,42 @@ class Formatron
|
|
232
234
|
end
|
233
235
|
# rubocop:enable Metrics/MethodLength
|
234
236
|
|
237
|
+
def self.block_device_mapping(device:, size:, type:, iops:)
|
238
|
+
mapping = {
|
239
|
+
DeviceName: device,
|
240
|
+
Ebs: {
|
241
|
+
VolumeSize: size
|
242
|
+
}
|
243
|
+
}
|
244
|
+
mapping[:Ebs][:VolumeType] = type unless type.nil?
|
245
|
+
mapping[:Ebs][:Iops] = iops unless iops.nil?
|
246
|
+
mapping
|
247
|
+
end
|
248
|
+
|
249
|
+
def self.volume(size:, type:, iops:, availability_zone:)
|
250
|
+
volume = {
|
251
|
+
Type: 'AWS::EC2::Volume',
|
252
|
+
Properties: {
|
253
|
+
AvailabilityZone: availability_zone,
|
254
|
+
Size: size
|
255
|
+
}
|
256
|
+
}
|
257
|
+
volume[:Properties][:VolumeType] = type unless type.nil?
|
258
|
+
volume[:Properties][:Iops] = iops unless iops.nil?
|
259
|
+
volume
|
260
|
+
end
|
261
|
+
|
262
|
+
def self.volume_attachment(device:, instance:, volume:)
|
263
|
+
{
|
264
|
+
Type: 'AWS::EC2::VolumeAttachment',
|
265
|
+
Properties: {
|
266
|
+
Device: device,
|
267
|
+
InstanceId: Template.ref(instance),
|
268
|
+
VolumeId: Template.ref(volume)
|
269
|
+
}
|
270
|
+
}
|
271
|
+
end
|
272
|
+
|
235
273
|
# rubocop:disable Metrics/MethodLength
|
236
274
|
# rubocop:disable Metrics/ParameterLists
|
237
275
|
# rubocop:disable Metrics/AbcSize
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'formatron/cloud_formation/resources/ec2'
|
2
|
+
|
3
|
+
class Formatron
|
4
|
+
module CloudFormation
|
5
|
+
class Template
|
6
|
+
class VPC
|
7
|
+
class Subnet
|
8
|
+
class Instance
|
9
|
+
# Adds block device mappings to an instance
|
10
|
+
class BlockDevices
|
11
|
+
def initialize(block_devices:)
|
12
|
+
@block_devices = block_devices
|
13
|
+
end
|
14
|
+
|
15
|
+
# rubocop:disable Metrics/MethodLength
|
16
|
+
def merge(properties:)
|
17
|
+
return if @block_devices.length == 0
|
18
|
+
block_device_mappings = @block_devices.map do |block_device|
|
19
|
+
Resources::EC2.block_device_mapping(
|
20
|
+
device: block_device.device,
|
21
|
+
size: block_device.size,
|
22
|
+
type: block_device.type,
|
23
|
+
iops: block_device.iops
|
24
|
+
)
|
25
|
+
end
|
26
|
+
properties[Resources::EC2::BLOCK_DEVICE_MAPPINGS] =
|
27
|
+
block_device_mappings
|
28
|
+
end
|
29
|
+
# rubocop:enable Metrics/MethodLength
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -5,6 +5,7 @@ require 'formatron/cloud_formation/resources/route53'
|
|
5
5
|
require_relative 'instance/policy'
|
6
6
|
require_relative 'instance/security_group'
|
7
7
|
require_relative 'instance/setup'
|
8
|
+
require_relative 'instance/block_devices'
|
8
9
|
|
9
10
|
class Formatron
|
10
11
|
module CloudFormation
|
@@ -21,6 +22,9 @@ class Formatron
|
|
21
22
|
WAIT_CONDITION_PREFIX = 'waitCondition'
|
22
23
|
PRIVATE_RECORD_SET_PREFIX = 'privateRecordSet'
|
23
24
|
PUBLIC_RECORD_SET_PREFIX = 'publicRecordSet'
|
25
|
+
PUBLIC_ALIAS_RECORD_SET_PREFIX = 'publicAliasRecordSet'
|
26
|
+
VOLUME_PREFIX = 'volume'
|
27
|
+
VOLUME_ATTACHMENT_PREFIX = 'volumeAttachment'
|
24
28
|
|
25
29
|
# rubocop:disable Metrics/MethodLength
|
26
30
|
# rubocop:disable Metrics/AbcSize
|
@@ -43,6 +47,7 @@ class Formatron
|
|
43
47
|
@instance = instance
|
44
48
|
@guid = @instance.guid
|
45
49
|
@setup = @instance.setup
|
50
|
+
@block_devices = @instance.block_device
|
46
51
|
@instance_id = "#{INSTANCE_PREFIX}#{@guid}"
|
47
52
|
@role_id = "#{ROLE_PREFIX}#{@guid}"
|
48
53
|
@instance_profile_id = "#{INSTANCE_PROFILE_PREFIX}#{@guid}"
|
@@ -73,6 +78,8 @@ class Formatron
|
|
73
78
|
"#{PRIVATE_RECORD_SET_PREFIX}#{@guid}"
|
74
79
|
@public_record_set_id =
|
75
80
|
"#{PUBLIC_RECORD_SET_PREFIX}#{@guid}"
|
81
|
+
@public_aliases = @instance.public_alias
|
82
|
+
@volumes = @instance.volume
|
76
83
|
@bucket = bucket
|
77
84
|
@name = name
|
78
85
|
@target = target
|
@@ -125,6 +132,10 @@ class Formatron
|
|
125
132
|
hosted_zone_name: @hosted_zone_name
|
126
133
|
)
|
127
134
|
setup.merge instance: instance
|
135
|
+
block_devices = BlockDevices.new(
|
136
|
+
block_devices: @block_devices
|
137
|
+
)
|
138
|
+
block_devices.merge properties: instance[:Properties]
|
128
139
|
resources[@instance_id] = instance
|
129
140
|
outputs[@instance_id] = Template.output(
|
130
141
|
Template.ref(@instance_id)
|
@@ -150,9 +161,55 @@ class Formatron
|
|
150
161
|
instance: @instance_id,
|
151
162
|
attribute: 'PublicIp'
|
152
163
|
) unless @public_hosted_zone_id.nil?
|
164
|
+
_add_public_aliases resources unless @public_hosted_zone_id.nil?
|
165
|
+
_add_volumes resources
|
153
166
|
end
|
154
167
|
# rubocop:enable Metrics/AbcSize
|
155
168
|
# rubocop:enable Metrics/MethodLength
|
169
|
+
|
170
|
+
# rubocop:disable Metrics/MethodLength
|
171
|
+
def _add_public_aliases(resources)
|
172
|
+
@public_aliases.each_index do |index|
|
173
|
+
sub_domain = @public_aliases[index]
|
174
|
+
logical_id = "#{PUBLIC_ALIAS_RECORD_SET_PREFIX}#{index}#{@guid}"
|
175
|
+
resources[logical_id] = Resources::Route53.record_set(
|
176
|
+
hosted_zone_id: @public_hosted_zone_id,
|
177
|
+
sub_domain: sub_domain,
|
178
|
+
hosted_zone_name: @hosted_zone_name,
|
179
|
+
instance: @instance_id,
|
180
|
+
attribute: 'PublicIp'
|
181
|
+
)
|
182
|
+
end
|
183
|
+
end
|
184
|
+
# rubocop:enable Metrics/MethodLength
|
185
|
+
|
186
|
+
# rubocop:disable Metrics/MethodLength
|
187
|
+
def _add_volumes(resources)
|
188
|
+
@volumes.each_index do |index|
|
189
|
+
volume = @volumes[index]
|
190
|
+
volume_id = "#{VOLUME_PREFIX}#{index}#{@guid}"
|
191
|
+
volume_attachment_id =
|
192
|
+
"#{VOLUME_ATTACHMENT_PREFIX}#{index}#{@guid}"
|
193
|
+
resources[volume_id] = Resources::EC2.volume(
|
194
|
+
availability_zone: @availability_zone,
|
195
|
+
size: volume.size,
|
196
|
+
type: volume.type,
|
197
|
+
iops: volume.iops
|
198
|
+
)
|
199
|
+
resources[volume_attachment_id] =
|
200
|
+
Resources::EC2.volume_attachment(
|
201
|
+
device: volume.device,
|
202
|
+
instance: "#{INSTANCE_PREFIX}#{@guid}",
|
203
|
+
volume: volume_id
|
204
|
+
)
|
205
|
+
end
|
206
|
+
end
|
207
|
+
# rubocop:enable Metrics/MethodLength
|
208
|
+
|
209
|
+
private(
|
210
|
+
:_add_public_aliases,
|
211
|
+
:_add_volumes
|
212
|
+
)
|
156
213
|
end
|
157
214
|
# rubocop:enable Metrics/ClassLength
|
158
215
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'formatron/util/dsl'
|
2
|
+
|
3
|
+
class Formatron
|
4
|
+
class DSL
|
5
|
+
class Formatron
|
6
|
+
class VPC
|
7
|
+
class Subnet
|
8
|
+
class Instance
|
9
|
+
# Instance block device mappings
|
10
|
+
class BlockDevice
|
11
|
+
extend Util::DSL
|
12
|
+
dsl_initialize_block
|
13
|
+
dsl_property :device
|
14
|
+
dsl_property :size
|
15
|
+
dsl_property :type
|
16
|
+
dsl_property :iops
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'formatron/util/dsl'
|
2
|
+
|
3
|
+
class Formatron
|
4
|
+
class DSL
|
5
|
+
class Formatron
|
6
|
+
class VPC
|
7
|
+
class Subnet
|
8
|
+
class Instance
|
9
|
+
# Instance volume attachments
|
10
|
+
class Volume
|
11
|
+
extend Util::DSL
|
12
|
+
dsl_initialize_block
|
13
|
+
dsl_property :device
|
14
|
+
dsl_property :size
|
15
|
+
dsl_property :type
|
16
|
+
dsl_property :iops
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -2,6 +2,8 @@ require_relative 'instance/chef'
|
|
2
2
|
require_relative 'instance/policy'
|
3
3
|
require_relative 'instance/security_group'
|
4
4
|
require_relative 'instance/setup'
|
5
|
+
require_relative 'instance/volume'
|
6
|
+
require_relative 'instance/block_device'
|
5
7
|
require 'formatron/util/dsl'
|
6
8
|
|
7
9
|
class Formatron
|
@@ -15,12 +17,15 @@ class Formatron
|
|
15
17
|
dsl_initialize_hash
|
16
18
|
dsl_property :guid
|
17
19
|
dsl_property :sub_domain
|
20
|
+
dsl_array :public_alias
|
18
21
|
dsl_property :source_dest_check
|
19
22
|
dsl_property :instance_type
|
20
23
|
dsl_block :chef, 'Chef'
|
21
24
|
dsl_block :policy, 'Policy'
|
22
25
|
dsl_block :security_group, 'SecurityGroup'
|
23
26
|
dsl_block :setup, 'Setup'
|
27
|
+
dsl_block_array :volume, 'Volume'
|
28
|
+
dsl_block_array :block_device, 'BlockDevice'
|
24
29
|
end
|
25
30
|
end
|
26
31
|
end
|
data/lib/formatron/version.rb
CHANGED
data/lib/formatron.rb
CHANGED
@@ -159,7 +159,8 @@ class Formatron
|
|
159
159
|
cookbook = dsl_chef.cookbook
|
160
160
|
bastion = dsl_chef.bastion
|
161
161
|
sub_domain = instance.sub_domain
|
162
|
-
|
162
|
+
guid = instance.guid
|
163
|
+
_provision_instance chef, cookbook, sub_domain, guid, bastion
|
163
164
|
end
|
164
165
|
ensure
|
165
166
|
chef_clients.unlink
|
@@ -167,9 +168,10 @@ class Formatron
|
|
167
168
|
# rubocop:enable Metrics/AbcSize
|
168
169
|
# rubocop:enable Metrics/MethodLength
|
169
170
|
|
170
|
-
def _provision_instance(chef, cookbook, sub_domain, bastion)
|
171
|
+
def _provision_instance(chef, cookbook, sub_domain, guid, bastion)
|
171
172
|
chef.provision(
|
172
173
|
sub_domain: sub_domain,
|
174
|
+
guid: guid,
|
173
175
|
cookbook: cookbook,
|
174
176
|
bastion: bastion
|
175
177
|
)
|
@@ -319,8 +321,8 @@ class Formatron
|
|
319
321
|
dsl_chef = instance.chef
|
320
322
|
next if dsl_chef.nil?
|
321
323
|
chef = chef_clients.get dsl_chef.server
|
322
|
-
|
323
|
-
_destroy_chef_instance chef,
|
324
|
+
guid = instance.guid
|
325
|
+
_destroy_chef_instance chef, guid
|
324
326
|
end
|
325
327
|
rescue => error
|
326
328
|
LOG.warn error
|
@@ -329,9 +331,9 @@ class Formatron
|
|
329
331
|
end
|
330
332
|
# rubocop:enable Metrics/MethodLength
|
331
333
|
|
332
|
-
def _destroy_chef_instance(chef,
|
334
|
+
def _destroy_chef_instance(chef, guid)
|
333
335
|
chef.destroy(
|
334
|
-
|
336
|
+
guid: guid
|
335
337
|
)
|
336
338
|
rescue => error
|
337
339
|
LOG.warn error
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: formatron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Halliday
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -314,6 +314,8 @@ files:
|
|
314
314
|
- lib/formatron/cli/destroy.rb
|
315
315
|
- lib/formatron/cli/generators/bootstrap.rb
|
316
316
|
- lib/formatron/cli/generators/credentials.rb
|
317
|
+
- lib/formatron/cli/generators/databag_secret.rb
|
318
|
+
- lib/formatron/cli/generators/guid.rb
|
317
319
|
- lib/formatron/cli/generators/instance.rb
|
318
320
|
- lib/formatron/cli/provision.rb
|
319
321
|
- lib/formatron/cloud_formation.rb
|
@@ -330,6 +332,7 @@ files:
|
|
330
332
|
- lib/formatron/cloud_formation/template/vpc/subnet/bastion.rb
|
331
333
|
- lib/formatron/cloud_formation/template/vpc/subnet/chef_server.rb
|
332
334
|
- lib/formatron/cloud_formation/template/vpc/subnet/instance.rb
|
335
|
+
- lib/formatron/cloud_formation/template/vpc/subnet/instance/block_devices.rb
|
333
336
|
- lib/formatron/cloud_formation/template/vpc/subnet/instance/policy.rb
|
334
337
|
- lib/formatron/cloud_formation/template/vpc/subnet/instance/security_group.rb
|
335
338
|
- lib/formatron/cloud_formation/template/vpc/subnet/instance/setup.rb
|
@@ -348,12 +351,14 @@ files:
|
|
348
351
|
- lib/formatron/dsl/formatron/vpc/subnet/chef_server.rb
|
349
352
|
- lib/formatron/dsl/formatron/vpc/subnet/chef_server/organization.rb
|
350
353
|
- lib/formatron/dsl/formatron/vpc/subnet/instance.rb
|
354
|
+
- lib/formatron/dsl/formatron/vpc/subnet/instance/block_device.rb
|
351
355
|
- lib/formatron/dsl/formatron/vpc/subnet/instance/chef.rb
|
352
356
|
- lib/formatron/dsl/formatron/vpc/subnet/instance/policy.rb
|
353
357
|
- lib/formatron/dsl/formatron/vpc/subnet/instance/policy/statement.rb
|
354
358
|
- lib/formatron/dsl/formatron/vpc/subnet/instance/security_group.rb
|
355
359
|
- lib/formatron/dsl/formatron/vpc/subnet/instance/setup.rb
|
356
360
|
- lib/formatron/dsl/formatron/vpc/subnet/instance/setup/variable.rb
|
361
|
+
- lib/formatron/dsl/formatron/vpc/subnet/instance/volume.rb
|
357
362
|
- lib/formatron/external.rb
|
358
363
|
- lib/formatron/external/dsl.rb
|
359
364
|
- lib/formatron/external/outputs.rb
|