Gestión de recursos de VCN por defecto

Gestione los recursos de VCN por defecto mediante el proveedor de Terraform de Oracle Cloud Infrastructure.

Al crear un recurso oci_core_vcn, también se crearán los siguientes recursos asociados por defecto:

  • oci_core_security_list
  • oci_core_dhcp_options
  • oci_core_route_table

Estos recursos por defecto se crearán implícitamente incluso si no se especifican en la configuración de Terraform. Sus OCID se devuelven mediante los siguientes atributos en el recurso oci_core_vcn:

  • default_security_list_id
  • default_dhcp_options_id
  • default_route_table_id

Los recursos por defecto se deben configurar en Terraform mediante un tipo de recurso independiente. Estas son las asignaciones entre el recurso y el nuevo tipo de recurso que debe utilizar para configurar los recursos por defecto:

  • 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

Los tipos de los recursos por defecto se configuran de la misma manera que sus contrapartes que no son por defecto. La única diferencia es que se tiene que especificar el ID del recurso por defecto mediante el argumento manage_default_resource_id.

Por lo tanto, vcn_id ya no es necesario para los recursos por defecto.

El siguiente ejemplo modifica la tabla de rutas por defecto de una VCN y las opciones 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"
    }
}

Limitaciones

Los recursos por defecto solo se pueden eliminar cuando se elimina el recurso oci_core_vcn asociado. Al intentar eliminar específicamente un recurso por defecto, el recurso se eliminará del archivo de estado de Terraform, pero puede que siga existiendo en OCI con valores vacíos.

Entre los ejemplos de una eliminación específica se incluyen:

  • Eliminación de un recurso por defecto de una configuración de Terraform aplicada anteriormente
  • Ejecución de un comando terraform destroy -target=<default resource>
  • Cambio de manage_default_resource_id para un recurso por defecto aplicado anteriormente