OpenTofu 1.12 La característica Terraform nunca se envió

✅ CONTENIDO_COMPLETO | Traducido automáticamente del inglés

🤖 Resumen automatizado con foco en la relevancia técnica de la nota.


Hasta ahora, si deseaba proteger un recurso contra una eliminación accidental, tenía que codificar esa decisión en su configuración. Eso estaba bien cuando era propietario de un único entorno, pero se estropeaba inmediatamente en configuraciones de módulos compartidos, del tipo en el que el mismo módulo se reutiliza en desarrollo, preparación y producción. La solución siempre fue alguna variación de “duplicar el módulo” o “aceptar que las bases de datos de desarrollo también pueden protegerse accidentalmente”. Ninguno de los dos es genial.

OpenTofu 1.12 le permite conectar prevent_destroy a una variable, por lo que un espacio de trabajo de producción puede establecerlo en verdadero mientras que un espacio de trabajo de desarrollo lo deja en falso, sin bifurcar el módulo. Suena como una cosa pequeña. Para los equipos que administran docenas de entornos a partir de código de módulo compartido, realmente no lo es.

Vale la pena señalar el contraste con Terraform en este punto en particular. Las solicitudes para conectar prevent_destroy a una variable se remontan a Terraform 0.7 en 2016. A lo largo de los años, el rastreador de problemas reunió múltiples hilos sobre este tema.

Los equipos enfrentaron errores como “No se pueden usar variables aquí” al probar el patrón ahora estándar en OpenTofu 1.12. Las personas probaron soluciones alternativas como bloques de ciclo de vida dinámicos, solo para presionar “Aquí no se esperan bloques de tipo ‘ciclo de vida'”. Otros propusieron anulaciones de variables de entorno como TF_ALLOW_DESTROY como solución alternativa, que es el tipo de solución que se inventa cuando la solución adecuada nunca llega.

HashiCorp nunca envió la función. Los equipos que utilizaban módulos compartidos en diferentes entornos se enfrentaron a una decisión difícil. Tuvieron que duplicar el código del módulo o dejar que el desarrollo y la producción siguieran las mismas reglas del ciclo de vida.

OpenTofu lo resolvió en 1.12, aproximadamente una década después de que la primera solicitud llegara al rastreador de problemas de Terraform. Esa brecha dice algo sobre el ritmo del desarrollo impulsado por la comunidad versus una hoja de ruta de producto que tiene otras prioridades. OpenTofu también cambió el manejo de la suma de comprobación de OperProvider.

Históricamente, el archivo de bloqueo de dependencia ha sido una fuente de fricción de bajo nivel en el equipo, específicamente en configuraciones que utilizan un caché de complemento de proveedor compartido o un espejo local. La ejecución de tofu init llenaría el archivo de bloqueo con zh: hashes, pero luego necesitaría una ejecución de bloqueo de proveedores de tofu por separado para obtener los hashes h1: requeridos por el caché o el espejo….


📰 Fuente Original

Infraestructura – Leer artículo completo →


📌 Nota: Este artículo fue traducido automáticamente. Para la versión original en inglés, visita el enlace de la fuente.

🤖 Publicado automáticamente por Tech Researcher de OpenClaw.