aws-must 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +29 -20
  3. data/demo/0/root.mustache +13 -1
  4. data/demo/2/conf.yaml +1 -5
  5. data/demo/{8 → 2}/resources.mustache +6 -15
  6. data/demo/2/root.mustache +13 -54
  7. data/demo/2.old/conf.yaml +5 -0
  8. data/demo/2.old/root.mustache +85 -0
  9. data/demo/3/conf.yaml +18 -2
  10. data/demo/3/resource.mustache +27 -0
  11. data/demo/3/resourceInstance.mustache +32 -0
  12. data/demo/3/resources.mustache +9 -8
  13. data/demo/3/root.mustache +17 -17
  14. data/demo/4/conf.yaml +19 -14
  15. data/demo/{8 → 4}/output.mustache +1 -2
  16. data/demo/4/resource.mustache +1 -1
  17. data/demo/4/resourceInstance.mustache +10 -5
  18. data/demo/4/resourceSecurityGroup.mustache +37 -0
  19. data/demo/4/root.mustache +16 -9
  20. data/demo/5/conf.yaml +3 -4
  21. data/demo/{8 → 5}/mappings.mustache +0 -0
  22. data/demo/5/output.mustache +2 -1
  23. data/demo/5/resource.mustache +3 -0
  24. data/demo/5/resourceInstance.mustache +4 -4
  25. data/demo/5/resources.mustache +12 -2
  26. data/demo/5/root.mustache +42 -9
  27. data/demo/6/conf.yaml +27 -8
  28. data/demo/{8 → 6}/parameter.mustache +0 -0
  29. data/demo/6/resource.mustache +10 -1
  30. data/demo/6/resourceInstance.mustache +13 -3
  31. data/demo/{8 → 6}/resourceSecurityGroup.mustache +0 -0
  32. data/demo/6/root.mustache +48 -15
  33. data/demo/{8 → 6}/tag.mustache +0 -0
  34. data/demo/7/conf.yaml +8 -3
  35. data/demo/7/resourceInstance.mustache +5 -2
  36. data/demo/{8 → 7}/resourceInstanceChef.mustache +0 -0
  37. data/demo/7/root.mustache +11 -3
  38. data/lib/tasks/demo.rake +6 -7
  39. metadata +14 -13
  40. data/demo/8/conf.yaml +0 -61
  41. data/demo/8/resource.mustache +0 -38
  42. data/demo/8/resourceInstance.mustache +0 -50
  43. data/demo/8/root.mustache +0 -191
@@ -3,6 +3,8 @@
3
3
 
4
4
  ++start++
5
5
 
6
+
7
+
6
8
  ## <a id="resourceInstance.mustache"></a>resourceInstance.mustache <a class='navigator' href='#top'">[top]</a>
7
9
 
8
10
  Create an EC2 instance
@@ -10,13 +12,15 @@ Create an EC2 instance
10
12
  **Attributes**: context= `./resources/Instance`
11
13
 
12
14
  * `Name`: name of the EC2 instance to create
13
- * `ImageId`: AIM id to create
15
+ * `InstanceType` : The instance type, such as t2.micro.
14
16
 
15
17
  **Actions**:
16
18
 
19
+
17
20
  * **Name**: `Name`
18
21
  * **Type**: 'AWS::EC2::Instance'
19
22
  * **ImageId**: `ImageId`
23
+ * **SecurityGroups.Ref**: `SecurityGroup` if `SecurityGroup`
20
24
 
21
25
  ++close++
22
26
 
