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 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" }
À 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.
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.
No momento, há apenas um comando, mas esperamos que haja mais assim que a ferramenta for desenvolvida.
Repositório aleatório por enquanto
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 :)
\ : / '-: __ :-' -: )(_ :-- -' |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>…
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.
Formato CSV
Formato JSON
Eu amo O Senhor dos Anéis :)
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