Gestion des ressources de réseau cloud virtuel par défaut

Gérez les ressources VCN par défaut à l'aide du fournisseur Oracle Cloud Infrastructure Terraform.

Lorsque vous créez une ressource oci_core_vcn, les ressources associées suivantes sont également créées par défaut:

  • oci_core_security_list
  • oci_core_dhcp_options
  • oci_core_route_table

Ces ressources par défaut sont créées implicitement même si elles ne sont pas spécifiées dans la configuration Terraform. Leurs OCID sont renvoyés par les attributs suivants sous la ressource oci_core_vcn :

  • default_security_list_id
  • default_dhcp_options_id
  • default_route_table_id

Les ressources par défaut doivent être configurées dans Terraform à l'aide d'un type de ressource distinct. Voici les correspondances entre la ressource et le nouveau type de ressource à utiliser pour configurer les ressources par défaut :

  • 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

Les types de ressource par défaut sont configurés de la même manière que les autres types. La seule différence est l'indication de l'ID de la ressource par défaut à l'aide de l'argument manage_default_resource_id.

Par conséquent, vcn_id n'est plus nécessaire pour les ressources par défaut.

L'exemple suivant modifie la table de routage par défaut d'un VCN et les options 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"
    }
}

Limites

Les ressources par défaut peuvent uniquement être enlevées lorsque la ressource oci_core_vcn associée est enlevée. En cas de tentative de suppression ciblée d'une ressource par défaut, la ressource est enlevée du fichier d'état Terraform, mais elle peut toujours exister dans OCI avec des paramètres vides.

Exemples de suppression ciblée :

  • Suppression d'une ressource par défaut dans une configuration Terraform précédemment appliquée
  • Exécution d'une commande terraform destroy -target=<default resource>
  • Modification de manage_default_resource_id pour une ressource par défaut précédemment appliquée