首页 >后端开发 >Golang >samwise-CLI:开源 Terraform 模块依赖性跟踪器

samwise-CLI:开源 Terraform 模块依赖性跟踪器

PHPz
PHPz原创
2024-08-12 18:36:12875浏览

地形

Terraform 是一种用 Hashicorp 配置语言 (HCL) 编写的基础设施即代码 (IaC) 工具。本文假设读者已经使用过 Terraform 并了解模块的工作原理。

每个在 Terraform 中编码的人都创建了自己的模块,或者至少使用了其他人的模块。

地形模块

模块是一起使用的多个资源的容器。模块由保存在一个目录中的 .tf 和/或 .tf.json 文件的集合组成。

模块是使用 Terraform 打包和重用资源配置的主要方式。

模块可以发布到 Terraform 注册表或 GitLab 等注册表。还可以通过提供 HTTPS 或 SSH URL 从 Git 存储库提供模块。这些也可以进行版本控制。例如,

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

版本:

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

挑战

随着您的存储库的增长以及您在其他存储库中引用您的模块,您将合理地对您的模块进行版本控制,以确保源代码中的上游更改不会破坏您的基础设施。然而,跟踪正在使用的模块的所有新版本是很困难的,而且定期进行更难。如果不加以解决,随着时间的推移,这将成为技术债务,因为有一天您发现核心模块现在已经领先了 3 个主要版本。

解决方案

展示 samwise-cli,这是一个帮助跟踪存储库上游的 Terraform/OpenTofu 依赖项的工具。在您的存储库中搜索模块的使用情况,并生成具有可用更新的模块的报告以及比当前使用的版本更高级的所有版本。

samwise-CLI: The Open Source Terraform module dependency tracker

目前只有一个命令,但希望随着工具的开发,很快会有更多命令。

暂时随机回购

samwise-CLI: The Open Source Terraform module dependency tracker 达斯科技 / samwise-cli

一个 CLI 应用程序,陪伴您的 terraform 模块之旅,并分担模块依赖项更新的负担,就像一位勇敢的霍比特人帮助 Frodo 携带他的一样 :)

三卫

一个 CLI 应用程序,陪伴您的 terraform 模块之旅,并分担模块依赖项更新的负担,就像一位勇敢的霍比特人帮助 Frodo 携带他的 :)

samwise-CLI: The Open Source Terraform module dependency tracker

                       \ : /
                    '-: __ :-'
                    -:  )(_ :--
                    -' |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   ;|     |   /|
           /|    ;     |  / |
          | |    ;     |  ) |
         |  |    ;|    | /  |
         | ;|    ||    | |  |
         L-'|____||    )/   |
             % %/ '-,-
在 GitHub 上查看

checkForUpdates

samwise-CLI: The Open Source Terraform module dependency tracker

For this to run where modules are using private GitHub repositories, .samwise.yaml config file needs to passed as an argument or needs to be present at the user's home directory.

.samwise.yaml format:

github_key:
github_username:

Currently only GitHub HTTPS authentication is supported but SSH authentication will be supported soon.

Result

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

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

Limitations(or better described as features to be added)

  • SSH authentication for retrieving module sources
  • Tracking Hashicorp's registry's module(they have an API to list versions here

Context for the name

I love Lord of the Rings :)

以上是samwise-CLI:开源 Terraform 模块依赖性跟踪器的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn