Gestione delle risorse VCN predefinite

Gestisci le risorse VCN predefinite utilizzando il provider Terraform di Oracle Cloud Infrastructure.

Quando si crea una risorsa oci_core_vcn, per impostazione predefinita verranno create anche le seguenti risorse associate:

  • oci_core_security_list
  • oci_core_dhcp_options
  • oci_core_route_table

Queste risorse predefinite verranno create in modo implicito anche se non sono specificate nella configurazione Terraform. I relativi OCID vengono restituiti dai seguenti attributi nella risorsa oci_core_vcn:

  • default_security_list_id
  • default_dhcp_options_id
  • default_route_table_id

Le risorse predefinite devono essere configurate in Terraform utilizzando un tipo di risorsa separato. Di seguito sono riportati i mapping tra la risorsa e il nuovo tipo di risorsa da utilizzare per la configurazione delle risorse predefinite.

  • 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

I tipi di risorse predefiniti vengono configurati allo stesso modo delle relative controparti non predefinite. L'unica differenza consiste nel specificare l'ID della risorsa predefinita utilizzando l'argomento manage_default_resource_id.

Di conseguenza, vcn_id non è più necessario per le risorse predefinite.

L'esempio seguente modifica la tabella di instradamento predefinita di una VCN e le opzioni 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"
    }
}

Limitazioni

Le risorse predefinite possono essere rimosse solo quando viene rimossa la risorsa oci_core_vcn associata. Durante il tentativo di rimozione mirata di una risorsa predefinita, la risorsa verrà rimossa dal file di stato Terraform, ma è possibile che la risorsa esista ancora in OCI con impostazioni vuote.

Esempi di rimozione mirata includono:

  • Rimozione di una risorsa predefinita da una configurazione Terraform applicata in precedenza
  • Esecuzione di un comando terraform destroy -target=<default resource>
  • Modifica del valore manage_default_resource_id per una risorsa predefinita applicata in precedenza