Gerenciando Recursos de VCN Padrão

Gerencie recursos de VCN padrão usando o provedor Terraform do Oracle Cloud Infrastructure.

Quando você criar um recurso oci_core_vcn, também serão criados por padrão os recursos associados descritos a seguir:

  • oci_core_security_list
  • oci_core_dhcp_options
  • oci_core_route_table

Esses recursos padrão serão criados implicitamente, mesmo que não sejam especificados na configuração do Terraform. Seus OCIDs são retornados pelos seguintes atributos no recurso oci_core_vcn:

  • default_security_list_id
  • default_dhcp_options_id
  • default_route_table_id

Os recursos padrão devem ser configurados no Terraform usando um tipo de recurso distinto. Estes são os mapeamentos entre o recurso e o novo tipo de recurso a ser usado para configurar recursos padrão:

  • oci_core_security_list => oci_core_default_security_list
  • oci_core_dhcp_options => oci_core_default_dhcp_options
  • oci_core_route_table => oci_core_default_route_table

Os tipos de recursos padrão são configurados da mesma forma que seus correspondentes não padrão. A única diferença é especificar o ID do recurso padrão usando o argumento manage_default_resource_id.

Consequentemente, o vcn_id não é mais necessário para recursos padrão.

O exemplo a seguir modifica a tabela de roteamento padrão de uma VCN e as opções de DHCP:

resource "oci_core_vcn" "vcn1" {
  cidr_block = "10.0.0.0/16"
  dns_label = "vcn1"
  compartment_id = var.compartment_id
  display_name = "vcn1"
}

# Gateway
## Internet Gateway
resource "oci_core_internet_gateway" "inetGw" {
    compartment_id = var.compartment_id
    display_name   = "inetGw"
    vcn_id         = oci_core_vcn.vcn1.id
}

resource "oci_core_default_dhcp_options" "default-dhcp-options" {
  manage_default_resource_id = oci_core_vcn.vcn1.default_dhcp_options_id

  #Required
  options {
    type = "DomainNameServer"
    server_type = "VcnLocalPlusInternet"
  }
}

  #Optional
  options {
    type = "SearchDomain"
    search_domain_names = [ "abc.com" ]
  }
}

resource "oci_core_default_route_table" "default-route-table" {
  manage_default_resource_id = oci_core_vcn.vcn1.default_route_table_id

    #Required
    compartment_id = var.compartment_id

    #Optional
    display_name = "default_route_table"
    route_rules {

        #Required
        network_entity_id = oci_core_internet_gateway.inetGw.id

        #Optional
        destination = "0.0.0.0/0"
        destination_type = "CIDR_BLOCK"
    }
}

Limitações

Os recursos padrão só podem ser removidos quando o recurso associado oci_core_vcn é removido. Ao tentar uma remoção direcionada de um recurso padrão, o recurso será removido do arquivo de estado do Terraform, mas ainda poderá existir no OCI com definições vazias.

Os exemplos de remoção direcionada incluem:

  • Removendo um recurso padrão de uma configuração do Terraform que foi aplicada anteriormente
  • Executando um comando terraform destroy -target=<default resource>
  • Alterando o manage_default_resource_id para um recurso padrão que foi aplicado anteriormente