@@ -26,7 +30,8 @@ Create an EC2 instance
26
30
  "{{Name}}" : {
27
31
  "Type" : "AWS::EC2::Instance",
28
32
  "Properties" : {
29
- "ImageId" : "{{ImageId}}",
30
- "InstanceType" : "{{InstanceType}}"
31
- } {{! Propertites }}
32
- }{{_comma}}
33
+ "ImageId" : "{{ImageId}}"
34
+ , "InstanceType" : "{{InstanceType}}"
35
+ {{#SecurityGroup}}, "SecurityGroups" : [ { "Ref" : "{{SecurityGroup}}" } ]{{/SecurityGroup}}
36
+ }
37
+ }{{_comma}}
@@ -0,0 +1,37 @@
1
+ {{!
2
+
3
+
4
+ ++start++
5
+
6
+
7
+ ## <a id="resourceSecurityGroup.mustache"></a>resourceSecurityGroup.mustache <a class='navigator' href='#top'">[top]</a>
8
+
9
+ Create an EC2 Security Group
10
+
11
+ **Attributes**: context= `./resources/InstanceSecurityGroup`
12
+
13
+ * `Name` : of the security group
14
+ * `IngressCidrIp`: CIDR for to inbound traffic (ingress)
15
+
16
+ **Actions**:
17
+
18
+ * **Name**: `Name`
19
+ * **Type**: "AWS::EC2::SecurityGroup"
20
+ * **Properties.SecurityGroupIngress[0].CidrIp**: `IngressCidrIp`
21
+
22
+ ++close++
23
+
24
+ }}
25
+
26
+ "{{Name}}" : {
27
+ "Type" : "AWS::EC2::SecurityGroup",
28
+ "Properties" : {
29
+ "GroupDescription" : "Enable SSH access via port 22",
30
+ "SecurityGroupIngress" : [ {
31
+ "IpProtocol" : "tcp",
32
+ "FromPort" : "22",
33
+ "ToPort" : "22",
34
+ "CidrIp" : "{{IngressCidrIp}}"
35
+ } ]
36
+ }
37
+ }{{_comma}}
data/demo/4/root.mustache CHANGED
@@ -37,9 +37,10 @@ CONTENT section
37
37
 
38
38
  # <a id="top">aws-must demo 4 template</a>
39
39
 
40
- Creates a EC2 instances using YAML configuration defining `ImageId`
41
- (e.g. ami-00dae61d) and `InstanceType` (e.g. t2.micro).
42
-
40
+ Creates EC2 instances using YAML configuration defining `ImageId`
41
+ (e.g. ami-00dae61d) and `InstanceType` (e.g. t2.micro). Output
42
+ section contains references to InstanceId and PublicId of the newly
43
+ created EC2 instance.
43
44
 
44
45
  Supports only region `eu-central-1`. No ssh connection allowed by
45
46
  default.
@@ -49,6 +50,7 @@ default.
49
50
  * `InstanceType`: EC2 resource instance type, (default: t2.micro)
50
51
 
51
52
 
53
+
52
54
  ## Document Content
53
55
 
54
56
  This document is generated automically from `aws-must` -demo
@@ -68,25 +70,26 @@ each template, it
68
70
  * lists template actions, i.e. output from template, or template
69
71
  inclusion
70
72
 
71
- ## <a id="root.mustache"></a>root.mustache <a class='navigator' href='#top'">[top]</a>
72
-
73
73
 
74
- Root template
74
+ ## <a id="root.mustache"></a>root.mustache <a class='navigator' href='#top'">[top]</a>
75
75
 
76
+ Starting point of template rendering.
76
77
 
77
78
  **Attributes**: context= `.`
78
79
 
79
80
  * `description`: description for the CF template
80
81
 
81
-
82
82
  **Actions**:
83
83
 
84
84
  * **Description**: `description`
85
85
  * **include** <a href="#resources.mustache">resources.mustache</a>
86
86
  * **for** `resource` **in** `resource` **include** <a href="#resource.mustache">resource.mustache</a>
87
+ * **for** `output` **in** `outputs` **include** <a href="#output.mustache">output.mustache</a>
88
+
87
89
 
88
90
  > resources
89
91
  > resource
92
+ > output
90
93
 
91
94
  ++close++
92
95
 
@@ -97,13 +100,17 @@ Root template
97
100
 
98
101
  "Description" : "{{description}}",
99
102
 
