Make it the basis of the autoscaling group, the main difference is you change the number of instances via update (manually) or not at all. This can be achieved using the autoscaling group, but this is clearer from the user's perspective. Implements blueprint static-inst-group Change-Id: I72680e92183ba87a76efa64383269afb083a446a
57 lines
1.7 KiB
Plaintext
57 lines
1.7 KiB
Plaintext
{
|
|
"AWSTemplateFormatVersion" : "2010-09-09",
|
|
|
|
"Description" : "Template to create multiple instances.",
|
|
|
|
"Parameters" : {
|
|
"KeyName" : {
|
|
"Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instances",
|
|
"Type" : "String"
|
|
},
|
|
"InstanceType" : {
|
|
"Description" : "Instance type",
|
|
"Type" : "String",
|
|
"Default" : "m1.small",
|
|
"AllowedValues" : [ "t1.micro", "m1.small", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "c1.medium", "c1.xlarge", "cc1.4xlarge" ],
|
|
"ConstraintDescription" : "must be a valid EC2 instance type."
|
|
},
|
|
"ImageId" : {
|
|
"Description" : "Name of the image to use",
|
|
"Type" : "String",
|
|
"Default" : "F16-x86_64-cfntools"
|
|
},
|
|
"NumInstances": {
|
|
"Default": "1",
|
|
"MinValue": "1",
|
|
"MaxValue": "100",
|
|
"Description" : "Number of instances to create",
|
|
"Type": "Number"
|
|
}
|
|
},
|
|
|
|
"Resources" : {
|
|
"JobServerGroup" : {
|
|
"Type" : "OS::Heat::InstanceGroup",
|
|
"Properties" : {
|
|
"LaunchConfigurationName" : { "Ref" : "JobServerConfig" },
|
|
"Size" : {"Ref": "NumInstances"},
|
|
"AvailabilityZones" : { "Fn::GetAZs" : "" }
|
|
}
|
|
},
|
|
|
|
"JobServerConfig" : {
|
|
"Type" : "AWS::AutoScaling::LaunchConfiguration",
|
|
"Properties": {
|
|
"ImageId" : { "Ref" : "ImageId" },
|
|
"InstanceType" : { "Ref" : "InstanceType" },
|
|
"KeyName" : { "Ref" : "KeyName" },
|
|
"NovaSchedulerHints": [ {"Key": "part", "Value": "long"},
|
|
{"Key": "ready", "Value": "short"} ],
|
|
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
|
|
"#!/bin/bash -v\n"
|
|
]]}}
|
|
}
|
|
}
|
|
}
|
|
}
|