> Svet you don't mention GCE "tags" or the question of subnets in the above:

That's right, tags are an important part of the convention and I didn't expand 
on that. Your description nicely captures the idea.
I believe the security groups will work across subnets in a single vpc network.

Svet.


> On 15.06.2017 г., at 11:57, Geoff Macartney 
> <geoff.macart...@cloudsoftcorp.com> wrote:
> 
> I like the sound of this proposal, I think it's certainly worth
> investigating.
> 
> Ignasi those are good questions you've asked.  Here's my thoughts:
> 
> We can regard 'security groups' on GCE as a jclouds "overlay", and be
> explicit about that in documentation. What I mean here is that we don't
> need to do a "reverse mapping" of existing stuff back into jclouds
> concepts. So if there are existing firewall rules they simply don't show up
> in the results of 'listSecurityGroups()", "listSecurityGroupsInLocation()"
> or "listSecurityGroupsForNode()".    That is, not all rules participate in
> "security groups" from the jclouds point of view, only ones that jclouds
> added for security group purposes.
> 
> Svet you don't mention GCE "tags" or the question of subnets in the above:
> 
> 1.  What do you think about the idea of using tags to identify security
> groups - each security group would correspond to a tag. These tags would
> correspond to groupIds in the IPPermission object, i.e. you could create an
> IPPermission using a groupId [1] which would relate to a tag in the GCE
> platform. Then any nodes with that tag (= in that security group) would be
> permitted access.
> 2. Are there any restrictions/implications relating to subnets in your
> proposal, e.g. would you need to use them to achieve what you want, or can
> it work irrespective of any subnets on the network?
> 
> Geoff
> 
> [1]
> https://jclouds.apache.org/reference/javadoc/1.9.x/org/jclouds/net/domain/IpPermission.Builder.html#groupId(java.lang.String)
> 
> 
> On Thu, 15 Jun 2017 at 09:18 Ignasi Barrera <n...@apache.org> wrote:
> 
>> Thanks for starting this discussion Svet!
>> 
>> It would be great to come up with a solution we are happy with.
>> 
>> The main issue I see here is that the primary entity of the extension,
>> the SecurityGroup, does not have a mapping in GCE (which was one of
>> the reasons we decided to remove the old implementation).
>> 
>> I am OK applying conventions to implement the extension somehow, but
>> conventions are tricky when it comes to deal with existing stuff in
>> the provider. With this proposal, what are your plans to implement the
>> "listSecurityGroups()" and "listSecurityGroupsInLocation(Location
>> location)" methods? There is also a method to list the security groups
>> from a node. Given that the ComputeService is able to "listNodes" that
>> weren't created by jclouds, in case of a returned Node that already
>> has firewall rules assigned but that don't fit in our naming
>> conventions, how would the "listSecurityGroupsForNode(String id)"
>> behave?
>> 
>> I.
>> 
>> On 15 June 2017 at 09:03, Svetoslav Neykov
>> <svetoslav.ney...@cloudsoftcorp.com> wrote:
>>> I'd like to try implement the SecurityGroupExtension interface for GCE.
>> Looking at the documentation it seems that the combination of firewall
>> rules and node tags is flexible enough to allow us implement the
>> functionality.
>>> It's been tried before but the implementation's been removed (see [1]).
>> It's main drawback was that for each security group the code creates a new
>> network.
>>> Currently the biggest mismatch between the jclouds abstraction and the
>> GCE functionality is that firewall rules must be attached to a network.
>>> Here's my suggested approach:
>>> IpPermission roughly corresponds to a firewall rule
>>> SecurityGroup is just a collection of firewall rules (there's no cloud
>> resource that corresponds to it). The firewall rules of a security group
>> share the same prefix - jclouds-sg-<sg name>-<permission suffix>. They all
>> belong to the same network.
>>> They key bit: createSecurityGroup accepts a Location with a scope of
>> Network, returning a custom implementation of SecurityGroup which keeps a
>> reference to the network, so all IpPermission objects added subsequently
>> will be on it.
>>> While the suggested approach fits into the SecurityGroupExtension
>> interface it's different enough from the other implementations that it
>> might not be worth the trouble of implementing and supporting (even be
>> harmful as users might be surprised by the different behaviour).
>>> Would be interested in hearing other opinions on the approach. I've
>> created a Jira to track the effort at [2].
>>> 
>>> Svet.
>>> 
>>> 
>>> [1]
>> https://github.com/jclouds/jclouds/commit/2ba48dc9f66416b5d8515bd6a07b27a213d89a7c
>> <
>> https://github.com/jclouds/jclouds/commit/2ba48dc9f66416b5d8515bd6a07b27a213d89a7c
>>> 
>>> [2] https://issues.apache.org/jira/browse/JCLOUDS-1309 <
>> https://issues.apache.org/jira/browse/JCLOUDS-1309>
>>> 
>> 

Reply via email to