En un artículo anterior se explicaban los servicios o productos existentes para realizar la infraestructura como código.
En algunos casos puede ser necesario utilizar más de un producto para poder realizar el desarrollo de la infraestructura requerida dentro del código. Por ejemplo, es posible que se esté desarrollando un módulo con Terraform y alguna de las propiedades que se quiera configurar no esté disponible en los módulos de Terraform y haya que utilizar conjuntamente ARM Template.
Pongamos el caso de que estamos desarrollando el módulo de SQL con Terraform y queremos configurar la versión mínima de TLS a la 1.2.
Si accedemos a la información del módulo de Terraform de SQL Server nos encontramos con que esa propiedad no existe a día de hoy:
Para poder incluir esta propiedad y seguir utilizando Terraform existe un resource en Terraform denominado azurerm_template_deployment en el cual se puede incrustar una ARM Template. Para ver qué deberíamos poner en este ejemplo lo primero es acudir a la documentación de Azure para ver cómo se configura el recurso SQL y cuáles de sus parámetros son obligatorios y cuáles no:
Como se puede ver hay una propiedad que se llama minimalTlsVersion que nos serviría para nuestro propósito. Visualizando las propiedades que son obligatorias y las que no nuestro código de Terraform quedaría de la siguiente manera:
Para evitar posibles errores se deberán de tener en cuenta varias consideraciones: