Previsualizar un despliegue

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.
  5. Si quieres almacenar la configuración de Terraform en un segmento de almacenamiento, 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.

Previsualizar una nueva implementación

La configuración de Terraform que previsualizas puede estar en un segmento de almacenamiento o en un repositorio de Git.

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

  1. 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.

  2. 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 \
        --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION \
        --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
        --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.
    • 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: ANNOTATION_KEY y ANNOTATION_VALUE representan un par clave-valor de texto de formato libre que se puede adjuntar a tus implementaciones de Infra Manager. Para obtener más información sobre el uso y las restricciones de las anotaciones y las etiquetas, consulte el artículo Anotaciones y etiquetas.

    • 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.

Para actualizar una implementación almacenada en un repositorio de Git, sigue estos pasos:

  1. Si utilizas un repositorio de Git privado, 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 obtener una vista previa del 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 \
        --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 \
        --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
        --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.
  • 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: ANNOTATION_KEY y ANNOTATION_VALUE representan un par clave-valor de texto de formato libre que se puede adjuntar a tus implementaciones de Infra Manager. Para obtener más información sobre el uso y las restricciones de las anotaciones y las etiquetas, consulte el artículo Anotaciones y etiquetas.

  • 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.

Después de previsualizar una implementación, puedes crearla para aprovisionar los recursos. Para obtener más información, consulta Implementar recursos.

Siguientes pasos