cfndk 0.0.2 → 0.0.3

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
  SHA1:
3
- metadata.gz: dddd69205f95f5871c77ab744edfa46723ec66c6
4
- data.tar.gz: 156d7878eb40e490faaa63ee5a1f2db4b737629c
3
+ metadata.gz: 32c22522a1cc1e7dfc9ca0aba8493db5f8db8eb8
4
+ data.tar.gz: 769e02185ab86037a82889853ecfd93c3a3f912a
5
5
  SHA512:
6
- metadata.gz: 32f60b2829d35017e6fbea00d41ad4cd0637572b01b32f9892d7a47a29350fbf339b4ea054b23f002cf38b3765e89801e1af3572b6fc12d285a6925d28928d0a
7
- data.tar.gz: 3ca54f445be5345cb62f0873a3cd8e2638bafad5dc2e0bbc25f36425e4d1457675e4ad5b78703af19aa47ff9aeca430d08b4f1989771b69756b76e599a0d0215
6
+ metadata.gz: 0d53377bb67a1f2b93a161353172b9984ec462f3ea430867b69ccd88cac81e237d4832fc247f6c7e83f16481636e45e79f9f6c80c7d95ea7e8adc6b6ffd10627
7
+ data.tar.gz: 891db997bc6e5c174592f4fc6c98cd8b54572422417244ba7789b5d15228fba9dc0fd8cdc5e8429f3042725c27de88aa5f398de98469c40a9966fbb8d8721003
data/.gitignore CHANGED
@@ -7,6 +7,7 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /sample/key/*.pem
10
11
  *.bundle
11
12
  *.so
12
13
  *.o
data/README.md CHANGED
@@ -1,8 +1,21 @@
1
1
  # AWS CloudFormation Development Kit
2
2
 
3
3
  This is easy operation/integration support tool for AWS CloudFormation.
4
+
4
5
  このツールは、AWS CloudFromationのための簡単な運用/構築サポートツールです。
5
6
 
7
+ kumogata, SparkleFormation, CoffeeFormation など、CloudFormationのテンプレートを書かずにDSLで表現するツールには様々な物があります。
8
+ しかし、これらのツールはサードパーティツールであるため、CloudFormationの対応への追従に不安がのこります。
9
+ 本ツールは、標準のCloudFromationテンプレートの枠組みを変えずに、その利用を支援するツールとなっています。
10
+ 最悪このツールが使えなくなっても僅かなコストで標準のAWS CLIを使ってオペレーションを続行することが可能です。
11
+
12
+ ## ハイライト
13
+
14
+ * 複数のスタックをワンコマンドで作成/更新/削除
15
+ * 複数のスタックの依存関係を考慮した操作
16
+ * CloudFormationでバージョンコントロールシステムと連動した継続的インテグレーションのための基盤対応
17
+ * Keypairの作成/削除
18
+
6
19
  ## インストール
7
20
 
8
21
  ```
@@ -32,7 +45,7 @@ cfndk [cmd] [options]
32
45
 
33
46
  ### [cmd]
34
47
 
35
- #### 初期化
48
+ #### ```init```
36
49
 
37
50
  カレントディレクトリにcfndk.yamlのひな形を作成します。
38
51
 
@@ -40,7 +53,7 @@ cfndk [cmd] [options]
40
53
  cfndk init [option]
41
54
  ```
42
55
 
43
- #### スタックの作成
56
+ #### ```create```
44
57
 
45
58
  cfndk.yamlで定義されているスタックを作成します。
46
59
 
@@ -48,7 +61,7 @@ cfndk.yamlで定義されているスタックを作成します。
48
61
  cfndk create [option]
49
62
  ```
50
63
 
51
- #### スタック更新
64
+ #### ```update```
52
65
 
53
66
  cfndk.yamlで定義されているスタックを更新します。
54
67
 
@@ -56,17 +69,17 @@ cfndk.yamlで定義されているスタックを更新します。
56
69
  cfndk update [option]
57
70
  ```
58
71
 
59
- #### スタックの作成、changeset作成
72
+ #### ```create-or-changeset```
60
73
 
61
74
  cfndk.yamlで定義されているスタックが存在しない場合は作成を、存在する場合はチェンジセットを作成します。
62
75
  チェンジセットの実行は行いません。
63
76
  コマンドを実行後に手動で実行する必要があります。
64
77
 
65
78
  ```
66
- cfndk create-or-changeset [option]
79
+ cfndk create-or-changeset [option]
67
80
  ```
68
81
 
69
- #### スタックの破壊
82
+ #### ```destroy```
70
83
 
71
84
  cfndk.yamlで定義されているスタックを削除します。
72
85
 
@@ -74,7 +87,7 @@ cfndk.yamlで定義されているスタックを削除します。
74
87
  cfndk destroy [option]
75
88
  ```
76
89
 
77
- #### UUIDの生成
90
+ #### ```generate-uuid```
78
91
 
79
92
  UUIDを生成して標準出力に出力します。
80
93
 
@@ -88,9 +101,14 @@ cfndk generate-uuid
88
101
  export CFNDK_UUID=`cfndk generate-uuid`
89
102
  cfndk create
90
103
  cfndk destroy
104
+ unset CFNDK_UUID
91
105
  ```
92
106
 
93
- #### スタックのイベントのレポート
107
+ #### ```validate```
108
+
109
+ cfndk.yamlで定義されているスタックのテンプレートをvalidationします。
110
+
111
+ #### ```report-event```
94
112
 
95
113
  cfndk.yamlで定義されているスタックのイベント情報をレポートします。
96
114
 
@@ -98,7 +116,7 @@ cfndk.yamlで定義されているスタックのイベント情報をレポー
98
116
  cfndk report-event [option]
99
117
  ```
100
118
 
101
- #### スタックのスタックのレポート
119
+ #### ```report-stack```
102
120
 
103
121
  cfndk.yamlで定義されているスタックの情報をレポートします。
104
122
 
@@ -106,7 +124,7 @@ cfndk.yamlで定義されているスタックの情報をレポートします
106
124
  cfndk report-stack [option]
107
125
  ```
108
126
 
109
- #### スタックのスタックリソースのレポート
127
+ #### ```report-stack-resource```
110
128
 
111
129
  cfndk.yamlで定義されているスタックのリソース情報をレポートします。
112
130
 
@@ -116,27 +134,27 @@ cfndk report-stack-resource [option]
116
134
 
117
135
  ### [option]
118
136
 
119
- #### -v --verbose
137
+ #### ```-v --verbose```
120
138
 
121
139
  実行時に詳細な情報を表示します。
122
140
 
123
- #### -c, --config_path <cfndi.yml>
141
+ #### ```-c, --config_path <cfndi.yml>```
124
142
 
125
143
  カレントディレクトリのcfndi.ymlの代わりに、ファイルを指定します。
126
144
 
127
- #### -p, --properties <name>=<value>
145
+ #### ```-p, --properties <name>=<value>```
128
146
 
129
147
  プロパティを追加します。
130
- cfndi.ymlのparametersの値で参照することができます。
148
+ cfndi.ymlのparametersのerb内で値で参照することができます。
131
149
 
132
- #### -a, --auto-uuid
150
+ #### ```-a, --auto-uuid```
133
151
 
134
152
  UUIDを自動生成し使用します。
135
153
  UUIDが指定されるとスタック名に付加されます。
136
154
  またcfndi.ymlのparametersの値で参照することができます。
137
155
  ```-a```と```-u```は最後に指定されたものが有効になります。
138
156
 
139
- #### -u, --uuid <uuid>
157
+ #### ```-u, --uuid <uuid>```
140
158
 
141
159
  指定されたUUIDを使用します。
142
160
  UUIDが指定されるとスタック名に付加されます。
@@ -146,7 +164,7 @@ UUIDが指定されるとスタック名に付加されます。
146
164
 
147
165
  ## 環境変数
148
166
 
149
- ### CFNDK_UUID
167
+ ### ```CFNDK_UUID```
150
168
 
151
169
  この環境変数が指定されている場合、```--uuid $CFNDK_UUID```が指定されたものとして動作します。
152
170
  ```-a```や```-u```のほうが優先されます。
@@ -157,10 +175,19 @@ UUIDが指定されるとスタック名に付加されます。
157
175
  * example
158
176
 
159
177
  ```
178
+ keypairs:
179
+ Key1:
180
+ Key2:
181
+ key_file: key/key2<%= append_uuid %>.pem
160
182
  stacks:
183
+ Stack1:
184
+ template_file: stack1/stack1.yaml
185
+ parameter_input: stack1/env.json
186
+ parameters:
187
+ VpcName: Prod<%= append_uuid %>
161
188
  Stack2:
162
189
  template_file: stack2/stack2.yaml
163
- parameter_input: stacn2/env.json
190
+ parameter_input: stack2/env.json
164
191
  parameters:
165
192
  VpcName: Prod<%= append_uuid %>
166
193
  capabilities:
@@ -172,6 +199,9 @@ stacks:
172
199
  ```
173
200
 
174
201
  ```
202
+ keypairs:
203
+ [String]:
204
+ key_file: [String]
175
205
  stacks:
176
206
  [String]:
177
207
  template_file: [String]
@@ -188,6 +218,30 @@ stacks:
188
218
  - [String]
189
219
  ```
190
220
 
221
+ ### ```keypairs:```
222
+
223
+ ```
224
+ keypairs:
225
+ [keypair Original Name]:
226
+ ```
227
+
228
+ cfndkで管理するキーペアを定義します。
229
+ キーペアの配下には、管理するキーペアのオリジナル名を定義します。
230
+ 通常は、キーペアを作成するとこの名称が利用されます。
231
+ UUIDを利用すると、```[Keypair Original Name]-[UUID]```のような形式のキーペア名が利用されます。
232
+
233
+ #### key_file
234
+
235
+ キーペア作成時にキーペアのファイルを指定された相対パスに作成します。
236
+ 同名のファイルがある場合は上書きするので注意が必要です。
237
+
238
+ erbの記法が利用できます。
239
+
240
+ ```
241
+ key_file: key/key<%= append_uuid %>.pem
242
+ ```
243
+
244
+
191
245
  ### ```stacks:```
192
246
 
193
247
  ```
@@ -206,7 +260,7 @@ UUIDを利用すると、```[Stack Original Name]-[UUID]```のような形式の
206
260
 
207
261
  #### parameter_input
208
262
 
209
- 必須。CloudFormationのパラメータJSONcfndk.yamlからの相対パスで指定します。
263
+ 必須。CloudFormationのパラメータJSONファイルをcfndk.yamlからの相対パスで指定します。
210
264
 
211
265
  #### parameters
212
266
 
@@ -226,23 +280,6 @@ Parameter Valueではerbの記法が利用できます。
226
280
  VpcName: Prod<%= append_uuid %>
227
281
  ```
228
282
 
229
- ##### parametrsのerbで使用できるメソッド
230
-
231
- * ```append_uuid(glue='-')```
232
-
233
- UUIDガ指定されている場合、```[glueの文字列] + [UUID]```を返します。
234
- UUIDが指定されてい無い場合は空文字が返ります。
235
- glueで接続文字を置き換えることができます。
236
-
237
- * ```uuid```
238
-
239
- UUIDを返します。
240
- UUIDが指定されてい無い場合は空文字が返ります。
241
-
242
- * ```properties(key)```
243
-
244
- オプション```--properties```で指定したキーに対応する値を参照することができます。
245
-
246
283
  #### capabilities
247
284
 
248
285
  スタックを操作するcapabilitiesを指定します。
@@ -283,6 +320,19 @@ dependsが循環するような指定をすることはできません。
283
320
  ```
284
321
 
285
322
 
323
+ ### erbで使用できるメソッド
286
324
 
325
+ * ```append_uuid(glue='-')```
326
+
327
+ UUIDガ指定されている場合、```[glueの文字列] + [UUID]```を返します。
328
+ UUIDが指定されてい無い場合は空文字が返ります。
329
+ glueで接続文字を置き換えることができます。
330
+
331
+ * ```uuid```
332
+
333
+ UUIDを返します。
334
+ UUIDが指定されてい無い場合は空文字が返ります。
287
335
 
336
+ * ```properties(key)```
288
337
 
338
+ オプション```--properties```で指定したキーに対応する値を参照することができます。
data/bin/cfndk CHANGED
@@ -15,6 +15,8 @@ require 'securerandom'
15
15
 
16
16
  require 'cfndk.rb'
17
17
 
18
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
19
+
18
20
  cur_dir = Dir.getwd
19
21
 
20
22
  option = {
@@ -67,24 +69,30 @@ if ARGV.length != 1
67
69
  elsif ARGV[0] == 'generate-uuid'
68
70
  puts SecureRandom.uuid
69
71
  exit 0
72
+ elsif ARGV[0] == 'init'
73
+ if File.file?(option[:config_path])
74
+ puts "File exist. #{option[:config_path]}".color :red
75
+ exit 1
76
+ end
77
+ puts 'init...'.color :green
78
+ FileUtils.cp_r(Dir.glob(File.dirname(__FILE__) + '/../skel/*'), './')
79
+ puts "create #{option[:config_path]}".color :green
80
+ exit 0
70
81
  end
71
82
 
72
- unless File.file?(option[:config_path]) || ARGV[0] == 'init'
83
+ unless File.file?(option[:config_path])
73
84
  puts "File does not exist. #{option[:config_path]}".color :red
74
85
  exit 1
75
86
  end
76
87
 
77
- $LOAD_PATH.unshift "#{cur_dir}/lib"
78
- $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
79
-
80
- data = open(option[:config_path], 'r') { |f| YAML.load(f) } if File.file?(option[:config_path]) && ARGV[0] != 'init'
81
-
88
+ data = open(option[:config_path], 'r') { |f| YAML.load(f) } if File.file?(option[:config_path])
82
89
  credentials = CFnDK::CredentialProviderChain.new.resolve
83
- client = Aws::CloudFormation::Client.new(credentials: credentials)
84
- stacks = CFnDK::Stacks.new(data, option, client)
90
+ stacks = CFnDK::Stacks.new(data, option, credentials)
91
+ keypairs = CFnDK::KeyPairs.new(data, option, credentials)
85
92
 
86
93
  if ARGV[0] == 'create'
87
94
  puts 'create...'.color :green
95
+ keypairs.create
88
96
  stacks.create
89
97
  elsif ARGV[0] == 'update'
90
98
  puts 'update...'.color :green
@@ -95,6 +103,10 @@ elsif ARGV[0] == 'create-or-changeset'
95
103
  elsif ARGV[0] == 'destroy'
96
104
  puts 'destroy...'.color :green
97
105
  stacks.destroy
106
+ keypairs.destroy
107
+ elsif ARGV[0] == 'validate'
108
+ puts 'validate...'.color :green
109
+ stacks.validate
98
110
  elsif ARGV[0] == 'report-event'
99
111
  puts 'report event...'.color :green
100
112
  stacks.report_event
@@ -104,14 +116,6 @@ elsif ARGV[0] == 'report-stack'
104
116
  elsif ARGV[0] == 'report-stack-resource'
105
117
  puts 'report stack resource...'.color :green
106
118
  stacks.report_stack_resource
107
- elsif ARGV[0] == 'init'
108
- if File.file?(option[:config_path])
109
- puts "File exist. #{option[:config_path]}".color :red
110
- exit 1
111
- end
112
- puts 'init...'.color :green
113
- FileUtils.cp_r(Dir.glob(File.dirname(__FILE__) + '/../skel/*'), './')
114
- puts "create #{option[:config_path]}".color :green
115
119
  else
116
120
  puts opt.help
117
121
  exit 1
@@ -1,5 +1,5 @@
1
1
  module CFnDK
2
- class ParameterString
2
+ class ErbString
3
3
  attr_reader :uuid, :properties
4
4
  def initialize(str, option)
5
5
  @erb = ERB.new(str, nil, '-')
@@ -0,0 +1,44 @@
1
+ module CFnDK
2
+ class KeyPair
3
+ attr_reader :key_file
4
+ def initialize(name, data, option, credentials)
5
+ @name = name
6
+ @key_file = nil
7
+ @key_file = data['key_file'] || nil if data
8
+ @option = option
9
+ @client = Aws::EC2::Client.new(credentials: credentials)
10
+ end
11
+
12
+ def create
13
+ puts(('creating keypair: ' + name).color(:green))
14
+ key_pair = @client.create_key_pair(
15
+ key_name: name
16
+ )
17
+ puts(('created keypair: ' + name).color(:green))
18
+
19
+ create_key_file(key_pair)
20
+ end
21
+
22
+ def destroy
23
+ puts(('deleting keypair: ' + name).color(:green))
24
+ @client.delete_key_pair(
25
+ key_name: name
26
+ )
27
+ puts(('deleted keypair: ' + name).color(:green))
28
+ end
29
+
30
+ def name
31
+ [@name, @option[:uuid]].compact.join('-')
32
+ end
33
+
34
+ private
35
+
36
+ def create_key_file key_pair
37
+ return unless @key_file
38
+ key_file = CFnDK::ErbString.new(@key_file, @option).value
39
+ puts(('create key file: ' + key_file).color(:green))
40
+ File.write(key_file, key_pair.key_material)
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,27 @@
1
+ module CFnDK
2
+ class KeyPairs
3
+ def initialize(data, option, credentials)
4
+ @option = option
5
+ @credentials = credentials
6
+ prepare_keypairs(data)
7
+ end
8
+
9
+ def create
10
+ @keypairs.each_value(&:create)
11
+ end
12
+
13
+ def destroy
14
+ @keypairs.each_value(&:destroy)
15
+ end
16
+
17
+ private
18
+
19
+ def prepare_keypairs(data)
20
+ @keypairs = {}
21
+ return unless data['keypairs']
22
+ data['keypairs'].each do |name, properties|
23
+ @keypairs[name] = KeyPair.new(name, properties, @option, @credentials)
24
+ end
25
+ end
26
+ end
27
+ end
data/lib/cfndk/stack.rb CHANGED
@@ -35,7 +35,7 @@ module CFnDK
35
35
 
36
36
  def eval_override_parameter(k, v)
37
37
  if @override_parameters[k]
38
- CFnDK::ParameterString.new(@override_parameters[k], @option).value
38
+ CFnDK::ErbString.new(@override_parameters[k], @option).value
39
39
  else
40
40
  v
41
41
  end
data/lib/cfndk/stacks.rb CHANGED
@@ -1,13 +1,14 @@
1
1
  module CFnDK
2
2
  class Stacks
3
- def initialize(data, option, cfn_client)
3
+ def initialize(data, option, credentials)
4
4
  @option = option
5
- @cfn_client = cfn_client
5
+ @cfn_client = Aws::CloudFormation::Client.new(credentials: credentials)
6
6
  create_stack data
7
7
  create_sequence
8
8
  end
9
9
 
10
10
  def create
11
+ validate
11
12
  @sequence.each do |stacks|
12
13
  stacks.each do |name|
13
14
  puts(('creating ' + name).color(:green))
@@ -40,6 +41,7 @@ module CFnDK
40
41
  end
41
42
 
42
43
  def update
44
+ validate
43
45
  @sequence.each do |stacks|
44
46
  updating_stacks = []
45
47
  stacks.each do |name|
@@ -71,6 +73,7 @@ module CFnDK
71
73
  end
72
74
 
73
75
  def create_or_changeset
76
+ validate
74
77
  @sequence.each do |stacks|
75
78
  create_stacks = []
76
79
  changeset_stacks = []
@@ -79,7 +82,7 @@ module CFnDK
79
82
  @cfn_client.describe_stacks(
80
83
  stack_name: @stacks[name].name
81
84
  )
82
- puts(('creating ' + name + @option[:uuid]).color(:green))
85
+ puts(('creating ' + name).color(:green))
83
86
  puts('Name :' + @stacks[name].name) if @option[:v]
84
87
  puts('Parametres :' + @stacks[name].parameters.inspect) if @option[:v]
85
88
  puts('Capabilities:' + @stacks[name].capabilities.inspect) if @option[:v]
@@ -88,7 +91,7 @@ module CFnDK
88
91
  template_body: @stacks[name].template_body,
89
92
  parameters: @stacks[name].parameters,
90
93
  capabilities: @stacks[name].capabilities,
91
- change_set_name: @stacks[name].name + @option[:uuid]
94
+ change_set_name: @stacks[name].name,
92
95
  )
93
96
  changeset_stacks.push name
94
97
  rescue Aws::CloudFormation::Errors::ValidationError
@@ -119,25 +122,25 @@ module CFnDK
119
122
  @cfn_client.wait_until(
120
123
  :change_set_create_complete,
121
124
  stack_name: @stacks[name].name,
122
- change_set_name: @stacks[name].name + @option[:uuid]
125
+ change_set_name: @stacks[name].name
123
126
  )
124
- puts(('created ' + @stacks[name].name + @option[:uuid]).color(:green))
127
+ puts(('created ' + @stacks[name].name).color(:green))
125
128
  rescue Aws::Waiters::Errors::FailureStateError => ex
126
129
  resp = @cfn_client.describe_change_set(
127
- change_set_name: @stacks[name].name + @option[:uuid],
128
- stack_name: @stacks[name].name
130
+ change_set_name: @stacks[name].name,
131
+ stack_name: @stacks[name].name,
129
132
  )
130
133
  if resp.status_reason != "The submitted information didn't contain changes. Submit different information to create a change set."
131
134
  puts ex.message.color :red
132
135
  raise ex
133
136
  else
134
- puts(('failed ' + @stacks[name].name + @option[:uuid]).color(:red))
137
+ puts(('failed ' + @stacks[name].name).color(:red))
135
138
  puts resp.status_reason
136
139
  @cfn_client.delete_change_set(
137
- change_set_name: @stacks[name].name + @option[:uuid],
138
- stack_name: @stacks[name].name
140
+ change_set_name: @stacks[name].name,
141
+ stack_name: @stacks[name].name,
139
142
  )
140
- puts(('deleted ' + @stacks[name].name + @option[:uuid]).color(:red))
143
+ puts(('deleted ' + @stacks[name].name).color(:red))
141
144
  end
142
145
  end
143
146
  end
@@ -279,6 +282,18 @@ module CFnDK
279
282
  end
280
283
  end
281
284
 
285
+ def validate
286
+ @sequence.each do |stacks|
287
+ stacks.each do |name|
288
+ puts(('validate ' + name).color(:green))
289
+ puts('Name :' + @stacks[name].name) if @option[:v]
290
+ @cfn_client.validate_template(
291
+ template_body: @stacks[name].template_body
292
+ )
293
+ end
294
+ end
295
+ end
296
+
282
297
  private
283
298
 
284
299
  def create_stack(data)
data/lib/cfndk/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CFnDK
2
- VERSION = '0.0.2'.freeze
2
+ VERSION = '0.0.3'.freeze
3
3
  end
data/lib/cfndk.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  require 'cfndk/version'
2
2
  require 'cfndk/stack'
3
3
  require 'cfndk/stacks'
4
- require 'cfndk/parameter_string'
4
+ require 'cfndk/key_pair'
5
+ require 'cfndk/key_pairs'
6
+ require 'cfndk/erb_string'
5
7
  require 'cfndk/credential_provider_chain'
6
8
 
7
9
  module CFnDK
data/sample/cfndk.yml CHANGED
@@ -1,12 +1,16 @@
1
+ keypairs:
2
+ CFnDKSampleKey:
3
+ CFnDKSampleKey2:
4
+ key_file: key/key2<%= append_uuid %>.pem
1
5
  stacks:
2
- Network:
3
- template_file: network/network.yaml
6
+ CFnDKSampleNetwork:
7
+ template_file: network/network.yaml
4
8
  parameter_input: network/prod.json
5
9
  parameters:
6
- VpcName: Prod<%= append_uuid %>
7
- InternalDnsName: prod<%= append_uuid %>.local
10
+ VpcName: Sample<%= append_uuid %>
11
+ InternalDnsName: sample<%= append_uuid %>.local
8
12
  timeout_in_minutes: 8
9
- Iam:
13
+ CFnDKSampleIam:
10
14
  template_file: iam/iam.yaml
11
15
  parameter_input: iam/prod.json
12
16
  parameters:
@@ -16,24 +20,32 @@ stacks:
16
20
  - CAPABILITY_IAM
17
21
  - CAPABILITY_NAMED_IAM
18
22
  timeout_in_minutes: 3
19
- Sg:
23
+ CFnDKSampleSg:
20
24
  template_file: sg/sg.yaml
21
25
  parameter_input: sg/prod.json
22
26
  parameters:
27
+ VpcName: Sample<%= append_uuid %>
23
28
  depends:
24
- - Network
25
- Web:
29
+ - CFnDKSampleNetwork
30
+ CFnDKSampleWeb:
26
31
  template_file: web/web.yaml
27
32
  parameter_input: web/prod.json
28
33
  parameters:
34
+ VpcName: Sample<%= append_uuid %>
35
+ InternalDnsName: sample<%= append_uuid %>.local
36
+ HostName1: web1<%= append_uuid %>
37
+ HostName2: web2<%= append_uuid %>
38
+ WebInstanceProfileName: WebInstanceProfile<%= append_uuid %>
39
+ KeyPair: CFnDKSampleKey<%= append_uuid %>
29
40
  depends:
30
- - Sg
31
- - Iam
41
+ - CFnDKSampleSg
42
+ - CFnDKSampleIam
32
43
  timeout_in_minutes: 2
33
- Db:
44
+ CFnDKSampleDb:
34
45
  template_file: db/db.yaml
35
46
  parameter_input: db/prod.json
36
47
  parameters:
48
+ VpcName: Sample<%= append_uuid %>
37
49
  depends:
38
- - Sg
50
+ - CFnDKSampleSg
39
51
  timeout_in_minutes: 30