1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-22 18:50:08 +03:00

M #-: Use only AV zone if inst.type is avail (AWS) (#1299)

This commit is contained in:
Jan Orel 2021-06-16 10:14:30 +02:00 committed by GitHub
parent 37265a731a
commit 880e90bd09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 7 deletions

View File

@ -15,6 +15,8 @@ resource "aws_subnet" "device_<%= obj['ID'] %>" {
tags = {
Name = "<%= obj['NAME'] %>_subnet"
}
availability_zone = local.my_zones[0]
}
resource "aws_internet_gateway" "device_<%= obj['ID'] %>" {

View File

@ -1,16 +1,36 @@
data "aws_availability_zones" "available" {}
# only filter availability zones where given instance could be deployed
data "aws_ec2_instance_type_offerings" "available" {
for_each=toset(data.aws_availability_zones.available.names)
filter {
name = "instance-type"
values = ["<%= provision['INSTANCETYPE'] %>"]
}
filter {
name = "location"
values = ["${each.key}"]
}
location_type = "availability-zone"
}
locals {
my_zones = keys({ for az, details in data.aws_ec2_instance_type_offerings.available :
az => details.instance_types if length(details.instance_types) != 0 })
}
resource "aws_instance" "device_<%= obj['ID'] %>" {
ami = "<%= provision['AMI'] %>"
instance_type = "<%= provision['INSTANCETYPE'] %>"
availability_zone = local.my_zones[0]
vpc_security_group_ids = [ aws_security_group.device_<%= c['ID'] %>_all.id ]
#
# Find below how to apply on instances the SGs provisioned in host.rb
#
#vpc_security_group_ids = [aws_security_group.device_<%= c['ID'] %>_ssh.id,
# aws_security_group.device_<%= c['ID'] %>_bgp.id,
# aws_security_group.device_<%= c['ID'] %>_vxlan.id]
subnet_id = aws_subnet.device_<%= c['ID'] %>.id
<% ecidr = c['TEMPLATE']['PROVISION']['CIDR'] || "10.0.0.0/16"