Otorga permiso para actualizar implementaciones.

En esta página, se describe cómo usar Infrastructure Manager para actualizar una implementación. Estos son algunos casos en los que puedes actualizar una implementación:

  • Para devolver tu infraestructura a un estado elegido

    Cuando creas una implementación, es posible que, después de un tiempo, los recursos hayan cambiado. Por ejemplo, es posible que alguien que trabaja en la consola haya modificado algunos de los recursos. Puedes actualizar la implementación con la configuración original de Terraform para que vuelva al estado elegido.

  • Implementar cambios en la infraestructura

    Después de crear una implementación, es posible que desees modificar la infraestructura. Por ejemplo, agregar recursos nuevos o cambiar parte de la configuración Puedes actualizar la implementación con una configuración de Terraform que describa la nueva infraestructura.

En esta página, se supone que estás familiarizado con Terraform. Para obtener más detalles, consulta Terraform y Infra Manager.

Antes de comenzar

  1. Asegúrate de que Infra Manager esté habilitado.
  2. Asegúrate de tener los permisos de IAM necesarios para crear implementaciones: roles/config.admin
  3. Asegúrate de tener una cuenta de servicio con los permisos necesarios. Para obtener más información, consulta Configura la cuenta de servicio.
  4. Identifica la implementación de Infra Manager que se actualizará.
  5. Identifica la configuración de Terraform que se implementará para la actualización. Se puede usar cualquier configuración para una revisión. Esta configuración suele ser una versión idéntica o actualizada de la configuración ya implementada.

    Asegúrate de que esta configuración de Terraform cumpla con las restricciones, lo que incluye que la configuración no contenga datos sensibles.

  6. Confirma la cuota de tu organización para los productos asociados con la infraestructura que deseas usar. Es posible que se produzcan errores de implementación si la infraestructura que deseas usar supera la cuota de tu organización para los productos que usa tu implementación. Consulta Cuotas y límites para obtener más información.

  7. Toma las medidas necesarias para la migración de datos o la continuidad del servicio de los recursos que estás modificando.

  8. Si deseas obtener una vista previa de la actualización antes de configurar los recursos, consulta Obtén una vista previa de una actualización de una implementación.

Otorga permisos específicos para la configuración

Para implementar recursos Google Cloud especificados en la configuración de Terraform, la cuenta de servicio que usas para llamar a Infra Manager necesita permisos específicos para lo siguiente:

  • RecursosGoogle Cloud definidos en la configuración que usas para la revisión.

  • Si la configuración que usas para la revisión define recursos diferentes de los que se definen en la configuración que se usa para la implementación, necesitas permisos para los recursos definidos en ambas configuraciones.

Los permisos específicos para los recursos definidos en la configuración se suman a los permisos que necesita la cuenta de servicio para usar el servicio de Infra Manager.

Para obtener detalles sobre cómo otorgar permisos para los recursos de Google Cloud y asegurarte de tener acceso a los proyectos necesarios, consulta Configura la cuenta de servicio.

Conecta tu repositorio y host de Git privados a Cloud Build

Si implementas una configuración de Terraform desde un repositorio de Git privado, debes conectar tu host y repositorio de Git a Cloud Build.

Otorga permiso para actualizar implementaciones.

Para actualizar una implementación, implementa una configuración con el mismo nombre de implementación, lo que crea una revisión. Para obtener más detalles, consulta la Descripción general de las implementaciones y las revisiones.

Si no tienes una implementación existente, consulta Implementa infraestructura con Infra Manager.

Para obtener una vista previa de una actualización sin aprovisionar recursos, consulta Obtén una vista previa de una implementación.

Selecciona la pestaña con el flujo de trabajo que elegiste para obtener más información sobre cómo actualizar una implementación.

Console

En esta sección, se describe cómo actualizar una configuración de Terraform con Infra Manager en la consola de Google Cloud .

Implementa la configuración y crea una revisión:

  1. En la consola de Google Cloud , ve a la página Infra Manager.

    Ir a Infra Manager

  2. En la página Implementaciones, busca la columna ID y haz clic en la implementación que deseas actualizar.
  3. En la página con el título de tu ID de implementación, haz clic en Editar.
  4. En la página Detalles de la implementación, puedes modificar los campos Versión de Terraform, Cuenta de servicio y Fuente de configuración de Terraform. Si proporcionas un repositorio de Git privado, asegúrate de haber conectado tu host y repositorio a Cloud Build.

    Haz clic en Continuar.

  5. En la página Detalles de Terraform, puedes modificar los valores de entrada para la configuración de Terraform. Haz clic en Continuar.
  6. En la página Detalles avanzados, puedes modificar los campos Etiquetas y anotaciones, Grupos de trabajadores y Bucket de Cloud Storage de artefactos.
  7. Haz clic en Actualizar cuando estés conforme con los cambios que realizaste en la implementación para iniciar el proceso de actualización.

