Stack creation fail when using Quantum floating IPs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Fix Released
|
High
|
Steve Baker |
Bug Description
I have created a template which uses Quantum resources and creates a configuration with three instances on a private network, connected to external network. It also assigns floating IPs to the three instances. The problem is, that assigning floating IPs fails, because the router is not yet created and connected before assigning floating IPs.
If I remove entries for floating IPs, the whole stack is successfully created.
The error reported by stack-show:
...
| stack_status | CREATE_FAILED |
| stack_status_reason | Resource FloatingIPAssoc
| | "floating_
| | QuantumClientEx
| | -47cd-b0df-
| | 71145fd6-
| | cannot associate Port 7c
...
If I try to associate floating IPs from the dashboard and there is no router connecting local and external nets, I get the same error.
Template:
{
"AWSTemplateF
"Description" : "AWS CloudFormation template for use with OpenStack. It uses Quantum for networking configuration. It sets up three Ubuntu 12.04 instances, each on its own subnet/network. One instance is set up with bind9 for configuration of DNS server. When stack is created, DNS is not configured, just installed on the instance. The other two instances are used for testing DNS configuration. The three subnets are connected with a router, that is also connected to the external network. Floating IPs are also provided to the spawned instances for external communication.",
"Parameters" : {
"KeyName" : {
"Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instances",
"Type" : "String"
},
"ExtNetUuid" : {
"Description" : "UUID of the external network to be used for external access",
"Type" : "String"
},
"InstanceType" : {
"Description" : "DNSServer EC2 instance type",
"Type" : "String",
"Default" : "m1.micro",
"
"
},
"LinuxDistr
"Default": "U12",
"Description" : "Distribution of choice",
"Type": "String",
"
}
},
"Mappings" : {
"AWSInstanc
"t1.micro" : { "Arch" : "32" },
"m1.small" : { "Arch" : "32" },
"m1.large" : { "Arch" : "64" },
"m1.xlarge" : { "Arch" : "64" },
"m2.xlarge" : { "Arch" : "64" },
"m2.2xlarge" : { "Arch" : "64" },
"m2.4xlarge" : { "Arch" : "64" },
"c1.medium" : { "Arch" : "32" },
"c1.xlarge" : { "Arch" : "64" },
"cc1.4xlarge" : { "Arch" : "64" },
"m1.micro" : { "Arch" : "64" }
},
"DistroArch
"U12" : { "32" : "U12-i386-
}
},
"Resources" : {
"network": {
"Type": "OS::Quantum::Net",
"Properties": {
"name": "local_network"
}
},
"subnet": {
"Type": "OS::Quantum:
"Properties": {
"cidr": "10.0.10.0/24",
}
},
"DNSServerP
"Type": "OS::Quantum:
"Properties": {
}]
}
},
"Client1Port": {
"Type": "OS::Quantum:
"Properties": {
}]
}
},
"Client2Port": {
"Type": "OS::Quantum:
"Properties": {
}]
}
},
"router": {
"Type": "OS::Quantum:
},
"router_
"Type": "OS::Quantum:
"Properties": {
}
},
"router_
"Type": "OS::Quantum:
"Properties": {
}
},
"DNSServerS
"Type" : "AWS::EC2:
"Properties" : {
]
}
},
"MinimalSec
"Type" : "AWS::EC2:
"Properties" : {
]
}
},
"DNSServer": {
"Type": "AWS::EC2:
"Metadata" : {
"config" : {
}
},
"apt" : {
}
}
}
}
},
"Properties": {
"ImageId" : { "Fn::FindInMap" : [ "DistroArch2AMI", { "Ref" : "LinuxDistribution" },
"KeyName" : { "Ref" : "KeyName" },
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
"touch /tmp/cfninitwas
]]}}
}
},
"Client1": {
"Type": "AWS::EC2:
"Metadata" : {
"config" : {
"apt" : {
}
}
}
}
},
"Properties": {
"ImageId" : { "Fn::FindInMap" : [ "DistroArch2AMI", { "Ref" : "LinuxDistribution" },
"KeyName" : { "Ref" : "KeyName" },
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
]]}}
}
},
"Client2": {
"Type": "AWS::EC2:
"Metadata" : {
"config" : {
"apt" : {
}
}
}
}
},
"Properties": {
"ImageId" : { "Fn::FindInMap" : [ "DistroArch2AMI", { "Ref" : "LinuxDistribution" },
"KeyName" : { "Ref" : "KeyName" },
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
]]}}
}
},
"floating_
"Type": "OS::Quantum:
"Properties": {
}
},
"floating_
"Type": "OS::Quantum:
"Properties": {
}
},
"floating_
"Type": "OS::Quantum:
"Properties": {
}
},
"floating_
"Type": "OS::Quantum:
"Properties": {
"port_id": { "Ref" : "DNSServerPort" }
}
},
"floating_
"Type": "OS::Quantum:
"Properties": {
"port_id": { "Ref" : "Client1Port" }
}
},
"floating_
"Type": "OS::Quantum:
"Properties": {
"port_id": { "Ref" : "Client2Port" }
}
}
},
"Outputs" : {
}
}
Does the order of resources in the template matter, meaning would changing the order have impact on resource creation?
Changed in heat: | |
status: | New → In Progress |
importance: | Undecided → High |
assignee: | nobody → Steve Baker (steve-stevebaker) |
Changed in heat: | |
status: | Fix Committed → In Progress |
milestone: | none → havana-1 |
Changed in heat: | |
milestone: | havana-1 → havana-2 |
Changed in heat: | |
status: | In Progress → Fix Committed |
Changed in heat: | |
status: | Fix Committed → Fix Released |
Changed in heat: | |
milestone: | havana-2 → 2013.2 |
You have this: ip_DNSserver" : { :FloatingIP" ,
"floating_ network_ id": { "Ref" : "ExtNetUuid" }
"floating_
"Type": "OS::Quantum:
"Properties": {
}
},
and your error is this: iation | ip_assoc_ DNSserver" failed with: | ception: External network 524ac1ab-f8d3 | cfdc7072b9cf is not reachable from subnet | d5ce-4d10- 8e91-46792a8b6e 3a. Therefore, |
| stack_status_reason | Resource FloatingIPAssoc
| | "floating_
| | QuantumClientEx
| | -47cd-b0df-
| | 71145fd6-
| | cannot associate Port 7c
It looks like ExtNetUuid is not reachable from the subnet you created, or you actually meant to do this in floating_ ip_DNSserver:
"floating_ network_ id": { "Ref" : "network" }