Metros frente a instalaciones
En abril de 2021, [Equinix Metal puso en marcha un nuevo concepto de ubicación: metros. Un metro es un concepto de Equinix para centros de datos agrupados geográficamente. Los centros de datos dentro de un metro comparten capacidad y características de red. Puede obtener más información sobre los metros en https://docs.equinix.com/metal/locations/metros/. En abril de 2023, [el despliegue de instalaciones quedó obsoleto, ofreciéndose el aprovisionamiento de metro como una estrategia de despliegue globalmente superior. Consulte la [guía de instalaciones en los documentos de la API de Metal para obtener más detalles sobre el cambio de la API.
Antes de la introducción de los metros, los recursos se desplegaban en una única ubicación facility. Al aprovisionar recursos equinix_metal_device, la instalación podía ser elegida por Equinix Metal con una lista de facilities proporcionada por el usuario, o una instalación comodín any. Las ubicaciones de las instalaciones individuales utilizan un código como "sv15" o "ny5". Los metros agrupan instalaciones. Por ejemplo, el metro "sv" contiene la instalación "sv15", entre otras. Si especifica un metro al crear un recurso, éste se desplegará en una de las instalaciones del grupo de metros. A continuación, podrá encontrar la instalación desplegada mediante un atributo de sólo lectura del recurso (por ejemplo, deployed_facility para recursos equinix_metal_device).
Cambiar sus plantillas Terraform para utilizar metros en lugar de instalaciones
Para aprovechar algunas de las características del metro, es posible que desee cambiar la configuración de sus plantillas Terraform para que los dispositivos tengan especificado metro en lugar de facilities. Como tanto metro como facilities son parámetros ForceNew (un cambio provocará la recreación del recurso), debe tener cuidado si no quiere que se destruya el dispositivo.
Hemos actualizado el recurso equinix_metal_device para que el cambio se produzca sin problemas, pero le rogamos que proceda con cuidado. El parámetro metro también es un atributo computado, y si utiliza una versión del proveedor más reciente que la 3.2.1, el atributo metro estará realmente presente en su recurso. Entonces sólo tendrá que añadirlo explícitamente a su configuración.
El parámetro facilities sólo se utiliza para la selección de instalaciones al crear el recurso de dispositivo. La instalación real en la que se despliega el dispositivo se encuentra en el deployed_facility atributo Computed.
Si sólo desea cambiar la especificación del recurso equinix_metal_device de basado en instalaciones a basado en metro, por ejemplo, de instalaciones ["sv15"] a metro "sv", basta con eliminar el atributo facilities y añadir el atributo metro.
Por ejemplo, dada la siguiente configuración de un dispositivo desplegado en la instalación sv15:
resource "equinix_metal_device" "node" {
project_id = local.project_id
facilities = ["sv15"]
plan = "c3.small.x86"
operating_system = "ubuntu_16_04"
hostname = "test"
billing_cycle = "hourly"
}
.. puede eliminar faclities y añadir metro, cambiando la configuración a:
resource "equinix_metal_device" "node" {
project_id = local.project_id
metro = "sv"
plan = "c3.small.x86"
operating_system = "ubuntu_16_04"
hostname = "test"
billing_cycle = "hourly"
}
Para comprobar que el cambio no ha contaminado el estado y que el dispositivo no se volverá a crear, puede comprobar si terraform plan informa de alguna diferencia. El estado de terraformación debería estar actualizado siempre que la instalación en la que se desplegó el dispositivo estuviera contenida en el metro.
Si el diff del plan no está vacío, es posible que haya utilizado un metro que no contenga la instalación en la que se desplegó el dispositivo. Esto podría ocurrir si ha utilizado más instalaciones de la lista facilities, o si ha utilizado la instalación especial "cualquiera".
Puede averiguar la instalación desplegada y el metro que la contiene examinando el estado de terraformación del recurso equinix_metal_device:
$ terraform state show equinix_metal_device.node | grep deployed
deployed_facility = "sv15"
$ terraform state show equinix_metal_device.node | grep metro
metro = "sv"
A continuación, debe establecer el metro existente en sus plantillas Terraform.