Available since 2014.1 (Icehouse)
Utility class to encapsulate Cooldown related logic.
This logic includes both cooldown timestamp comparing and scaling in progress checking.
Note
Note
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::AutoScaling::AutoScalingGroup
properties:
AvailabilityZones: [Value, Value, ...]
Cooldown: Integer
DesiredCapacity: Integer
InstanceId: String
LaunchConfigurationName: String
LoadBalancerNames: [Value, Value, ...]
MaxSize: Integer
MinSize: Integer
Tags: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
VPCZoneIdentifier: [String, String, ...]
true
Note
Note
Note
Note
Note
Note
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::AutoScaling::LaunchConfiguration
properties:
BlockDeviceMappings: [{"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "SnapshotId": String, "VolumeSize": String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "SnapshotId": String, "VolumeSize": String}}, ...]
ImageId: String
InstanceId: String
InstanceType: String
KeyName: String
NovaSchedulerHints: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
SecurityGroups: [Value, Value, ...]
UserData: String
A resource to manage scaling of OS::Heat::AutoScalingGroup.
Note while it may incidentally support AWS::AutoScaling::AutoScalingGroup for now, please don’t use it for that purpose and use AWS::AutoScaling::ScalingPolicy instead.
Resource to manage scaling for OS::Heat::AutoScalingGroup, i.e. define which metric should be scaled and scaling adjustment, set cooldown etc.
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::AutoScaling::ScalingPolicy
properties:
AdjustmentType: String
AutoScalingGroupName: String
Cooldown: Integer
MinAdjustmentStep: Integer
ScalingAdjustment: Integer
Represents a child stack to allow composition of templates.
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::CloudFormation::Stack
properties:
Parameters: {...}
TemplateURL: String
TimeoutInMinutes: Integer
Available since 2014.1 (Icehouse)
Resource for handling signals received by WaitConditionHandle.
Resource takes WaitConditionHandle and starts to create. Resource is in CREATE_IN_PROGRESS status until WaitConditionHandle doesn’t receive sufficient number of successful signals (this number can be specified with count property) and successfully creates after that, or fails due to timeout.
1
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::CloudFormation::WaitCondition
properties:
Count: Integer
Handle: String
Timeout: Integer
Available since 2014.1 (Icehouse)
AWS WaitConditionHandle resource.
the main point of this class is to : have no dependencies (so the instance can reference it) generate a unique url (to be returned in the reference) then the cfn-signal will use this url to post to and WaitCondition will poll it to see if has been written to.
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::CloudFormation::WaitConditionHandle
DEPRECATED since 9.0.0 (Pike) - Now we only allow vpc here, so no need to set up this tag anymore.
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::EIP
properties:
InstanceId: String
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::EIPAssociation
properties:
AllocationId: String
EIP: String
InstanceId: String
NetworkInterfaceId: String
Utility class to encapsulate Scheduler Hint related logic.
true
Note
Note
Note
Note
Note
Note
Note
Note
Note
Note
Note
Note
[]
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::Instance
properties:
AvailabilityZone: String
BlockDeviceMappings: [{"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "SnapshotId": String, "VolumeSize": String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "SnapshotId": String, "VolumeSize": String}}, ...]
ImageId: String
InstanceType: String
KeyName: String
NetworkInterfaces: [Value, Value, ...]
NovaSchedulerHints: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
SecurityGroupIds: [Value, Value, ...]
SecurityGroups: [Value, Value, ...]
SubnetId: String
Tags: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
UserData: String
Volumes: [{"Device": String, "VolumeId": String}, {"Device": String, "VolumeId": String}, ...]
Note
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::InternetGateway
properties:
Tags: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
Note
Note
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::NetworkInterface
properties:
Description: String
GroupSet: [Value, Value, ...]
PrivateIpAddress: String
SubnetId: String
Tags: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
Available since 2014.1 (Icehouse)
Note
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::RouteTable
properties:
Tags: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
VpcId: String
Note
Note
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::SecurityGroup
properties:
GroupDescription: String
SecurityGroupEgress: [{"CidrIp": String, "FromPort": String, "ToPort": String, "IpProtocol": String, "SourceSecurityGroupId": String, "SourceSecurityGroupName": String}, {"CidrIp": String, "FromPort": String, "ToPort": String, "IpProtocol": String, "SourceSecurityGroupId": String, "SourceSecurityGroupName": String}, ...]
SecurityGroupIngress: [{"CidrIp": String, "FromPort": String, "ToPort": String, "IpProtocol": String, "SourceSecurityGroupId": String, "SourceSecurityGroupName": String}, {"CidrIp": String, "FromPort": String, "ToPort": String, "IpProtocol": String, "SourceSecurityGroupId": String, "SourceSecurityGroupName": String}, ...]
VpcId: String
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::Subnet
properties:
AvailabilityZone: String
CidrBlock: String
Tags: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
VpcId: String
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::SubnetRouteTableAssociation
properties:
RouteTableId: String
SubnetId: String
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::VPC
properties:
CidrBlock: String
Tags: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::VPCGatewayAttachment
properties:
InternetGatewayId: String
VpcId: String
Base Volume Manager.
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::Volume
properties:
AvailabilityZone: String
Size: Integer
SnapshotId: String
Tags: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
Base Volume Attachment Manager.
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::EC2::VolumeAttachment
properties:
Device: String
InstanceId: String
VolumeId: String
Implements a HAProxy-bearing instance as a nested stack.
The template for the nested stack can be redefined with
loadbalancer_template
option in heat.conf
.
Generally the image used for the instance must have the following packages installed or available for installation at runtime:
- heat-cfntools and its dependencies like python-psutil
- cronie
- socat
- haproxy
Current default builtin template uses Fedora 21 x86_64 base cloud image (https://getfedora.org/cloud/download/) and apart from installing packages goes through some hoops around SELinux due to pecularities of heat-cfntools.
Note
Note
Note
Note
Note
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::ElasticLoadBalancing::LoadBalancer
properties:
AvailabilityZones: [Value, Value, ...]
HealthCheck: {"HealthyThreshold": Integer, "Interval": Integer, "Target": String, "Timeout": Integer, "UnhealthyThreshold": Integer}
Instances: [Value, Value, ...]
Listeners: [{"InstancePort": Integer, "LoadBalancerPort": Integer, "Protocol": String}, {"InstancePort": Integer, "LoadBalancerPort": Integer, "Protocol": String}, ...]
SecurityGroups: [Value, Value, ...]
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::IAM::AccessKey
properties:
UserName: String
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::IAM::User
properties:
Groups: [Value, Value, ...]
LoginProfile: {"Password": String}
Path: String
Policies: [Value, Value, ...]
heat_template_version: 2015-04-30
...
resources:
...
the_resource:
type: AWS::S3::Bucket
properties:
AccessControl: String
Tags: [{"Key": String, "Value": String}, {"Key": String, "Value": String}, ...]
WebsiteConfiguration: {"IndexDocument": String, "ErrorDocument": String}
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.