问题标签 [terraform-provider-gcp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
286 浏览

google-cloud-platform - 需要说明如何使用 Terraform 管理 Google Cloud 项目

我阅读了这篇关于将 Terraform 与 GCP 结合使用的文章:

https://cloud.google.com/community/tutorials/managing-gcp-projects-with-terraform

我几乎让它工作了,但我遇到了一些问题并希望得到一些澄清。

我创建了一个 terraform 管理项目,并在该项目中使用角色/查看器和角色/storage.admin 角色创建了一个服务帐户。然后我在管理项目中创建了一个存储桶并将其用作 terraform 后端存储。

然后,我使用该服务帐户创建另一个项目并在该项目中配置资源:

我认为为使用 terraform 创建的项目启用服务就足够了,如下所示:

但是,当 terraform 尝试创建我的 gke 集群时出现错误:

它说我的项目尚未启用容器服务,它引用了 terraform 管理项目 ID(不是使用 google_project 资源创建的项目!)。似乎我必须启用 terraform admin 项目上的服务,以便服务帐户访问由服务帐户创建的任何项目上的这些服务。

事实上,只要在 terraform admin 项目上启用了容器、servicenetworking 等服务,我就可以让它工作,而无需在 create 项目上启用它们。

项目之间是否存在某种父/子关系,其中一个项目中的服务由从父项目中的服务帐户创建的项目继承?这似乎是这种情况,但我在任何地方都找不到任何关于此的文档。

谢谢收听!

0 投票
1 回答
799 浏览

terraform - 使用版本控制创建 GCS 存储桶

我想创建带有版本控制的 GCS 存储桶。

我创建了子模块。

根据 Terraform doc,我可以传递版本控制参数来配置版本控制。

我不知道接受什么样的数据版本控制参数。我尝试传递 bool (true)、map 和 list 如下。

地图

列表

我在阅读此 GCP Doc后尝试了此操作


错误 错误我得到它如下。

如果我不使用版本控制参数,该模块工作正常。但是,我想创建也可以配置版本控制的模块。

如果我走错了方向,请告诉我。

任何帮助,将不胜感激。

0 投票
1 回答
1563 浏览

terraform - 所有 gcs 存储桶的“该名称不可用”

真的很难在 gcp 上使用 Terraform 部署我的应用程序。我遇到的问题是我经常遇到错误:

googleapi:错误 409:抱歉,该名称不可用。请尝试不同的。,冲突

my_test_upload_bucket_udybmn_anitoy

非常感谢这里的帮助,因为这让我发疯

想知道有人可以指出我的方向,因为我也尝试在末尾添加随机字符串但无济于事

我期望创建存储桶,因为名称是唯一的,但无济于事

0 投票
1 回答
1983 浏览

google-cloud-platform - 我想使用 terraform 在 GCP 中创建公共和私有子网

我使用 Terraform 在 GCP 中创建了一个 VPC,现在我想添加两个子网公共和私有。在创建虚拟机时。如果我通过了公共子网,VM 应该获得公共 IP;如果我通过私有子网,VM 应该获得唯一的私有内部 IP 地址

##### 创建虚拟机实例

0 投票
1 回答
190 浏览

google-cloud-platform - 如何在 google_compute_target_https_proxy 上使用多个 SSL 证书?

在查看文档时,google_compute_target_https_proxy 它说它支持一个 SSL 证书:

ssl_certificates -(必需)用于验证用户和负载均衡器之间连接的 SslCertificate 资源列表。目前,必须指定一个 SSL 证书。

但是查看Google Cloud 文档有一个包含多个 SSL 证书的示例。

为什么这在 Terraform GCP 提供程序中被阻止,如何在不手动编辑的情况下使其工作?

0 投票
1 回答
1006 浏览

kubernetes - Kubernetes Engine API 删除 pod

我需要在我的 GCP kubernetes 集群上删除 POD。实际上,在 Kubernetes Engine API文档中,我只能找到 REST api 的:projects.locations.clusters.nodePools,但没有找到 POD。

0 投票
1 回答
45 浏览

terraform - 控制 Compute Engine 实例名称

在创建托管实例组来管理 GCP Compute Engine 实例时,我们需要设置一个“base_instance_name”,Terraform 将在其中附加一个四字符的随机字符串,以确保实例名称是唯一的。请参阅:https ://www.terraform.io/docs/providers/google/r/compute_instance_group_manager.html

有没有办法控制使用托管实例组时创建的实例名称,以便名称是确定性的?另一个选项是我们可以控制在名称中放置四个字符的随机字符串的位置吗?换句话说,我们可以将字符串放在主机名的开头而不是结尾吗?我问的原因是,如果我们在这些实例上安装通配符 SSL 证书,我相信这会导致问题,因为通配符必须位于主机名的开头。

0 投票
1 回答
2014 浏览

kubernetes - 如何使用 Terraform 将 GKE 凭证传递给 Kubernetes 提供者?

我已经用 Terraform 创建了一个 GKE 集群,我也想用 Terraform 管理 Kubernetes。但是,我不知道如何将 GKE 的凭据传递给kubernetes提供者。

我遵循了数据源文档中的示例,google_client_config我得到了

data.google_container_cluster.cluster.endpoint为空

这是我失败的尝试https://github.com/varshard/gke-cluster-terraform/tree/title-terraform

cluster.tf负责创建 GKE 集群,运行良好。

kubernetes.tf负责管理 Kubernetes,未能获得 GKE 凭证。

0 投票
2 回答
858 浏览

kubernetes - 使用 terraform 从外部创建的负载均衡器获取 IP

我正在开发一个 terraform 模块来创建 GKE 集群。同一模块调用执行helm install应用程序的配置程序。

helm chart 创建负载均衡器。terraform 模块不知道负载均衡器,因此分配的 IP 地址无法在模块中重用。

问题:

如何使用负载均衡器的 IP 创建 DNS 条目并获取证书?

我认为这不是奇特的用例,但我还没有找到一种体面的方法来实现这一点。

0 投票
1 回答
126 浏览

terraform-provider-gcp - 带有 terraform 的 gcp 托管实例不起作用

我正在尝试使用 terraform 创建区域托管实例组,但遇到以下错误消息:

发生 1 个错误:* module.gcp-lb.google_compute_backend_service.default:发生了 1 个错误:* google_compute_backend_service.default:组的值无效:必须指定区域

如果它是区域托管实例组,我不确定为什么资源 google_compute_backend_service 要求该区域。此资源似乎也不支持区域。我正在执行以下任务:

  1. 使用 google_compute_instance_template 创建实例模板
  2. 在 google_compute_region_instance_group_manager 中使用模板
  3. 使用以下语法将 instance_group 传递给 google_compute_backend_service 中的后端: backend = ["${var.backends}"]

我正在使用以下 synatx 从模块传递后端:

我正在使用 terraform 版本:0.11.13。任何类型的帮助/指针都非常感谢。

谢谢, 桑吉夫