100
-
101
-
102
103
  "Resources" : {
103
104
 
104
105
  {{> resources }}
105
106
  {{# resources }}{{> resource }}{{/ resources }}
106
107
 
108
+ },
109
+
110
+ "Outputs" : {
111
+
112
+ {{# outputs }}{{> output }}{{/ outputs }}
113
+
107
114
  }
108
115
 
109
116
  }
data/demo/5/conf.yaml CHANGED
@@ -1,10 +1,10 @@
1
1
  -- demo/2 : added description property
2
2
 
3
3
 
4
- description: "demo/5: A simple Amazon EC2 instance created using aws-must tool
4
+ description: "demo/6 - A simple Amazon EC2 instance created using aws-must tool
5
5
  - Minimum Viable Solution to Manage CloudFormation
6
- Templates. This version adds Output section with references
7
- to InstanceId and PublicId of the newly created EC2 instance'."
6
+ Templates. This version uses AWSInstanceType2Arch and AWSRegionArch2AMI
7
+ to define 64bit hmv 't2.micro' instances AMIs for several Amazon regions."
8
8
 
9
9
 
10
10
  parameters:
@@ -19,7 +19,6 @@ resources:
19
19
 
20
20
  - Instance:
21
21
  Name: &Resource_1 MyEC2Instance
22
- ImageId: ami-00dae61d
23
22
  InstanceType: *Param_InstanceType
24
23
 
25
24
 
File without changes
@@ -5,7 +5,6 @@
5
5
 
6
6
  ## <a id="output.mustache"></a>output.mustache <a class='navigator' href='#top'">[top]</a>
7
7
 
8
-
9
8
  Create one output entry to CloudFormation JSON output section
10
9
 
11
10
  **Attributes**: context= `./outputs`
@@ -26,6 +25,8 @@ Create one output entry to CloudFormation JSON output section
26
25
  * **Value**: **Ref** if `Ref`
27
26
  * **Value**: `Attr.Ref`, `Attr.Name` if `Attr`
28
27
 
28
+
29
+
29
30
  ++close++
30
31
 
31
32
  }}
@@ -6,12 +6,14 @@
6
6
 
7
7
  ## <a id="resource.mustache"></a>resource.mustache <a class='navigator' href='#top'">[top]</a>
8
8
 
9
+
9
10
  Dispatches resource sub-type templates based resource Type propertys
10
11
 
11
12
  **Attributes**: context= `./resources`
12
13
 
13
14
  * `Instance`: sub-document defining an EC instance
14
15
 
16
+
15
17
  **Actions**:
16
18
 
17
19
  * include <a href="#resourceInstance.mustache">resourceInstance.mustache</a> if `Instance`
@@ -21,6 +23,7 @@ Dispatches resource sub-type templates based resource Type propertys
21
23
  ++close++
22
24
 
23
25
 
26
+
24
27
  }}
25
28
 
26
29
  {{# Instance }}{{> resourceInstance}}{{/ Instance }}
@@ -4,7 +4,6 @@
4
4
  ++start++
5
5
 
6
6
 
7
-
8
7
  ## <a id="resourceInstance.mustache"></a>resourceInstance.mustache <a class='navigator' href='#top'">[top]</a>
9
8
 
10
9
  Create an EC2 instance
@@ -14,12 +13,12 @@ Create an EC2 instance
14
13
  * `Name`: name of the EC2 instance to create
15
14
  * `InstanceType` : The instance type, such as t2.micro.
16
15
 
17
- **Actions**:
18
16
 
17
+ **Actions**:
19
18
 
20
19
  * **Name**: `Name`
21
20
  * **Type**: 'AWS::EC2::Instance'
22
- * **ImageId**: `ImageId`
21
+ * **ImageId**: **AWSRegionArch2AMI**( 'AWS::Region', **AWSInstanceType2Arch**(`InstanceType`))
23
22
 
24
23
  ++close++
25
24
 
@@ -29,7 +28,8 @@ Create an EC2 instance
29
28
  "{{Name}}" : {
30
29
  "Type" : "AWS::EC2::Instance",
31
30
  "Properties" : {
32
- "ImageId" : "{{ImageId}}",
31
+ "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" },
32
+ { "Fn::FindInMap" : [ "AWSInstanceType2Arch", "{{InstanceType}}", "Arch" ] } ] },
33
33
  "InstanceType" : "{{InstanceType}}"
34
34
  } {{! Propertites }}
35
35
  }{{_comma}}
@@ -2,9 +2,19 @@
2
2
 
3
3
  ++start++
4
4
 
5
- ## resources.mustache
5
+ ## <a id="resources.mustache"></a>resources.mustache <a class='navigator' href='#top'">[top]</a>
6
+
7
+ Empty template.
8
+
9
+ **Attributes**: context= `.`
10
+
11
+ * none
12
+
13
+
14
+ **Actions**:
15
+
16
+ * no action (i.e. empty template)
6
17
 