Para obtener más información sobre los parámetros de implementación y sus formatos, consulta la documentación de Implementa recursos.

gcloud CLI

En esta sección, se describe la implementación de una configuración de Terraform que se almacena en un bucket de Cloud Storage. Un bucket de almacenamiento te permite controlar el acceso a la configuración.

  1. Asegúrate de que la configuración de Terraform esté en un bucket de Cloud Storage. Consulta Cómo subir una configuración a un bucket de almacenamiento para obtener más detalles.
  2. Si el bucket de almacenamiento está en un proyecto diferente del proyecto en el que ejecutas Infra Manager, debes asegurarte de que la cuenta de servicio de Infra Manager tenga permiso de lectura para el bucket. Consulta Configura la cuenta de servicio para obtener más detalles.

    Si el bucket de almacenamiento está en el mismo proyecto que Infra Manager, el permiso de lectura para el bucket ya está habilitado.

  3. Implementa la configuración y crea una revisión:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Reemplaza lo siguiente:
  • PROJECT_ID: Es el ID del proyecto en el que se ejecuta Infra Manager.
  • LOCATION: Es la ubicación en la que se ejecuta Infra Manager. Consulta las ubicaciones de Infra Manager para obtener la lista de ubicaciones válidas.
  • DEPLOYMENT_ID: Es el identificador de implementación que especificas. Consulta Nombre de la implementación para obtener detalles sobre las restricciones del identificador de implementación.
  • SERVICE_ACCOUNT_PROJECT_ID es el ID del proyecto de la cuenta de servicio. Es común que este sea el mismo proyecto en el que se ejecuta Infra Manager.
  • SERVICE_ACCOUNT: Es el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
  • BUCKET_NAME: Es el nombre del bucket 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 detalles, consulta Usa objetos con versiones.

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

  • Opcional: QUOTA_VALIDATION: Es el valor que determina si la validación de cuotas para los recursos en tus archivos de configuración de Terraform está habilitada o se aplica cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
    • ENABLED: Habilita la validación de la cuota de procesamiento para los recursos en los archivos de configuración de Terraform. Proporciona visibilidad de los recursos con cuotas insuficientes.
    • ENFORCED: Aplica la validación de cuotas para que tu implementación falle si no hay cuota suficiente disponible para la infraestructura definida en tu archivo de configuración de Terraform.

    Si no se define QUOTA_VALIDATION, se inhabilitará la validación de cuotas en los archivos de configuración de Terraform. Este es el valor predeterminado. La validación de cuotas se aplica a los recursos Google Cloud limitados. Para obtener más información, consulta Cuotas y límites.

  • INPUT_1_NAME y INPUT_2_NAME: Cualquier valor de entrada en 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: Es la versión de Terraform que Infra Manager usará para crear la implementación. Consulta la versión de Terraform compatible para obtener la lista de versiones compatibles. 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, consulta Anotaciones y etiquetas.
  • Opcional: PROVIDER_SOURCE: Determina qué proveedor de Terraform usa Google Cloud para la implementación. Se establece en SERVICE_MAINTAINED para usar el proveedor de Terraform que mantiene Infra Manager. Omite este campo para usar el proveedor de Terraform que mantiene HashiCorp. Para obtener más información, consulta Usa el proveedor de Terraform para Google Cloud.

gcloud CLI

