Deployment Manager Convert (DM Convert) es una herramienta que puedes usar para convertir tus configuraciones y plantillas de Deployment Manager a otros formatos de configuración declarativa compatibles con Google. Actualmente, Google admite Terraform y Kubernetes Resource Model (KRM).
¿Por qué convertir a Terraform o KRM?
Terraform y KRM son opciones populares para gestionar Google Cloud servicios e infraestructura. Ofrecen ecosistemas actualizados de forma activa, con compatibilidad con funciones modernas, como la gestión de secretos y la conciliación continua (en el caso de KRM).
Google colabora con HashiCorp para desarrollar el proveedor de Terraform Google Cloud. En el 2020, Google también lanzó Config Connector para ayudar a los clientes a usar Kubernetes para gestionar Google Cloud tipos de recursos.
Terraform
Terraform es una herramienta de código abierto para aprovisionar infraestructura. Puedes usar Terraform para escribir configuraciones declarativas y gestionar tus servicios y recursos de Google Cloud con el proveedor de Terraform para Google Cloud. Para obtener más información, consulta Terraform en Google Cloud.
Modelo de recursos de Kubernetes (KRM)
KRM es un paradigma para crear APIs y definiciones de recursos para la gestión de configuraciones declarativa. Representa Google Cloud recursos como definiciones de recursos personalizados (CRDs) y se puede activar con Config Controller.
Tipos y proveedores de tipos admitidos
DM Convert convierte los archivos YAML de configuración de Deployment Manager y los archivos de plantilla Jinja o Python en archivos de configuración de KRM o Terraform.
Para comprobar el estado actual de la compatibilidad de DM Convert con los proveedores de tipos y los tipos de recursos, puedes usar la marca --list-supported-types
.
Cómo traduce DM Convert los conceptos entre formatos
En la siguiente tabla se muestra cómo traduce DM Convert los conceptos de Deployment Manager a KRM y Terraform:
Concepto de Deployment Manager | Conversión de KRM/Config Connector | Conversión de Terraform |
---|---|---|
References | Referencias de recursos, si el esquema de KRM define el campo como referencia. Si el esquema de KRM no define el campo como una referencia, la referencia de Deployment Manager se sustituye por su valor resuelto. | Las referencias de Terraform tienen un aspecto y un comportamiento similares a las referencias de Deployment Manager. |
Dependencias explícitas (depends_on ) |
No se admite el orden explícito de las dependencias. Los recursos se activan de forma coherente. | depends_on |
Enlaces de Gestión de Identidades y Accesos (IAM) (bloques accessControl autorizados) |
IAMPolicy |
<resource_type>_iam_policy (por ejemplo, google_pubsub_topic_iam_policy ) |
Vinculaciones de gestión de identidades y accesos (tipos no autoritativos iamMemberBinding ) |
IAMPolicyMember |
<resource_type>_iam_member (por ejemplo, google_project_iam_member ) |
Tipos compuestos | Los tipos compuestos están obsoletos. DM Convert no las convierte. | Los tipos compuestos están obsoletos. DM Convert no las convierte. |
Acciones, proveedores de tipos personalizados y salidas | No es compatible. | Las acciones que tienen equivalentes declarativos en Terraform se convierten. Para obtener más información, consulta el artículo Asistencia para acciones. |
Compatibilidad con las acciones en DM Convert (para Terraform)
Acciones es una función de vista previa de Deployment Manager que amplía el conjunto de métodos de API disponibles. Las acciones no se admiten y DMConvert no convierte las acciones que no tienen equivalentes declarativos en Terraform, como las siguientes:
APIs Patch, Delete y List
APIs definidas en proveedores de tipos personalizados
APIs personalizadas, como
sqladmin-v1beta4:sql.instances.restart
DM Convert admite la conversión a equivalentes de Terraform para las acciones en los siguientes casos:
Sustituye las llamadas Action a las APIs que insertan un recurso por recursos de Terraform equivalentes. Por ejemplo,
action: gcp-types/storage-v1:storage.buckets.insert
se convierte engoogle_storage_bucket
.Convierte las llamadas a acciones que obtienen un recurso en tipos de
data
de Terraform siempre que sea posible. Por ejemplo,actions: gcp-types/compute-v1:compute.subnetworks.get
se convierte engoogle_compute_subnetwork
.Convierte los comandos
setIamPolicy
en recursos*_iam_policy
(autoritativos) o*_iam_member
(no autoritativos), en función de si se usan congetIamPolicy
.
Para obtener información sobre cómo migrar el uso de acciones a alternativas declarativas en Deployment Manager, consulta el artículo Sustituir el uso de acciones.
Flujo de trabajo para convertir a Terraform
Para usar DM Convert y convertir tus configuraciones de Deployment Manager a Terraform, sigue estos pasos:
- Identifica la configuración de Deployment Manager que quieras convertir a Terraform.
- Para asegurarte de que tus recursos estén actualizados, concilia las implementaciones activas de la configuración.
- Para convertir tu configuración a Terraform, ejecuta la herramienta DM Convert de forma local.
- Verifica que la configuración de Terraform generada refleje el estado actual de tus recursos.
- Elimina el despliegue de Deployment Manager. Para conservar tus recursos al eliminar la implementación, define
delete-policy
comoabandon
.
Te recomendamos que sigas las prácticas recomendadas de Terraform, como las siguientes:
- Almacenar el estado de Terraform en un segmento de Cloud Storage
- Usar Cloud Build para gestionar la activación.
Para obtener una guía detallada de este flujo de trabajo, consulta el artículo Convertir las configuraciones de Deployment Manager con DM Convert.
Recogida de datos en DM Convert
Qué recogemos de forma predeterminada
De forma predeterminada, la herramienta Convert de DM envía datos de uso anónimos a Google para ayudarnos a mantener y mejorar la herramienta. Cuando se ejecuta la herramienta DM Convert, se recogen datos sobre la operación solicitada, si se ha completado correctamente y el tiempo que ha tardado en realizarse la conversión. Estos datos son anónimos y no incluyen información personal identificable, datos sensibles ni contenido de los clientes.
Los datos de uso pueden contener lo siguiente:
Parámetros de entrada del comando de conversión: registramos los valores de los parámetros de tu comando de conversión al ejecutar la herramienta, incluido el formato de salida (KRM o Terraform) y las representaciones booleanas de si se especifican otras marcas (no recogemos los valores específicos de esas marcas).
Resultado de la conversión: registramos los resultados de la conversión, incluido el estado de la conversión (
SUCCESS
oFAILURE
), así como el código y el mensaje de error, si se produce algún problema.Hora de la conversión: registramos las horas de inicio y finalización de la conversión.
Cómo usamos estos datos
Google recoge y trata los datos de uso para lo siguiente:
Descubrir cómo se usa la herramienta, incluidas las funciones y los ajustes más populares.
Diagnosticar el uso incorrecto de la herramienta y ofrecer asistencia técnica a los usuarios.
Mejorar la herramienta resolviendo problemas y, posiblemente, aumentando la cobertura de las funciones.
Inhabilitar la recogida de datos
Google recoge datos de uso de forma predeterminada cuando ejecutas una conversión, pero esta recogida de datos se puede inhabilitar.
Para inhabilitar la recogida de datos de una conversión específica, puede especificar la marca --opt_out_data_collection=true
en el comando de conversión. Para seguir inhabilitando esta recogida de datos, debe especificar la marca cada vez que ejecute una conversión.
Para habilitar la recogida de datos de una conversión específica, puede especificar la marca --opt_out_data_collection=false
en el comando de conversión u omitirla.