1

我是QHub的开发人员,它是模板化 terraform 脚本的集合,用于在各种云提供商(AWS、GCP、Azure、Digital Ocean)上部署数据科学平台。它使用 S3 存储桶来存储 terraform 状态,并作为部署的一部分如果该状态可用,我们需要导入该状态。在最初部署基础设施的情况下,或者如果使用 git-ops 部署它,则状态文件在本地不存在。这导致需要“如果存在则导入,否则继续”功能,我很难找到。

以前我们会运行terraform import,如果存储桶不存在,该命令将静默失败并继续。随着升级到 terraform v1.0.5,导入命令将挂起,直到 terraform 超时,这太长了。

我目前的解决方法是使用 GNU 默认命令timeout并强制命令失败,如下所示timeout 10 terraform import module.terraform-state.module.gcs.google_storage_bucket.static-site test-dev-terraform-state:如果失败,我将运行terraform apply以创建资源。

还有一个额外的要求是避免使用特定于云的 CLI 工具来确定存储桶是否存在。

必须有更好的方法来做到这一点。有什么想法吗?

4

0 回答 0