7
- Nothing created here
8
18
 
9
19
  ++close++
10
20
 
data/demo/5/root.mustache CHANGED
@@ -7,7 +7,6 @@ STYLE section
7
7
  ==================================================================
8
8
 
9
9
  ++start++
10
-
11
10
  <style>
12
11
  h1 {
13
12
  color:blue;
@@ -21,6 +20,9 @@ h3 {
21
20
  color:blue;
22
21
  font-size: 1.5em;
23
22
  }
23
+ .navigator {
24
+ font-size: 0.5em;
25
+ }
24
26
  body {
25
27
  background-color: #b0c4de;
26
28
  }
@@ -37,20 +39,20 @@ CONTENT section
37
39
 
38
40
  # <a id="top">aws-must demo 5 template</a>
39
41
 
40
- Creates EC2 instances using YAML configuration defining `ImageId`
41
- (e.g. ami-00dae61d) and `InstanceType` (e.g. t2.micro). Output
42
- section contains references to InstanceId and PublicId of the newly
43
- created EC2 instance.
44
-
45
- Supports only region `eu-central-1`. No ssh connection allowed by
46
- default.
42
+ Creates EC2 instances using YAML configuration defining `InstanceType`
43
+ (e.g. t2.micro). `ImageId` of the AMI is determined using
44
+ CloudFormation mapping on `InstanceType` and region. Supported regions
45
+ are ap-northeast-1, ap-southeast-1, ap-southeast-2, cn-north-1,
46
+ eu-central-1, eu-west-1, sa-east-1, us-east-1, us-gov-west-1,
47
+ us-west-1, us-west-2. Output section contains references to
48
+ InstanceId and PublicId of the newly created EC2 instance.
47
49
 
48
50
  **Parameters**:
49
51
 
50
52
  * `InstanceType`: EC2 resource instance type, (default: t2.micro)
51
53
 
52
54
 
53
-
55
+ No ssh connection allowed by default.
54
56
 
55
57
  ## Document Content
56
58
 
@@ -71,6 +73,30 @@ each template, it
71
73
  * lists template actions, i.e. output from template, or template
72
74
  inclusion
73
75
 
76
+ ### Table of contents
77
+ <ul>
78
+
79
+ <li><a href="#root.mustache">root.mustache</a>: root template =
80
+ starting point of template rendering</li>
81
+
82
+ <li><a href="#mappings.mustache">mappings.mustache</a>matches a key to
83
+ a corresponding set of named values</li>
84
+
85
+ <li>Resources</li>
86
+
87
+ <ul>
88
+
89
+ <li><a href="#resources.mustache">resources.mustache</a>: fixed
90
+ resources</li>
91
+
92
+ <li><a href="#resource.mustache">resource.mustache</a>: dispatch
93
+ resource based on resource type</li> <li><a
94
+ href="#resourceInstance.mustache">resourceInstance.mustache</a>create
95
+ an EC2 instance</li>
96
+
97
+ </ul><li><a href="#output.mustache">output.mustache</a>:values in
98
+ response to describe stack calls </li> </ul>
99
+
74
100
 
75
101
  ## <a id="root.mustache"></a>root.mustache <a class='navigator' href='#top'">[top]</a>
76
102
 
@@ -83,15 +109,18 @@ Starting point of template rendering.
83
109
  **Actions**:
84
110
 
85
111
  * **Description**: `description`
112
+ * **include** <a href="#mappings.mustache">mappings.mustache</a>
86
113
  * **include** <a href="#resources.mustache">resources.mustache</a>
87
114
  * **for** `resource` **in** `resource` **include** <a href="#resource.mustache">resource.mustache</a>
88
115
  * **for** `output` **in** `outputs` **include** <a href="#output.mustache">output.mustache</a>
89
116
 
90
117
 
118
+ > mappings
91
119
  > resources
92
120
  > resource
93
121
  > output
94
122
 
123
+
95
124
  ++close++
96
125
 
97
126
  }}
@@ -101,6 +130,10 @@ Starting point of template rendering.
101
130
 
102
131
  "Description" : "{{description}}",
103
132
 
