81 lines
2.8 KiB
HCL
81 lines
2.8 KiB
HCL
resource "oci_core_vcn" "homelab_vcn" {
|
|
cidr_block = "10.0.0.0/16"
|
|
compartment_id = oci_identity_compartment.tf-compartment.id
|
|
display_name = var.compartment_name
|
|
dns_label = "vcn"
|
|
}
|
|
|
|
resource "oci_core_network_security_group" "homelab_nsg" {
|
|
compartment_id = oci_identity_compartment.tf-compartment.id
|
|
display_name = "${var.compartment_name}-nsg"
|
|
vcn_id = oci_core_vcn.homelab_vcn.id
|
|
}
|
|
|
|
resource "oci_core_internet_gateway" "homelab_ig" {
|
|
compartment_id = oci_identity_compartment.tf-compartment.id
|
|
display_name = "${var.compartment_name}-ig"
|
|
vcn_id = oci_core_vcn.homelab_vcn.id
|
|
}
|
|
|
|
resource "oci_core_route_table" "homelab_rt" {
|
|
compartment_id = oci_identity_compartment.tf-compartment.id
|
|
vcn_id = oci_core_vcn.homelab_vcn.id
|
|
display_name = "${var.compartment_name}-rt"
|
|
|
|
route_rules {
|
|
destination = "0.0.0.0/0"
|
|
destination_type = "CIDR_BLOCK"
|
|
network_entity_id = oci_core_internet_gateway.homelab_ig.id
|
|
}
|
|
}
|
|
resource "oci_core_subnet" "homelab_subnet" {
|
|
#Required
|
|
cidr_block = "10.0.0.0/24"
|
|
compartment_id = oci_identity_compartment.tf-compartment.id
|
|
vcn_id = oci_core_vcn.homelab_vcn.id
|
|
dns_label = "homelab"
|
|
|
|
# Provider code tries to maintain compatibility with old versions.
|
|
security_list_ids = [oci_core_security_list.public-security-list.id]
|
|
display_name = "${var.compartment_name}-subnet"
|
|
route_table_id = oci_core_route_table.homelab_rt.id
|
|
}
|
|
|
|
resource "oci_core_security_list" "public-security-list" {
|
|
compartment_id = oci_identity_compartment.tf-compartment.id
|
|
vcn_id = oci_core_vcn.homelab_vcn.id
|
|
display_name = "public-security-list"
|
|
|
|
egress_security_rules {
|
|
stateless = false
|
|
destination = "0.0.0.0/0"
|
|
destination_type = "CIDR_BLOCK"
|
|
protocol = "all"
|
|
}
|
|
|
|
ingress_security_rules {
|
|
stateless = false
|
|
source = "0.0.0.0/0"
|
|
source_type = "CIDR_BLOCK"
|
|
protocol = "all"
|
|
description = "allow all"
|
|
}
|
|
}
|
|
|
|
resource "oci_core_network_security_group_security_rule" "homelab-network-security-group-list-ingress" {
|
|
network_security_group_id = oci_core_network_security_group.homelab_nsg.id
|
|
direction = "INGRESS"
|
|
source = oci_core_network_security_group.homelab_nsg.id
|
|
source_type = "NETWORK_SECURITY_GROUP"
|
|
protocol = "all"
|
|
stateless = true
|
|
}
|
|
|
|
resource "oci_core_network_security_group_security_rule" "homelab-network-security-group-list-egress" {
|
|
network_security_group_id = oci_core_network_security_group.homelab_nsg.id
|
|
direction = "EGRESS"
|
|
destination = oci_core_network_security_group.homelab_nsg.id
|
|
destination_type = "NETWORK_SECURITY_GROUP"
|
|
protocol = "all"
|
|
stateless = true
|
|
}
|