X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/06cf38c24519fa21556686545c768429b5af50dc..319c1aa1ffcb065492eb1878687c993d7638e94e:/services/nodemanager/arvnodeman/computenode/driver/ec2.py diff --git a/services/nodemanager/arvnodeman/computenode/driver/ec2.py b/services/nodemanager/arvnodeman/computenode/driver/ec2.py index d314d38986..6a9f473245 100644 --- a/services/nodemanager/arvnodeman/computenode/driver/ec2.py +++ b/services/nodemanager/arvnodeman/computenode/driver/ec2.py @@ -64,9 +64,21 @@ class ComputeNodeDriver(BaseComputeNodeDriver): def _init_subnet_id(self, subnet_id): return 'ex_subnet', self.search_for(subnet_id, 'ex_list_subnets') + create_cloud_name = staticmethod(arvados_node_fqdn) + def arvados_create_kwargs(self, size, arvados_node): - return {'name': arvados_node_fqdn(arvados_node), + kw = {'name': self.create_cloud_name(arvados_node), 'ex_userdata': self._make_ping_url(arvados_node)} + # libcloud/ec2 disk sizes are in GB, Arvados/SLURM "scratch" value is in MB + scratch = size.scratch / 1000 + if scratch > size.disk: + kw["ex_blockdevicemappings"] = [{ + "Ebs": { + "DeleteOnTermination": True, + "VolumeSize": scratch - size.disk, + "VolumeType": "gp2" + }}] + return kw def post_create_node(self, cloud_node): self.real.ex_create_tags(cloud_node, self.tags)