在Gitops原理中使用Gitlab,Terraform,Flux和GKE的最佳方法

问题描述

我是开发人员的新手,我想知道使用CI / CD的GKE,terraform和Gitlab存储库的最佳方法是什么。目前,有一系列与flux,证书管理器一起使用的命令,但是它不是自动化的。最佳做法,工具和整体方案是什么样的?感谢您的回答。

解决方法

在我的上一个项目中,我们尝试了许多方法,最终意识到使用Octopus Deploy进行部署是最合适的方法,尽管部分原因是因为它在整个公司中使用范围更广,但是对于使用terraform进行部署也很好。主要优点是具有tenants的概念,该概念对应于每个客户端(特别是Google Cloud项目),并且对于租户,您可以设置很多变量,这些变量大部分将由terraform使用。根据已配置每个租户的变量列表,这可能是一个非常繁琐的任务,但是我想这只是在第一次设置时。然后,更新它并运行实际部署要快得多。

我们还尝试了GitOps,因为在每个客户端(GCP项目)中都有这些变量,在我们的部署脚本中只是拉出了这些仓库,这还不错,因为它带来了在日志中记录源代码的所有好处并成为真理的唯一来源尽管主要的缺点是对合并请求进行了任何更改,但可能要花相当长的时间。如果在您的情况下不是必需的,并且对此类规范存储库进行更改的管道运行的时间不长,那么您可以尝试一下,为什么不这样做。

您可以尝试的另一种方法是将变量放入Gitlab变量中,但这还取决于您拥有的环境数量,如果要保持增长(假设是这样),那么可能就不是一个好主意,因为没有太多可见的变化,很难跟踪所有这些变量。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...