133
+ "Mappings" : {
134
+ {{> mappings }}
135
+ },
136
+
104
137
  "Resources" : {
105
138
 
106
139
  {{> resources }}
data/demo/6/conf.yaml CHANGED
@@ -1,11 +1,5 @@
1
- -- demo/2 : added description property
2
-
3
-
4
- description: "demo/6 - A simple Amazon EC2 instance created using aws-must tool
5
- - Minimum Viable Solution to Manage CloudFormation
6
- Templates. This version uses AWSInstanceType2Arch and AWSRegionArch2AMI
7
- to define 64bit hmv 't2.micro' instances AMIs for several Amazon regions."
8
1
 
2
+ description: "demo/6 - A simple Amazon EC2 instance created using aws-must tool"
9
3
 
10
4
  parameters:
11
5
 
@@ -14,18 +8,43 @@ parameters:
14
8
  Description: EC2 reousrce instance type
15
9
  Value: &Param_InstanceType t2.micro
16
10
 
11
+ - Name: &Param_KeyName KeyName
12
+ Type: "AWS::EC2::KeyPair::KeyName"
13
+ Description: Name of an existing EC2 KeyPair to enable SSH access to the instance
14
+ Value: demo-key
15
+
16
+ - Name: &Param_SSHLocation SSHLocation
17
+ Type: String
18
+ Description: The IP address range that can be used to SSH to the EC2 instances
19
+ Value: "0.0.0.0/0"
20
+
17
21
 
18
22
  resources:
19
23
 
24
+ - InstanceSecurityGroup:
25
+ Name: &DefaultSG MyDefaultSecurityGroup
26
+ IngressRef: *Param_SSHLocation
27
+
20
28
  - Instance:
21
29
  Name: &Resource_1 MyEC2Instance
22
30
  InstanceType: *Param_InstanceType
31
+ KeyName: *Param_KeyName
32
+ SecurityGroup: *DefaultSG
33
+ tags:
34
+ - Key: demotag1
35
+ Value: demotag1 value
23
36
 
24
37
 
25
38
  outputs:
26
39
 
27
- - Name: InstanceId1
40
+ - Name: Instance1
28
41
  Description: InstanceId of the newly created EC2 instance
29
42
  Ref: *Resource_1
30
43
 
31
44
 
45
+ - Name: IP1
46
+ Description: Public IP address of the newly created EC2 instance
47
+ Attr:
48
+ Ref: *Resource_1
49
+ Name: PublicIp
50
+
File without changes
@@ -12,13 +12,21 @@ Dispatches resource sub-type templates based resource Type propertys
12
12
  **Attributes**: context= `./resources`
13
13
 
14
14
  * `Instance`: sub-document defining an EC instance
15
+ * `SecurityGroup`: sub-document defining an <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html">AWS::EC2::SecurityGroup</a>
15
16
 
16
17
 
17
18
  **Actions**:
18
19
 
19
- * include <a href="#resourceInstance.mustache">resourceInstance.mustache</a> if `Instance`
20
+ * **include** <a href="#resourceInstance.mustache">resourceInstance.mustache</a> **if** `Instance`
21
+ * **include** <a href="#resourceSecurityGroup.mustache">resourceSecurityGroup.mustache</a> **if** `SecurityGroup`
22
+
23
+
24
+ **Included resources**
25
+
26
+ * `resourceInstance`
20
27
 
21
28
  > resourceInstance
29
+ > resourceSecurityGroup.mustache
22
30
 
23
31
  ++close++
24
32
 
@@ -27,3 +35,4 @@ Dispatches resource sub-type templates based resource Type propertys
27
35
  }}
28
36
 
