diff --git a/bubble-server/src/main/java/bubble/cloud/compute/ComputeConfig.java b/bubble-server/src/main/java/bubble/cloud/compute/ComputeConfig.java index 0160336b..64280f75 100644 --- a/bubble-server/src/main/java/bubble/cloud/compute/ComputeConfig.java +++ b/bubble-server/src/main/java/bubble/cloud/compute/ComputeConfig.java @@ -14,9 +14,6 @@ public class ComputeConfig extends RegionalConfig { @Getter @Setter private ComputeNodeSize[] sizes; @Getter @Setter private NameAndValue[] config; - @Getter @Setter private String instanceType; - @Getter @Setter private String imageId; - @Getter @Setter private String group; public CloudRegion getRegion (String name) { for (CloudRegion r : getRegions()) { diff --git a/bubble-server/src/main/java/bubble/cloud/compute/ec2/AmazonEC2Driver.java b/bubble-server/src/main/java/bubble/cloud/compute/ec2/AmazonEC2Driver.java index 4a7b4a81..e17dc3ab 100644 --- a/bubble-server/src/main/java/bubble/cloud/compute/ec2/AmazonEC2Driver.java +++ b/bubble-server/src/main/java/bubble/cloud/compute/ec2/AmazonEC2Driver.java @@ -44,7 +44,7 @@ public class AmazonEC2Driver extends ComputeServiceDriverBase { private AmazonEC2 initEC2Client() { final Regions region; - final String regionName = config.getRegion(Regions.DEFAULT_REGION.getName()).getName(); + final String regionName = config.getConfig("region"); try { region = Regions.valueOf(regionName); } catch (Exception e) { @@ -90,15 +90,15 @@ public class AmazonEC2Driver extends ComputeServiceDriverBase { @Override public BubbleNode start(BubbleNode node) throws Exception { - RunInstancesRequest runInstancesRequest = new RunInstancesRequest().withImageId(config.getImageId()) - .withInstanceType(config.getInstanceType()) + RunInstancesRequest runInstancesRequest = new RunInstancesRequest().withImageId(config.getConfig("imageId")) + .withInstanceType(config.getConfig("instanceType")) .withMinCount(MIN_COUNT) .withMaxCount(MAX_COUNT) .withKeyName(node.getUuid()) .withNetworkInterfaces(new InstanceNetworkInterfaceSpecification() .withAssociatePublicIpAddress(true) .withSubnetId(SUBNET_ID_PREFIX + node.getUuid()) - .withGroups(config.getGroup())); + .withGroups(config.getConfig("group"))); final AmazonEC2 ec2Client = getEc2Client(); RunInstancesResult runInstancesResult = ec2Client.runInstances(runInstancesRequest); diff --git a/bubble-server/src/main/resources/models/defaults/cloudService.json b/bubble-server/src/main/resources/models/defaults/cloudService.json index bde6aa2c..4330c76b 100644 --- a/bubble-server/src/main/resources/models/defaults/cloudService.json +++ b/bubble-server/src/main/resources/models/defaults/cloudService.json @@ -271,10 +271,13 @@ "type": "compute", "driverClass": "bubble.cloud.compute.ec2.AmazonEC2Driver", "driverConfig": { - "region": "{{#exists BUBBLE_EC2_REGION}}{{BUBBLE_EC2_REGION}}{{else}}US_EAST_1{{/exists}}", - "instanceType": "{{INSTANCE_TYPE}}", - "imageId": "{{IMAGE_ID}}", - "group": "{{EC2_GROUP}}" + "regions": [{"name": "us-east-1", "description": "US East (N. Virginia)"}], + "config": [ + {"name": "region", "value": "US_EAST_1"}, + {"name": "instanceType", "value": "{{INSTANCE_TYPE}}"}, + {"name": "imageId", "value": "{{IMAGE_ID}}"}, + {"name": "group", "value": "{{EC2_GROUP}}"} + ] }, "credentials": { "params": [ diff --git a/bubble-server/src/test/resources/models/system/cloudService.json b/bubble-server/src/test/resources/models/system/cloudService.json index da77707a..4cd8b834 100644 --- a/bubble-server/src/test/resources/models/system/cloudService.json +++ b/bubble-server/src/test/resources/models/system/cloudService.json @@ -239,10 +239,12 @@ "type": "compute", "driverClass": "bubble.cloud.compute.ec2.AmazonEC2Driver", "driverConfig": { - "region": "US_EAST_1", - "instanceType": "t2.micro", - "imageId": "ami-0080e4c5bc078760e", - "group": "sg-id" + "config": [ + {"name": "region", "value": "US_EAST_1"}, + {"name": "instanceType", "value": "t2.micro"}, + {"name": "imageId", "value": "ami-0080e4c5bc078760e"}, + {"name": "group", "value": "sg-id"} + ] }, "credentials": { "params": [