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.
La referencia completa de los recursos y orígenes de datos que soporta el proveedor de Terraform de OCI contiene detalles sobre el uso, los argumentos y los atributos. La referencia completa está disponible en docs.oracle.com y en Terraform Registry.
Los recursos y los orígenes de datos se agrupan por servicio en la referencia.
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