Previsualizar una actualización de una implementación

En esta página se describe cómo usar Infrastructure Manager para previsualizar la implementación de recursos definidos en una configuración de Terraform.

Una vista previa describe las acciones para activar una configuración de Terraform específica. Antes de crear o actualizar una implementación, puedes previsualizarla para verificar los recursos que se van a aprovisionar.

Una vista previa ejecuta el comando Terraform plan. En esta página se da por hecho que conoces Terraform. Para obtener más información, consulta Terraform e Infrastructure Manager.

Para crear una vista previa, la configuración de Terraform debe ser compatible con una de las versiones de Terraform admitidas.

Antes de empezar

  1. Habilita Infra Manager.
  2. Asegúrate de que tienes los permisos de gestión de identidades y accesos necesarios para crear vistas previas: roles/config.admin.
  3. Asegúrate de que tienes una cuenta de servicio con los permisos necesarios. Para obtener más información, consulta el artículo Configurar la cuenta de servicio.
  4. Identifica la configuración de Terraform que quieres previsualizar. Asegúrate de que esta configuración de Terraform cumpla las restricciones, incluido que no contenga datos sensibles.

Previsualizar una actualización de una implementación

La configuración de Terraform que uses para actualizar una implementación puede estar en un contenedor de almacenamiento o en un repositorio de Git.

También puedes usar esta configuración de Terraform para obtener una vista previa de la actualización.

Vista previa con una configuración de Terraform almacenada en un segmento de Cloud Storage

Cuando actualizas una implementación, es posible que algunos de los recursos no cambien. En la vista previa de una actualización se muestran los recursos que se van a aprovisionar o eliminar, así como los que no se van a modificar.

  1. Identifica la implementación que quieras actualizar.

  2. Asegúrate de que la configuración de Terraform se haya subido a un segmento de Cloud Storage. Para obtener más información, consulta el artículo sobre cómo subir una configuración a un contenedor de almacenamiento.

    Un segmento de almacenamiento te permite controlar el acceso a la configuración. También puedes implementar una configuración de Terraform que esté almacenada en un repositorio de Git o en tu máquina local.

  3. Para obtener una vista previa de la actualización, sigue estos pasos:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
        --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
        --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
        --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION
        --provider-source=SERVICE_MAINTAINED
    

    Sustituye:

    • PROJECT_ID es el ID del proyecto en el que se ejecuta Infrastructure Manager.
    • LOCATION es la ubicación en la que se ejecuta Infra Manager. Consulta las ubicaciones de Infrastructure Manager para ver la lista de ubicaciones válidas.
    • PREVIEW_ID es el identificador de vista previa que especifiques. Consulta Nombre de vista previa para obtener información sobre las restricciones del identificador de vista previa.
    • SERVICE_ACCOUNT es el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
    • SERVICE_ACCOUNT_PROJECT_ID es el ID de proyecto de la cuenta de servicio. Es habitual que sea el mismo proyecto en el que se ejecuta Gestor de infraestructura.
    • DEPLOYMENT_ID es el identificador de la implementación que quieres actualizar.
    • BUCKET_NAME es el nombre del segmento de almacenamiento en el que se almacena la configuración.
    • OBJECT_NAME es el nombre del objeto del archivo de configuración. Este objeto puede ser un directorio o un archivo ZIP, pero no un archivo de Terraform. Si usas el control de versiones de objetos, también puedes especificar el número de generación del objeto. Para obtener más información, consulta Usar objetos versionados.

      Si el contenedor de almacenamiento es la ruta raíz de la configuración de Terraform, OBJECT_NAME es opcional.

    • INPUT_1_NAME=VALUE y INPUT_2_NAME=VALUE: cualquier valor de entrada de la configuración de Terraform, incluidos los que no están definidos de forma predeterminada. Por ejemplo, puedes especificar el proyecto en el que implementas los recursos como project_id=my-project.

      Si todos los valores de entrada se definen de forma predeterminada en la configuración, esta marca es opcional.

    • Opcional: TERRAFORM_VERSION, la versión de Terraform que Infra Manager debe usar para crear la implementación. Consulta la versión de Terraform compatible para ver la lista de versiones admitidas. Si quitas esta marca opcional, se usará la versión más reciente compatible de Terraform.

    • Opcional: PROVIDER_SOURCE: determina qué proveedor de Terraform utiliza Google Cloud el despliegue. Defina el valor SERVICE_MAINTAINED para usar el proveedor de Terraform mantenido por Infra Manager. Omite este campo para usar el proveedor de Terraform mantenido por HashiCorp. Para obtener más información, consulta Usar el proveedor de Terraform para Google Cloud.

    Los campos de la implementación, como la configuración de Terraform, las variables y la cuenta de servicio, se combinan automáticamente en la vista previa, a menos que especifiques nuevos valores en el comando de vista previa.

