[
https://issues.apache.org/jira/browse/STRATOS-507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jeffrey Nguyen updated STRATOS-507:
-----------------------------------
Attachment: 0001-STRATOS-507-Support-to-assign-fixed-private-IPs-and-.patch
Please review the attached patch. As discussed above, "networkInterfaces"
property under "iaasProvider" is now moved to a separate config section under
"iaasProvider/networkInterfaces". It is a JSON array format. For OpenStack,
each network tuple can support up to 3 parameters: networkUuid, fixedIp, and
portUuid.
For AWS, I made the change to support network UUID only. The change is needed
since "networkInterfaces" is no longer under "iaasProvider/property". Devs are
welcome to enhance AWS to support fixedIp, and portUuid if applicable.
OpenStack:
"cartridgeDefinitionBean": {
...
"iaasProvider": [
{
"imageId": "RegionOne/66dac7ce-992c-43a4-b765-029c0b6fc1fe",
"maxInstanceLimit": "4",
"property": [
{
"name": "instanceType",
"value":
"RegionOne/1d89ff82-5981-4a14-91e5-fc769f82a2f9"
},
...
],
"networkInterfaces": [
{
"networkUuid": "fb9c21f4-0672-48b2-8279-77334bb63a53",
"fixedIp": "172.10.2.2"
},
{
"networkUuid": "aa1809a2-c32d-4eb8-a5c5-e46f692416e0",
"fixedIp": "172.10.4.4"
},
{
"networkUuid": "1e43f86f-4165-4f2e-8017-dd4cfb5548b0"
}
],
"type": "openstack-Core"
}
],
"multiTenant": "false",
"portMapping": [
{
...
}
],
"property": [
...
],
"version": "1.0"
}
}
AWS:
{ "cartridgeDefinitionBean": {
...
"deployment": {
},
"iaasProvider": [
{
"type": "ec2",
"imageId": "ap-southeast-1/ami-16d78044",
"maxInstanceLimit": "4",
"property": [
{ "name": "instanceType", "value": "m1.medium" },
{ "name": "keyPair", "value": "nirmal-stratos" }
],
"networkInterfaces":[
{"networkUuid": "c076ab11-a76f-4409-8773-1a72201074fc"},
{"networkUuid": "c076ab11-a76f-4409-8773-1a7220107aw"},
{"networkUuid": "c076ab11-a76f-4409-8773-1a72201075df"}
]
}
]
}
}
> Support to assign fixed private IPs and Port number in addition to network
> UUIDs for cartridges
> -----------------------------------------------------------------------------------------------
>
> Key: STRATOS-507
> URL: https://issues.apache.org/jira/browse/STRATOS-507
> Project: Stratos
> Issue Type: Improvement
> Components: Cloud Controller
> Affects Versions: 4.0.0 Alpha
> Environment: Stratos 4.0.0 Alpha, jClouds 1.7.1
> Reporter: Jeffrey Nguyen
> Assignee: Jeffrey Nguyen
> Attachments:
> 0001-STRATOS-507-Support-to-assign-fixed-private-IPs-and-.patch
>
>
> Hi Stratos Devs,
> I'm currently working on Stratos enhancement to leverage new network API
> supported by jClouds [1].
> In the current environment, when we attached a list of network UUIDs to a
> cartridge and subscribe to this cartridge, the new instance will have private
> IPs randomly assigned to each network. We need the ability to specify fixed
> private IP for each network.
> In addition to fixed private IPs, we could also assign port UUIDs or whatever
> the underlined Iaas supports for the networks configuration.
> I am currently working on jClouds enhancement [1]. This JIRA is for the
> changes required on Stratos side.
> Please see [3] below on how the private IPs are specified in the JSON payload.
> In the existing implementation of multiple networks [2], the JSON cartridge
> definition can specify multiple networks like one below.
> {
> "name": "networkInterfaces",
> "value":
> "fb9c21f4-0672-48b2-8279-77334bb63a53,aa1809a2-c32d-4eb8-a5c5-e46f692416e0,1e43f86f-4165-4f2e-8017-dd4cfb5548b0"
> }
> With this new enhancement, the JSON cartridge definition can specify multiple
> networks and fixed private IPs like one below.
> {
> "name": "networkInterfaces",
> "value":
> "[{\"uuid\":\"fb9c21f4-0672-48b2-8279-77334bb63a53\",\"fixed_ip\":\"172.16.0.10\"},{\"uuid\":\"aa1809a2-c32d-4eb8-a5c5-e46f692416e0\",\"fixed_ip\":\"172.16.1.11\"}]"
> }
> Questions:
> - Should introduce new property for the new format or should I just use
> existing "networkInterfaces" properties, which implies fixing [2]? When
> invoking jClouds API, we should set the value one way or the other, but not
> both.
> - In the current implementation of Stratos, all cartridge properties are
> treated as String. Therefore, with this new enhancement, the networks tuples
> need to escape the double quotes. Is this okay?
> Please let me know what you think.
> Regards,
> -Jeffrey
> [1] https://issues.apache.org/jira/browse/JCLOUDS-493
> [2] https://issues.apache.org/jira/browse/STRATOS-180
> [3] OpenStack JSON payload for creating server with network uuid and fixed
> private IP:
> "{"server":{"name":"testp-e12","imageRef":"66dac7ce-992c-43a4-b765-029c0b6fc1fe","flavorRef":"1d89ff82-5981-4a14-91e5-fc769f82a2f9","metadata":{"jclouds-group":"testp"},"key_name":"test","security_groups":[{"name":"default"}],"user_data":"U0VSVk...VAx","networks":[{"uuid":"fb9c21f4-0672-48b2-8279-77334bb63a53","fixed_ip":"172.16.0.10"},{"uuid":"aa1809a2-c32d-4eb8-a5c5-e46f692416e0","fixed_ip":"172.16.1.11"},{"uuid":"1e43f86f-4165-4f2e-8017-dd4cfb5548b0","fixed_ip":"172.16.2.12"}]}}"
--
This message was sent by Atlassian JIRA
(v6.2#6252)