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 los recursos hayan cambiado después de un tiempo. 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 devolverla al estado elegido.
Para 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 describe la infraestructura nueva.
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
- Asegúrate de que Infra Manager esté habilitado.
- Asegúrate de tener los permisos de IAM necesarios para crear implementaciones:
roles/config.admin
- Asegúrate de tener una cuenta de servicio con los permisos necesarios. Para obtener más detalles, consulta Configura la cuenta de servicio.
- Identifica la implementación de Infra Manager que deseas actualizar.
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 que ya se implementó.
Asegúrate de que esta configuración de Terraform cumpla con las restricciones, incluida la de que no contenga datos sensibles.
Confirma la cuota de tu organización para los productos asociados con la infraestructura que deseas. Es posible que se produzcan errores de implementación si la infraestructura prevista supera la cuota de tu organización para los productos que usa la implementación. Consulta Cuotas y límites para obtener más información.
Toma los pasos necesarios para la migración de datos o la continuidad del servicio de los recursos que estás modificando.
Si deseas obtener una vista previa de la actualización antes de configurar los recursos, consulta Cómo obtener una vista previa de una actualización de una implementación.
Otorga permisos específicos de la configuración
Para implementar los recursos de Google Cloud que se especifican en la configuración de Terraform, la cuenta de servicio que usas para llamar a Infra Manager necesita permisos específicos para lo siguiente:
Los recursos deGoogle 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 la configuración que se usa para la implementación, necesitas permisos para los recursos definidos en ambas configuraciones.
Los permisos específicos de los recursos definidos en la configuración se suman a los permisos que la cuenta de servicio necesita 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 Cómo configurar la cuenta de servicio.
Conecta tu repositorio de Git privado y alójalo en 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.
GitHub
GitHub Enterprise
GitLab
GitLab Enterprise
Otorga permiso para actualizar implementaciones.
Para actualizar una implementación, debes implementar 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 Cómo implementar la 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:
- En la consola de Google Cloud , ve a la página Infra Manager.
- En la página Implementaciones, busca en la columna ID y haz clic en la implementación que deseas actualizar.
- En la página titulada con el ID de implementación, haz clic en Editar.
- En la página Detalles de la implementación, puedes modificar los campos Versión de Terraform, Cuenta de servicio, y Fuente de la configuración de Terraform . Si proporcionas un repositorio de Git privado, asegúrate de conectar tu host y repositorio a Cloud Build.
Haga clic en Continuar.
- En la página Detalles de Terraform, puedes modificar los valores de entrada para la configuración de Terraform. Haz clic en Continuar.
- En la página Detalles avanzados, puedes modificar los campos Etiquetas y anotaciones, Grupos de trabajadores y Bucket de Cloud Storage de artefactos.
- 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 sobre cómo implementar recursos.
gcloud CLI
En esta sección, se describe cómo implementar 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.
- 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.
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.
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 \ --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
- 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 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 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 Cómo usar objetos con versión.
Si el bucket de almacenamiento es la ruta de acceso 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 de tus archivos de configuración de Terraform está habilitada o aplicada cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
ENABLED
: Habilita la validación de cuotas 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 la implementación falle si no hay suficiente cuota 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 recursos limitados de Google Cloud . 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 versión compatible de Terraform 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 etiquetas, consulta Anotaciones y etiquetas.
gcloud CLI
En esta sección, se describe cómo trabajar con una configuración de Terraform que se almacena en un repositorio de Git.
- Asegúrate de tener instalado Git.
- Si tu configuración de Terraform se almacena en un
repositorio de Git privado , asegúrate de que el host y el repositorio de Git estén conectados a Cloud Build. 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 \ --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
- 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 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: El repositorio de Git.
- DIRECTORY: Es el directorio que tiene la configuración de Terraform.
- Opcional: REF: Es la referencia de Git de la configuración. La referencia es opcional. Si no especificas la referencia, se usará la rama configurada predeterminada del repositorio de Git.
- Opcional: QUOTA_VALIDATION: Es el valor que determina si la validación de cuotas para los recursos de tus archivos de configuración de Terraform está habilitada o aplicada cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
ENABLED
: Habilita la validación de cuotas 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 la implementación falle si no hay suficiente cuota 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 recursos limitados de Google Cloud . 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 versión compatible de Terraform 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 etiquetas, consulta Anotaciones y etiquetas.
gcloud CLI
En esta sección, se describe cómo trabajar con una configuración de Terraform que se almacena en tu máquina local.
- Si usas Cloud Shell, debes subir la configuración a Cloud Shell. Para obtener más información, consulta Administra archivos con Cloud Shell.
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 \ --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
- 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 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 de tus archivos de configuración de Terraform está habilitada o aplicada cuando creas una implementación. Entre los valores posibles, se incluyen los siguientes:
ENABLED
: Habilita la validación de cuotas 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 la implementación falle si no hay suficiente cuota 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 recursos limitados de Google Cloud . 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 versión compatible de Terraform 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 etiquetas, consulta Anotaciones y etiquetas.
¿Qué sigue?
- Obtén más información sobre Terraform con Google Cloud.
- Automatiza las implementaciones.
- Consulta el estado de una implementación.
- Ver los recursos implementados.
- Borra una implementación.