Ahora que has creado una vista previa, puedes exportar y ver los resultados para revisar el plan de implementación.

Vista previa con una configuración de Terraform almacenada en un repositorio de Git

Cuando actualizas una implementación, es posible que algunos de los recursos no cambien. En la vista previa de una actualización se muestran los recursos que se van a aprovisionar o eliminar, así como los que no se van a modificar.

  1. Si tu configuración de Terraform se almacena en un repositorio de Git privado y aún no lo has hecho, asegúrate de que te has conectado a tu host de GitHub y a tu repositorio de GitHub mediante Cloud Build para proporcionar acceso a Infra Manager a tu repositorio.
  2. Para actualizar un despliegue, sigue estos pasos:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
        --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
        --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
        --git-source-repo="GIT_REPO" \
        --git-source-directory="DIRECTORY" \
        --git-source-ref="REF" \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION
        --provider-source=SERVICE_MAINTAINED
    

    Sustituye:

    • PROJECT_ID es el ID del proyecto en el que se ejecuta Infrastructure Manager.
    • LOCATION es la ubicación en la que se ejecuta Infra Manager. Consulta las ubicaciones de Infrastructure Manager para ver la lista de ubicaciones válidas.
    • PREVIEW_ID es el identificador de vista previa que especifiques. Consulta Nombre de vista previa para obtener información sobre las restricciones del identificador de vista previa.
    • SERVICE_ACCOUNT es el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
    • SERVICE_ACCOUNT_PROJECT_ID es el ID de proyecto de la cuenta de servicio. Es habitual que sea el mismo proyecto en el que se ejecuta Gestor de infraestructura.
    • DEPLOYMENT_ID es el identificador de la implementación que quieres actualizar.
    • GIT_REPO: el repositorio de Git.
    • DIRECTORY: el directorio que tiene la configuración de Terraform.
    • REF: la referencia de Git de la configuración. La referencia es opcional. Si no especificas la referencia, se usará la rama predeterminada configurada del repositorio de Git.
    • INPUT_1_NAME=VALUE y INPUT_2_NAME=VALUE: cualquier valor de entrada de la configuración de Terraform, incluidos los que no están definidos de forma predeterminada. Por ejemplo, puedes especificar el proyecto en el que implementas los recursos como project_id=my-project.

      Si todos los valores de entrada se definen de forma predeterminada en la configuración, esta marca es opcional.

    • Opcional: TERRAFORM_VERSION, la versión de Terraform que Infra Manager debe usar para crear la implementación. Consulta la versión de Terraform compatible para ver la lista de versiones admitidas. Si quitas esta marca opcional, se usará la versión más reciente compatible de Terraform.

    • Opcional: PROVIDER_SOURCE: determina qué proveedor de Terraform utiliza Google Cloud el despliegue. Defina el valor SERVICE_MAINTAINED para usar el proveedor de Terraform mantenido por Infra Manager. Omite este campo para usar el proveedor de Terraform mantenido por HashiCorp. Para obtener más información, consulta Usar el proveedor de Terraform para Google Cloud.

Los campos de la implementación, como la configuración de Terraform, las variables y la cuenta de servicio, se combinan automáticamente en la vista previa, a menos que especifiques nuevos valores en el comando de vista previa.

Ahora que has creado una vista previa, puedes exportar y ver los resultados para revisar el plan de implementación.

Siguientes pasos