cfndk 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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