En esta sección, se describe cómo trabajar con una configuración de Terraform almacenada en un repositorio de Git.

  1. Asegúrate de haber instalado Git.
  2. Si tu configuración de Terraform se almacena en un repositorio de Git privado, asegúrate de que tu host y repositorio de Git estén conectados a Cloud Build.
  3. Implementa la configuración y crea una revisión:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --git-source-repo="GIT_REPO" \
            --git-source-directory="DIRECTORY" \
            --git-source-ref="REF" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Reemplaza lo siguiente:
  • PROJECT_ID: Es el ID del proyecto en el que se ejecuta Infra Manager.
  • LOCATION: Es la ubicación en la que se ejecuta Infra Manager. Consulta las ubicaciones de Infra Manager para obtener la lista de ubicaciones válidas.
  • DEPLOYMENT_ID: Es el identificador de implementación que especificas. Consulta Nombre de la implementación para obtener detalles sobre las restricciones del identificador de implementación.
  • SERVICE_ACCOUNT_PROJECT_ID es el ID del proyecto de la cuenta de servicio. Es común que este sea el mismo proyecto en el que se ejecuta Infra Manager.
  • SERVICE_ACCOUNT: Es el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
  • GIT_REPO: Es el repositorio de Git.
  • DIRECTORY: Es el directorio que tiene la configuración de Terraform.
  • Opcional: REF, la referencia de Git de la configuración. La referencia es opcional. Si no especificas la referencia, se usa la rama configurada de forma predeterminada del repositorio de Git.
  • Opcional: QUOTA_VALIDATION: Es el valor que determina si la validación de cuotas para los recursos en tus archivos de configuración de Terraform está habilitada o se aplica cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
    • ENABLED: Habilita la validación de la cuota de procesamiento para los recursos en los archivos de configuración de Terraform. Proporciona visibilidad de los recursos con cuotas insuficientes.
    • ENFORCED: Aplica la validación de cuotas para que tu implementación falle si no hay cuota suficiente disponible para la infraestructura definida en tu archivo de configuración de Terraform.

    Si no se define QUOTA_VALIDATION, se inhabilitará la validación de cuotas en los archivos de configuración de Terraform. Este es el valor predeterminado. La validación de cuotas se aplica a los recursos Google Cloud limitados. Para obtener más información, consulta Cuotas y límites.

  • INPUT_1_NAME y INPUT_2_NAME: Cualquier valor de entrada en 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: Es la versión de Terraform que Infra Manager usará para crear la implementación. Consulta la versión de Terraform compatible para obtener la lista de versiones compatibles. 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, consulta Anotaciones y etiquetas.
  • Opcional: PROVIDER_SOURCE: Determina qué proveedor de Terraform usa Google Cloud para la implementación. Se establece en SERVICE_MAINTAINED para usar el proveedor de Terraform que mantiene Infra Manager. Omite este campo para usar el proveedor de Terraform que mantiene HashiCorp. Para obtener más información, consulta Usa el proveedor de Terraform para Google Cloud.

gcloud CLI

En esta sección, se describe cómo trabajar con una configuración de Terraform almacenada en tu máquina local.

  1. Si usas Cloud Shell, debes subir la configuración a Cloud Shell. Para obtener más información, consulta Administra archivos con Cloud Shell.
  2. Implementa la configuración y crea una revisión:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --local-source="LOCAL_DIRECTORY" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Reemplaza lo siguiente:
  • PROJECT_ID: Es el ID del proyecto en el que se ejecuta Infra Manager.
  • LOCATION: Es la ubicación en la que se ejecuta Infra Manager. Consulta las ubicaciones de Infra Manager para obtener la lista de ubicaciones válidas.
  • DEPLOYMENT_ID: Es el identificador de implementación que especificas. Consulta Nombre de la implementación para obtener detalles sobre las restricciones del identificador de implementación.
  • SERVICE_ACCOUNT_PROJECT_ID es el ID del proyecto de la cuenta de servicio. Es común que este sea el mismo proyecto en el que se ejecuta Infra Manager.
  • SERVICE_ACCOUNT: Es el nombre de la cuenta de servicio que usas para llamar a Infra Manager.
  • LOCAL_DIRECTORY: Es el directorio local que almacena la configuración de Terraform. Si usas Cloud Shell, este es el directorio en el que se almacena la configuración.
  • Opcional: QUOTA_VALIDATION: Es el valor que determina si la validación de cuotas para los recursos en tus archivos de configuración de Terraform está habilitada o se aplica cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
    • ENABLED: Habilita la validación de la cuota de procesamiento para los recursos en los archivos de configuración de Terraform. Proporciona visibilidad de los recursos con cuotas insuficientes.
    • ENFORCED: Aplica la validación de cuotas para que tu implementación falle si no hay cuota suficiente disponible para la infraestructura definida en tu archivo de configuración de Terraform.

    Si no se define QUOTA_VALIDATION, se inhabilitará la validación de cuotas en los archivos de configuración de Terraform. Este es el valor predeterminado. La validación de cuotas se aplica a los recursos Google Cloud limitados. Para obtener más información, consulta Cuotas y límites.

  • INPUT_1_NAME y INPUT_2_NAME: Cualquier valor de entrada en 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: Es la versión de Terraform que Infra Manager usará para crear la implementación. Consulta la versión de Terraform compatible para obtener la lista de versiones compatibles. 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, consulta Anotaciones y etiquetas.
  • Opcional: PROVIDER_SOURCE: Determina qué proveedor de Terraform usa Google Cloud para la implementación. Se establece en SERVICE_MAINTAINED para usar el proveedor de Terraform que mantiene Infra Manager. Omite este campo para usar el proveedor de Terraform que mantiene HashiCorp. Para obtener más información, consulta Usa el proveedor de Terraform para Google Cloud.

¿Qué sigue?