You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "Ignasi Barrera (JIRA)" <ji...@apache.org> on 2017/06/14 15:05:00 UTC

[jira] [Commented] (JCLOUDS-1308) Azure ARM Default Network

    [ https://issues.apache.org/jira/browse/JCLOUDS-1308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16049269#comment-16049269 ] 

Ignasi Barrera commented on JCLOUDS-1308:
-----------------------------------------

The old implementation presented several issues:

* jclouds only considered one resource group, and that make it impossible to let jclouds created resources to interact with existing ones. This also meant that scenarios where people use a resource group for storage, another for networking, etc, didn't work with jclouds. We were limiting the resource group layout, which was not good and prevented us from being usable in most cases, where accounts are not empty.
* Having one default network was not flexible enough. There was no way to create several subnets and jclouds VMs were always attached there (you could specify a virtual network but not a subnet).
* VMs could not be attached to several subnets, nor get different addresses. They were always assigned a private IP and a dynamic Public IP. Now that can be configured too.

The current approach fixes all these issues, is more flexible and you should be able to achieve the same behavior:

* You can create all your VMs in the same "jclouds group", and all VMs should go to the same default network. jclouds creates one Resource Group per jclouds group *unless you set the _options.ResourceGroup_* template option. You can play with that.
* You can pre-create the default network and subnet where you want your VMs to be attached to, and then provide the convenient template options to let all VMs be attached there:
{code:java}
IpOptions ipOptions = IpOptions.builder.subnet("the subnet").allocatePublicIp(true/false).build();
options.as(AzureTemplateOptions.class).ipOptions(ipOptions);
{code}


> Azure ARM Default Network
> -------------------------
>
>                 Key: JCLOUDS-1308
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1308
>             Project: jclouds
>          Issue Type: Bug
>            Reporter: Graeme Miller
>
> For Azure ARM, the default behaviour when creating a VM has changed with regards to VNETs/Subnets.
> Previously, if no networking configuration was provided JClouds would create a default VNET per region. The implementation of this can be found [here|https://github.com/jclouds/jclouds-labs/blob/4f50e7d65a6d7e1a3d06efcf557b363e55118238/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourceGroupThenCreateNodes.java#L147]. This was useful as it meant that a user could rely on VMs being able to access one another on their subnet IP addresses, even when a network was not provided (I believe this is the same as other clouds, but I am not too familiar with JClouds).
> Now, when no networking configuration is provided we create a VNET per group id. For our usage, this is a bit of a problem as it means by default each VM is getting it’s own network.
> To see a history of these changes please see the commit [here|https://github.com/jclouds/jclouds-labs/commit/54e5ce50a43250c4f87414506b3bba4d8365284e] that moved to having a VNET per resource group and then [here|https://github.com/jclouds/jclouds-labs/commit/dbadb279f14848f21879f7eb6c7136e1a5f11192], that moved to using just the groupID.
> I propose we go back to the old way, where we have a default resource group, VNET and subnet per region. This will mean that by default, VMs will be able to speak to each other on there private IPs. If that is not possible, could we have a template option that will allow us to turn this behaviour on? 
> I am very happy to work on the solution myself, but would like direction form the community before investing too much time.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)