"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > samwise-CLI: el rastreador de dependencias del módulo Terraform de código abierto

samwise-CLI: el rastreador de dependencias del módulo Terraform de código abierto

Publicado el 2024-11-07
Navegar:808

Terraformar

Terraform es una herramienta de infraestructura como código (IaC) escrita en el lenguaje de configuración Hashicorp (HCL). Este artículo asume que el lector ha trabajado con Terraform y comprende cómo funcionan los módulos.

Todos los que codifican en Terraform han creado sus propios módulos o al menos han utilizado los de otra persona.

Módulos Terraform

Los módulos son contenedores para múltiples recursos que se utilizan juntos. Un módulo consta de una colección de archivos .tf y/o .tf.json mantenidos juntos en un directorio.

Los módulos son la forma principal de empaquetar y reutilizar configuraciones de recursos con Terraform.

Los módulos se pueden publicar en registros como el registro Terraform o GitLab. Los módulos también se pueden servir desde repositorios de Git proporcionando las URL HTTPS o SSH. Estos también se pueden versionar. Por ejemplo,

module "consul" {
  source = "github.com/hashicorp/example"
}

Versionado:

module "consul" {
  source = "github.com/hashicorp/example?ref=1.2.6"
}

Desafío

A medida que sus repositorios crecen y hace referencia a sus módulos en otros repositorios, sería razonable versionar sus módulos para garantizar que los cambios ascendentes en la fuente no rompan su infraestructura. Sin embargo, es difícil realizar un seguimiento de todas las nuevas versiones de los módulos que se utilizan y aún más difícil hacerlo con regularidad. Si no se aborda, esto genera con el tiempo una deuda tecnológica, ya que un día descubres que un módulo principal ahora tiene 3 versiones principales por delante.

Solución

Presentamos samwise-cli, una herramienta para ayudar a rastrear las dependencias Terraform/OpenTofu de su repositorio en sentido ascendente. Busca en su repositorio los usos de los módulos y genera un informe de los módulos que tienen actualizaciones disponibles junto con todas las versiones que son más avanzadas que la versión utilizada actualmente.

samwise-CLI: The Open Source Terraform module dependency tracker

Por el momento, solo hay un comando, pero esperamos que haya más pronto a medida que se desarrolle la herramienta.

Repositorio aleatorio por el momento

samwise-CLI: The Open Source Terraform module dependency tracker Darth-tecnología / samwise-cli

Una aplicación CLI para acompañar su viaje con el módulo Terraform y compartir la carga de las actualizaciones de dependencia del módulo, tal como un valiente Hobbit ayudó a Frodo a llevar el suyo :)

de la misma manera

Una aplicación CLI para acompañarte en tu recorrido por el módulo Terraform y compartir la carga de las actualizaciones de dependencia del módulo, tal como un valiente Hobbit ayudó a Frodo a llevar el suyo :)

samwise-CLI: The Open Source Terraform module dependency tracker

%,( "' /%% / Cccc' (cause I couldn't find good enough Samwise Gamgee ASCII art) Frodo by Shanaka Dias">
                       \ : /
                    '-: __ :-'
                    -:  )(_ :--
                    -' |r-_i'-
            ,sSSSSs,   (2-,7
            sS';:'`Ss   )-j
           ;K e (e s7  /  (
            S, ''  SJ (  ;/
            sL_~~_;(S_)  _7
|,          'J)_.-' />'-' `Z
j J         /-;-A'-'|'--'-j\
 L L        )  |/   :    /  \
  \ \       | | |    '._.'|  L
   \ \      | | |       | \  J
    \ \    _/ | |       |  ',|
     \ L.,' | | |       |   |/
    _;-r-<_. __. _ l- l>…
Ver en GitHub

comprobar actualizaciones

samwise-CLI: The Open Source Terraform module dependency tracker

Para que esto se ejecute donde los módulos usan repositorios privados de GitHub, el archivo de configuración .samwise.yaml debe pasarse como argumento o debe estar presente en el directorio de inicio del usuario.

.formato samwise.yaml:

github_key:
github_username:

Actualmente solo se admite la autenticación HTTPS de GitHub, pero pronto se admitirá la autenticación SSH.

Resultado

Formato CSV
samwise-CLI: The Open Source Terraform module dependency tracker

Formato JSON
samwise-CLI: The Open Source Terraform module dependency tracker

Limitaciones (o mejor descritas como características que se agregarán)

  • Autenticación SSH para recuperar fuentes de módulos
  • Seguimiento del módulo de registro de Hashicorp (tienen una API para enumerar versiones aquí

Contexto del nombre

Me encanta El Señor de los Anillos :)

Declaración de liberación Este artículo se reproduce en: https://dev.to/thundersparkf/samwise-cli-the-open-source-terraform-module-dependency-tracker-3b1e?1 Si hay alguna infracción, comuníquese con [email protected] para borrarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3