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 que admite Google. Por el momento, Google admite Terraform y Kubernetes Resource Model (KRM).
¿Por qué realizar la conversión a Terraform o KRM?
Terraform y KRM son opciones populares para administrar la infraestructura y los servicios de Google Cloud. Ofrecen ecosistemas actualizados de forma activa, con compatibilidad para funciones modernas, como la administración de secretos y la conciliación continua (para KRM).
Google trabaja con HashiCorp en el desarrollo del proveedor de Terraform para Google Cloud. En 2020, Google también lanzó Config Connector para ayudar a los clientes a usar Kubernetes a fin de administrar los tipos de recursos de Google Cloud.
Terraform
Terraform es una herramienta de código abierto para aprovisionar infraestructura. Puedes usar Terraform para escribir configuraciones declarativas y administrar tus servicios y recursos de Google Cloud mediante 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 a fin de compilar API y definiciones de recursos para la administración de configuración declarativa. Representa los recursos de Google Cloud como definiciones de recursos personalizados (CRD) y se puede activar mediante el controlador de configuración.
Tipos compatibles y proveedores de tipos
DM Convert convierte los archivos YAML de configuración de Deployment Manager y los archivos de plantillas de Jinja o Python en archivos de configuración de KRM o Terraform.
Para verificar el estado actual de la compatibilidad de DM Convert en proveedores de tipos y tipos de recursos, puedes usar la marca --list-supported-types
.
Comprende cómo DM Convert traduce los conceptos en todos los formatos
En la siguiente tabla, se muestra cómo DM Convert traduce conceptos de Deployment Manager en KRM y Terraform:
Concepto de Deployment Manager | Conversión de KRM/Config Connector | Conversión de Terraform |
---|---|---|
Referencias | Referencias de recursos, si el esquema de KRM define el campo como una referencia. Si el esquema de KRM no define el campo como referencia, la referencia de Deployment Manager se reemplaza por su valor resuelto. | Las referencias de Terraform se ven y se comportan de manera similar a las referencias de Deployment Manager. |
Dependencias explícitas (depends_on ) |
No se admite el orden explícito de dependencias. Los recursos se activan con coherencia eventual. | depends_on |
Vinculaciones de administración de identidades y accesos (IAM) (bloques autorizados de accessControl ) |
IAMPolicy |
Tipos <resource_type>_iam_policy (por ejemplo, google_pubsub_topic_iam_policy ) |
Vinculaciones de IAM (tipos de iamMemberBinding no autorizados) |
IAMPolicyMember |
<resource_type>_iam_member (por ejemplo, google_project_iam_member ) |
Tipos compuestos | Los tipos compuestos están obsoletos. DM Convert no los convierte. | Los tipos compuestos están obsoletos. DM Convert no los convierte. |
Acciones, proveedores de tipos personalizados y salidas | No compatible. | Las acciones que tienen equivalentes declarativos en Terraform se convierten. Si deseas obtener más detalles, consulta Asistencia para acciones. |
Compatibilidad con Actions en DM Convert (para Terraform)
Actions es una función de vista previa para Deployment Manager que extiende el conjunto de métodos de API disponibles. Actions no es compatible, y DM Convert no convierte las acciones que no tienen equivalentes declarativos en Terraform, como las siguientes:
Aplicar parches a las API, borrarlas y enumerarlas
API definidas en proveedores de tipos personalizados
API personalizadas, como
sqladmin-v1beta4:sql.instances.restart
La conversión de DM admite la conversión a equivalentes de Terraform para Actions en los siguientes casos:
Reemplaza las llamadas de la acción a las API que insertan un recurso con recursos equivalentes de Terraform. Por ejemplo,
action: gcp-types/storage-v1:storage.buckets.insert
se convierte engoogle_storage_bucket
.Convierte las llamadas de la acción a las API que obtienen un recurso en los tipos
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
(autorizados) o*_iam_member
(no autorizados), según si se usan congetIamPolicy
o no.
Para obtener información sobre cómo migrar el uso de acciones a alternativas declarativas en Deployment Manager, consulta Reemplaza el uso de acciones.
Flujo de trabajo para la conversión a Terraform
Si quieres usar DM Convert para convertir tus parámetros de configuración de Deployment Manager en Terraform, sigue estos pasos:
- Identifica la configuración de Deployment Manager que deseas convertir en Terraform.
- Para asegurarte de que tus recursos estén actualizados, concilia todas 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.
- Borra la implementación de Deployment Manager. Para conservar tus recursos cuando borres la implementación, establece
delete-policy
enabandon
.
Te sugerimos que sigas las prácticas recomendadas de Terraform, como las siguientes:
- Almacena el estado de Terraform en un bucket de Cloud Storage
- Usa Cloud Build para administrar la activación.
Para obtener una explicación detallada de este flujo de trabajo, consulta Convierte tus configuraciones de Deployment Manager con DM Convert.
Recopilación de datos en DM Convert
Qué recopilamos, de forma predeterminada
De forma predeterminada, la herramienta DM Convert 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 recopilan datos sobre la operación solicitada, el éxito de la operación y el tiempo de la conversión. Estos datos son anónimos y excluyen cualquier información de identificación personal, datos sensibles o contenido de 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 del comando de conversión cuando ejecutas la herramienta, incluido el formato de salida (KRM o Terraform) y las representaciones booleanas que indican si se especifican otras marcas (no recopilamos 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 de error y el mensaje de error, si se produce un problema.Horario de conversión: Registramos las horas de inicio y de finalización de la conversión.
Cómo usamos estos datos
Google recopila y procesa los datos de uso para lo siguiente:
Comprende cómo se usa la herramienta, incluidas las funciones y los parámetros de configuración más populares.
Diagnostica el uso exitoso de la herramienta y proporciona orientación a los usuarios que buscan asistencia técnica.
Mejora la herramienta mediante la resolución de problemas y el aumento potencial de la cobertura de funciones.
Inhabilita la recopilación de datos
Google recopila datos de uso de forma predeterminada cuando ejecutas una conversión, pero esta recopilación de datos se puede inhabilitar.
Para inhabilitar la recopilación de datos de una conversión específica, puedes especificar la marca --opt_out_data_collection=true
en tu comando de conversión. A fin de inhabilitar la recopilación de datos de ahora en adelante, debes especificar la marca cada vez que ejecutes una conversión.
Si deseas habilitar la recopilación de datos de una conversión específica, puedes especificar la marca --opt_out_data_collection=false
en el comando de conversión, o bien omitir la marca del comando.