问题描述
首先:通过 https://cloud.ibm.com/schematics/slack 发出的邀请似乎不起作用。我的邮件帐户上没有收到对 schemas@slack 的邀请,所以我在这里发布了我的问题:
Terraform 0.13,ibm 提供商 1.23.1
1.) 在尝试从 https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-app 运行示例 ibm-app(CloudFoundry 示例)时,我注意到它需要一个 API 密钥才能运行。这是为什么?为什么原理图工作区不能提供自己的?有些示例无需 IAM 密钥即可正常运行。 CloudFoundry 有什么特别之处以至于我必须提供密钥?
2.) CloudFoundry 服务实例(请参阅:https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/data-sources/service_instance)在 CloudFoundry 中创建一个服务实例,并在外部创建一个具有任意名称的服务。 “terraform destroy”仅销毁服务实例,但保持 CloudFoundry 之外的服务不变。这是一个错误吗?有没有办法先创建资源,然后创建 CF 服务,然后将该服务绑定到资源(使用 terraform)?
3.) ibm_app(请参阅:https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/app)将 zip 文件作为输入。为什么没有资源(一些 github repo)?此外,如何访问私有 git 存储库 @git.cloud.ibm.com?在 terraform 环境中出现了一个 JWT 令牌,可以通过数据“ibm_iam_auth_token”获取。但是我如何使用它来访问 git repo? -- 当然,我总是可以提供访问令牌,这可能是正确的做法。但是为什么 devops 管道可以访问私有 git.cloud.ibm.com 存储库而 terraform 不能?这让我想到了最后一个问题:
4.) 如何在 ibm 云中通过 terraform 创建 devops 管道? -- 在 aws 中创建工具链工作正常。但是 ibm 云呢?
解决方法
-
由于 IAM 限制,对于 CF 和经典基础设施资源,您需要提供 API 密钥。更多信息请访问:https://cloud.ibm.com/docs/schematics?topic=schematics-schematics-limitations#provider-block
-
听起来这可能是一个错误 - 你能在这里打开一个问题吗?:https://github.com/IBM-Cloud/terraform-provider-ibm/issues/。似乎没有办法单独使用 Terraform 将服务绑定到 Cloud Foundry 应用程序。我们可以将其视为功能请求。
-
此示例展示了如何使用供应商“local-exec”从 GitHub 存储库准备应用 zip:https://github.com/IBM-Cloud/terraform-provider-ibm/blob/master/examples/ibm-app/main.tf。您需要使用访问令牌来访问私有存储库。
-
首先使用 Schematics 根据您的 GitHub 存储库创建一个工作区,该存储库包含您的 Terraform 代码。接下来,导航到“设置”选项卡,然后按“启用持续交付”。这将为您创建一个由 IBM DevOps Toolchains 提供支持的工具链。