问题标签 [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 投票
2 回答
842 浏览

terraform - 无法从 OpenVPN 客户端连接到专用的区域 GKE 端点

我通过 Terraform ( google_container_cluster with and set)创建了 GKE私有集群并安装了Helm Chart。我的设置与本文中描述的基本相同:https ://itnext.io/use-helm-to-deploy-openvpn-in-kubernetes-to-access-pods-and-services-217dec344f13我能够请参阅文章中描述的 -only 公开服务。但是,当我连接到 VPN 时,由于无法连接到主服务器而失败。private = trueregionstable/openvpnClusterIPkubectl

我将OVPN_NETWORK设置保留为默认值 ( 10.240.0.0),并将OVPN_K8S_POD_NETWORK子网掩码设置更改为我在创建私有集群所在的私有子网时选择的次要范围。

我什至尝试添加10.240.0.0/16到我的master_authorized_networks_config,但我很确定该设置仅适用于外部网络(添加完全不同的 OVPN 服务器的外部 IP 允许我kubectl在连接到它时运行)。

有什么想法我在这里做错了吗?

编辑:我只记得我必须设置一个值master_ipv4_cidr_block才能创建私有集群。所以我添加10.0.0.0/28ovpn.conf 文件中,push "route 10.0.0.0 255.255.255.240"但这并没有帮助。有关此设置的文档指出:

为 master 的 VPC 指定私有 RFC1918 块。主范围不得与集群 VPC 中的任何子网重叠。主服务器和您的集群使用 VPC 对等互连。必须以 CIDR 表示法指定,并且必须是 /28 子网。

但是对于集群外部子网上的 OpenVPN 客户端有什么意义呢?如何利用上述 VPC 对等互连?

0 投票
1 回答
3653 浏览

google-compute-engine - GCP计算引擎网络接口地形错误

我的 terraform 文件如下所示:

上面的代码创建了实例。但是当我改变然后 network_interface 块如下所述

VPC 模块是:

当我将 network_interface 更改为自定义值时。它抛出的错误是

google_compute_instance.virtual_instance:创建网络接口时出错:必须提供网络或子网之一

请帮助我

0 投票
1 回答
1659 浏览

terraform - 如何在 Terraform 配置中使用共享 VPC GCP?

我在 GCP 中配置了共享 VPC,我想知道如何在我的 terrafrom 中使用它。

在使用共享 VPC 之前,我的 terraform network_interface 部分如下:

我想知道是否有人可以指导我。

非常感谢。

谢谢!

-劳伦特

0 投票
2 回答
1337 浏览

google-cloud-platform - 创建实例模板时的 Terraform GCP,获取源图像的​​相对路径时出错

我在设置 GCP 实例模板时遇到了新问题。我假设 terraform gcp 提供程序有更新。

这是运行脚本后的当前错误。但是,该映像backend-packer-image已创建并存在于 GCP 上

0 投票
1 回答
1005 浏览

google-cloud-platform - 我使用 terraform 创建了一个 GCP 项目,但它没有出现在项目列表中。为什么?

我正在关注https://cloud.google.com/community/tutorials/managing-gcp-projects-with-terraform上的教程

基本上它归结为创建一个terraform-admin默认项目,该项目有权成为roles/resourcemanager.projectCreator

我不会在project.tf这里复制文件,但主要项目是:

跑步前terraform apply

运行后terraform apply

我的问题是为什么新项目tf-foobar没有出现?

0 投票
5 回答
9329 浏览

google-cloud-platform - gcloud cli 无法创建项目 - 您指定的项目 ID 已被另一个项目使用

我正在尝试设置 Terraform 以与 GCP 一起使用,但在从 gcloud cli 创建新项目时遇到问题:Terraform Lab

我正在使用的命令是

我一遍又一遍的错误是:

这是我到目前为止所做的:

  1. 我在 Cloud Identity 中创建了一个“组织”和一个用户
  2. 使用我创建的用户在浏览器中登录 GCP 控制台
  3. 用户具有“组织管理员”角色
  4. 使用家用计算机上配置的 Cloud Shell 或 gcloud,我无法创建新项目。在这两种情况下(云外壳和本地 gcloud 安装),我都能成功地执行“gcloud 项目列表”和“gcloud 组织列表”之类的操作
  5. 我已经尝试过使用符合格式要求的不同项目 ID 名称(例如 6-30 个字符、小写字母等)。我还可以确认项目 ID 不存在。
  6. 但是,我能够通过 GCP Web 控制台(https://console.cloud.google.com)成功创建项目(使用在 gcloud cli 中配置的相同 IAM 帐户)
  7. 我曾多次尝试“gcloud init”,以确保我使用的是正确的 IAM 帐户,以防万一。

这是我尝试从“gcloud init”命令创建新项目时遇到的错误:

从网页控制台创建项目工作正常。

0 投票
1 回答
786 浏览

google-cloud-platform - 使用 terraform 创建 google_sql_user 始终会重新创建资源

每当我terraform plan使用以下命令运行时:

这只发生在我在 Google Cloud SQL 上运行 Postgres 实例时。Terraform 始终输出计划将创建用户,即使它已经创建。我正在使用terraform version 0.11.1. 有什么我想念的吗?我尝试设置该id值,但它仍然会重新出现。

0 投票
1 回答
857 浏览

terraform - 如何使用 Terraform 配置自动修复和自动扩展 Google Cloud Kubernetes 集群并禁用 stackdriver

我正在阅读这篇关于为个人项目设置负担得起的 Kubernetes 集群并设置我的集群的博客。

麻烦的是,随着时间的推移,我往往会忘记很多手动配置,所以我决定使用 Terraform 将其存储在声明性代码中。

我设法构建了以下配置并应用它:

问题是,两个集群的配置略有不同,这是我需要添加到配置中的内容:

  • Stackdriver Logging:当前已启用,必须禁用
  • Stackdriver Monitoring:当前已启用,必须禁用
  • 自动节点升级:当前为 Disabled,必须为Enabled
  • 自动节点修复:当前已禁用,必须启用

google_container_cluster我在资源的文档中找不到配置选项。我该怎么做才能设置这些选项?

0 投票
1 回答
602 浏览

terraform - 如何分多个步骤/阶段运行 Terraform 计划?

我有一个很棒的 terraform 计划,可以完美地描述我在 Google Cloud Platform 中的基础架构,但是,我有一个问题:由于我的存储库不是完全私有的,我的计划的某些步骤是加密的,必须使用Google Key Management Service解密。

这意味着我的计划必须分为两个 terraform 阶段:

  1. 设置谷歌云项目并创建一个密钥环和密钥(在此之后,我加密秘密并将它们放在一个variables.tf文件中)
  2. 应用整个计划。

Terraform 是否支持将我的计划分解为多个阶段的方法?我应该如何解决这个问题?

0 投票
2 回答
3012 浏览

google-cloud-platform - 自动执行 GCP 永久性磁盘初始化

是否有任何脚本可以自动格式化永久性磁盘并将其附加到 Google Cloud VM 实例,而不是执行格式化和安装步骤

永久性磁盘是使用 Terraform 创建的,它还会创建一个 VM 并使用命令将磁盘附加到它attached_disk

我希望在 VM 实例启动时运行一个简单的脚本:

  • 检查附加磁盘是否已格式化,如果需要使用 ext4 进行格式化
  • 检查磁盘是否已挂载,如果没有则挂载
  • 否则什么都不做