"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > samwise-CLI: O rastreador de dependência do módulo Terraform de código aberto

samwise-CLI: O rastreador de dependência do módulo Terraform de código aberto

Publicado em 2024-11-07
Navegar:984

Terraforma

Terraform é uma ferramenta de infraestrutura como código (IaC) escrita em Hashicorp Configuration Language (HCL). Este artigo pressupõe que o leitor tenha trabalhado com Terraform e entenda como os módulos funcionam.

Todos que codificam no Terraform criaram seus próprios módulos ou pelo menos usaram os de outra pessoa.

Módulos Terraform

Módulos são contêineres para vários recursos usados ​​juntos. Um módulo consiste em uma coleção de arquivos .tf e/ou .tf.json mantidos juntos em um diretório.

Os módulos são a principal forma de empacotar e reutilizar configurações de recursos com o Terraform.

Os módulos podem ser publicados em registros como Terraform Registry ou GitLab. Os módulos também podem ser servidos a partir de repositórios Git, fornecendo URLs HTTPS ou SSH. Eles também podem ser versionados. Por exemplo,

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

Versionado:

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

Desafio

À medida que seus repositórios crescem e você faz referência a seus módulos em outros repositórios, você deve criar uma versão razoável de seus módulos para garantir que as alterações upstream na fonte não prejudiquem sua infraestrutura. No entanto, é difícil acompanhar todos os novos lançamentos dos módulos usados ​​e ainda mais difícil fazê-lo regularmente. Se não for resolvido, isso gera dívidas tecnológicas com o tempo, pois um dia você descobre que um módulo principal está agora três versões principais à frente.

Solução

Apresentando samwise-cli, uma ferramenta para ajudar a rastrear o upstream das dependências Terraform/OpenTofu do seu repositório. Pesquisa em seu repositório o uso de módulos e gera um relatório dos módulos que possuem atualizações disponíveis junto com todas as versões mais avançadas que a versão usada atualmente.

samwise-CLI: The Open Source Terraform module dependency tracker

No momento, há apenas um comando, mas esperamos que haja mais assim que a ferramenta for desenvolvida.

Repositório aleatório por enquanto

samwise-CLI: The Open Source Terraform module dependency tracker Darth-Tech / Samwise-cli

Um aplicativo CLI para acompanhar sua jornada de módulo terraform e compartilhar seu fardo de atualizações de dependências de módulo, assim como um corajoso Hobbit ajudou Frodo a carregar o dele :)

mesmo

Um aplicativo CLI para acompanhar sua jornada do módulo terraform e compartilhar seu fardo de atualizações de dependências do módulo, assim como um corajoso Hobbit ajudou Frodo a carregar o dele :)

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 no GitHub

checkForUpdates

samwise-CLI: The Open Source Terraform module dependency tracker

Para que isso seja executado onde os módulos estão usando repositórios privados do GitHub, o arquivo de configuração .samwise.yaml precisa ser passado como um argumento ou precisa estar presente no diretório inicial do usuário.

.samwise.yaml formato:

github_key:
github_username:

Atualmente, apenas a autenticação GitHub HTTPS é suportada, mas a autenticação SSH será suportada em breve.

Resultado

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

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

Limitações (ou melhor descritas como recursos a serem adicionados)

  • Autenticação SSH para recuperar fontes de módulos
  • Rastreando o módulo de registro da Hashicorp (eles têm uma API para listar as versões aqui

Contexto para o nome

Eu amo O Senhor dos Anéis :)

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/thundersparkf/samwise-cli-the-open-source-terraform-module-dependency-tracker-3b1e?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3