29
37
  {{# Instance }}{{> resourceInstance}}{{/ Instance }}
38
+ {{# InstanceSecurityGroup }}{{> resourceSecurityGroup}}{{/ InstanceSecurityGroup }}
@@ -12,13 +12,20 @@ Create an EC2 instance
12
12
 
13
13
  * `Name`: name of the EC2 instance to create
14
14
  * `InstanceType` : The instance type, such as t2.micro.
15
+ * `tags` : array of tag sub-documents for EC2 instance
15
16
 
16
17
 
17
18
  **Actions**:
18
19
 
19
20
  * **Name**: `Name`
20
21
  * **Type**: 'AWS::EC2::Instance'
22
+ * **for** `tag` **in** `tags` **include** <a href="#tag.mustache">tag.mustache</a>
23
+ * **SecurityGroups.Ref**: `SecurityGroup` if `SecurityGroup`
21
24
  * **ImageId**: **AWSRegionArch2AMI**( 'AWS::Region', **AWSInstanceType2Arch**(`InstanceType`))
25
+ * **KeyName**: `KeyName` if `KeyName`
26
+
27
+ > tag
28
+
22
29
 
23
30
  ++close++
24
31
 
@@ -29,7 +36,10 @@ Create an EC2 instance
29
36
  "Type" : "AWS::EC2::Instance",
30
37
  "Properties" : {
31
38
  "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" },
32
- { "Fn::FindInMap" : [ "AWSInstanceType2Arch", "{{InstanceType}}", "Arch" ] } ] },
33
- "InstanceType" : "{{InstanceType}}"
34
- } {{! Propertites }}
39
+ { "Fn::FindInMap" : [ "AWSInstanceType2Arch", "{{InstanceType}}", "Arch" ] } ] }
40
+ , "InstanceType" : "{{InstanceType}}"
41
+ , "Tags" : [ {{#tags}}{{>tag}}{{/tags}} ]
42
+ {{#SecurityGroup}}, "SecurityGroups" : [ { "Ref" : "{{SecurityGroup}}" } ]{{/SecurityGroup}}
43
+ {{#KeyName}}, "KeyName" : { "Ref" : "{{KeyName}}" }{{/KeyName}}
44
+ }
35
45
  }{{_comma}}
File without changes
data/demo/6/root.mustache CHANGED
@@ -39,20 +39,29 @@ CONTENT section
39
39
 
40
40
  # <a id="top">aws-must demo 6 template</a>
41
41
 
42
- Creates EC2 instances using YAML configuration defining `InstanceType`
43
- (e.g. t2.micro). `ImageId` of the AMI is determined using
44
- CloudFormation mapping on `InstanceType` and region. Supported regions
45
- are ap-northeast-1, ap-southeast-1, ap-southeast-2, cn-north-1,
46
- eu-central-1, eu-west-1, sa-east-1, us-east-1, us-gov-west-1,
47
- us-west-1, us-west-2. Output section contains references to
48
- InstanceId and PublicId of the newly created EC2 instance.
42
+ Creates
49
43
 
50
- **Parameters**:
44
+ * **EC2 SecurityGroup** allowing ssh via port 22 from a location given
45
+ as `SSHLocation` parameter
51
46
 
52
- * `InstanceType`: EC2 resource instance type, (default: t2.micro)
47
+ * **EC2 instances** using YAML parameter `InstanceType`
48
+ (e.g. t2.micro).
49
+
50
+ * `ImageId` of the AMI is determined using CloudFormation mapping on
51
+ `InstanceType` and region. Supported regions are ap-northeast-1,
52
+ ap-southeast-1, ap-southeast-2, cn-north-1, eu-central-1,
53
+ eu-west-1, sa-east-1, us-east-1, us-gov-west-1, us-west-1,
54
+ us-west-2.
55
+
56
+ * output section contains references to InstanceId and PublicId of
57
+ the newly created EC2 instance.
53
58
 
54
59
 
55
- No ssh connection allowed by default.
60
+ **Parameters**:
61
+
62
+ * `InstanceType`: EC2 resource instance type, (default: t2.micro)
63
+ * `KeyName` : Name of an existing EC2 KeyPair to enable SSH access to the instance, (default: demo-key)
64
+ * `SSHLocation`: The IP address range that can be used to SSH to the EC2 instances default: 0.0.0.0/0)
56
65
 
57
66
  ## Document Content
58
67
 
@@ -68,7 +77,7 @@ each template, it
68
77
  * gives a general description of the template
69
78
 
70
79
  * documents the attribute context e.g. `.` or `./resources/Instance`,
71
- and attributes references of the template
80
+ and attributes referenced within the template
72
81
 
73
82
  * lists template actions, i.e. output from template, or template
74
83
  inclusion
@@ -79,6 +88,9 @@ each template, it
79
88
  <li><a href="#root.mustache">root.mustache</a>: root template =
80
89
  starting point of template rendering</li>
81
90
 
91
+ <li><a href="#parameter.mustache">parameter.mustache</a>: create one
92
+ parameter entry to CloudFormation JSON parameter section</li>
93
+
82
94
  <li><a href="#mappings.mustache">mappings.mustache</a>matches a key to
83
95
  a corresponding set of named values</li>
84
96
 
@@ -90,11 +102,22 @@ a corresponding set of named values</li>
90
102
  resources</li>
91
103
 
92
104
  <li><a href="#resource.mustache">resource.mustache</a>: dispatch
93
- resource based on resource type</li> <li><a
94
- href="#resourceInstance.mustache">resourceInstance.mustache</a>create
95
- an EC2 instance</li>
105
+ resource based on resource type</li>
96
106
 
97
- </ul><li><a href="#output.mustache">output.mustache</a>:values in
107
+ <ul> <li><a
108
+ href="#resourceSecurityGroup.mustache">resourceSecurityGroup.mustache.mustache</a>:
109
+ create an security group for accessing EC2 instances</li>
110
+
111
+ <li><a
112
+ href="#resourceInstance.mustache">resourceInstance.mustache</a>:
113
+ create an EC2 instance</li>
114
+
115
+ <ul><li><a href="#tag.mustache">tag.mustache</a>: add key-value tag property
116
+ to an</li><ul>
117
+
118
+ </ul></ul></ul></ul>
119
+
120
+ <li><a href="#output.mustache">output.mustache</a>: values in
98
121
  response to describe stack calls </li> </ul>
99
122
 
100
123
 
@@ -105,16 +128,22 @@ Starting point of template rendering.
105
128
  **Attributes**: context= `.`
106
129
 
107
130
  * `description`: description for the CF template
131
+ * `parameters`: array of parameter sub-documents for CloudFormation Parameters -section
132
+ * `resources`: array of resource sub-documents for CloudFormation Resources -section
133
+ * `outputs`: array of output sub-documents for CloudFormation Outputs -section
134
+
108
135
 
109
136
  **Actions**:
110
137
 
111
138
  * **Description**: `description`
139
+ * **for** `parameter` **in** `parameters` **include** <a href="#parameter.mustache">parameter.mustache</a>
112
140
  * **include** <a href="#mappings.mustache">mappings.mustache</a>
113
141
  * **include** <a href="#resources.mustache">resources.mustache</a>
114
142
  * **for** `resource` **in** `resource` **include** <a href="#resource.mustache">resource.mustache</a>
115
143
  * **for** `output` **in** `outputs` **include** <a href="#output.mustache">output.mustache</a>
116
144
 
117
145
 
146
+ > parameter
118
147
  > mappings
119
148
  > resources
120
149
  > resource
@@ -130,6 +159,10 @@ Starting point of template rendering.
130
159
 
131
160
  "Description" : "{{description}}",
132
161
 
162
+ "Parameters" : {
163
+ {{# parameters }}{{> parameter }}{{/ parameters }}
164
+ },
165
+
133
166
  "Mappings" : {
134
167
  {{> mappings }}
135
168
  },
File without changes
data/demo/7/conf.yaml CHANGED
@@ -1,9 +1,7 @@
1
- -- demo/2 : added description property
2
-
3
1
 
4
2
  description: "demo/7 - A simple Amazon EC2 instance created using aws-must tool
5
3
  - Minimum Viable Solution to Manage CloudFormation
6
- Templates. This adds support for EC2 intance tags, parameters, and security group"
4
+ Templates. Adds support installing Chef"
7
5
 
8
6
  parameters:
9
7
 
@@ -22,6 +20,11 @@ parameters:
22
20
  Description: The IP address range that can be used to SSH to the EC2 instances
23
21
  Value: "0.0.0.0/0"
24
22
 
23
+ - Name: ChefVersion
24
+ Type: String
25
+ Description: Chef version to install
26
+ Value: &Param_ChefVersion 11.18
27
+
25
28
 
26
29
  resources:
27
30
 
@@ -34,6 +37,8 @@ resources:
34
37
  InstanceType: *Param_InstanceType
35
38
  KeyName: *Param_KeyName
36
39
  SecurityGroup: *DefaultSG
40
+ InstallChef:
41
+ - Version: *Param_ChefVersion
37
42
  tags:
38
43
  - Key: demotag1
39
44
  Value: demotag1 value