在我开始从头开始创建这个之前,我想知道是否有已经存在的工具,插件或代码来实现我的自动更新目标。
我们已经有IAC使用Terraform来启动和维护我们的AWS MSK集群——它存储在一个Gitlab项目中。
我们有GitLab作业,让我们部署和更新使用Terraform的MSK集群。现在,当我们在保存Terraform的项目中进行更改时,我们手动运行这些作业。
我们想做的是每天(或每周一次)自动运行一个GitLab作业,检查MKS集群是否有小版本更新或补丁更新,如果有,那么它会自动更新Terraform IAC的新版本,并运行一个作业来更新AWS MSK集群到那个新版本。
现在我们有一个2.7.0版本的MSK集群
这个场景是-
1 -运行某种检查(我假设我会创建一个运行AWS cli命令的脚本),以查看是否有比我们现有的新版本的AWS MSK。
2 -它发现2.7.1版本可用。
3 -保存版本的TF代码存储在我们的Gitlab项目中,现在更新为2.7.1(现在我们将版本存储在一个TF文件中,但我认为如果我们需要,我们可以将它存储在一个变量中-我认为如果可能的话,我们更愿意将它保存在一个文件中)。
4 -一个管道/作业被自动启动,现在应用Terraform的变化-变化是MSK版本更新。
那么,有没有什么东西可以帮助这样的工作过程,或者有什么建议可以最好地做到这一点?
由于aws-cli中缺乏由内到外的监视功能,我想不出更好的解决方案。假设你正在使用terraform的最佳实践,我看不到1-3的改进。
步骤4。如果您的业务用例没有受到小范围的影响,那么来自aws-cli的自动更新应该可以解决这个问题。
对于没有延迟空间的关键用例,我建议使用一个格式良好的更新策略。