terraform/ecc-openstack-007-instance_is_public/red/network.tf (42 lines of code) (raw):

data "openstack_networking_network_v2" "this" { name = "public" } data "openstack_networking_subnet_v2" "this" { name = "public-subnet" network_id = data.openstack_networking_network_v2.this.id } locals { old_cidr = data.openstack_networking_subnet_v2.this.cidr cidr_parts = split(".", local.old_cidr) new_third_octet = tostring(tonumber(local.cidr_parts[2]) + 5) new_cidr = "${local.cidr_parts[0]}.${local.cidr_parts[1]}.${local.new_third_octet}.${local.cidr_parts[3]}" } resource "openstack_networking_subnet_v2" "this" { name = "007-subnet-red" network_id = data.openstack_networking_network_v2.this.id cidr = local.new_cidr ip_version = 4 enable_dhcp = true tags = [ "CustodianRule = ecc-openstack-007-instance_is_public", "ComplianceStatus = Red" ] } resource "openstack_networking_secgroup_v2" "this" { name = "007-security_group-red" description = "007-security_group-red" delete_default_rules = false tags = [ "CustodianRule = ecc-openstack-007-instance_is_public", "ComplianceStatus = Red" ] } resource "openstack_networking_secgroup_rule_v2" "this" { direction = "ingress" ethertype = "IPv4" protocol = "tcp" port_range_min = 22 port_range_max = 22 remote_ip_prefix = "0.0.0.0/0" security_group_id = openstack_networking_secgroup_v2.this.id }