我在 .jinja 中设置了一个部署管理器包,它执行以下操作: - 为 GCP 服务创建 VPC 网络、子网和私有范围 - 在“servicenetworking.googleapis.com”和我的 VPC 网络之间创建对等互连 - 分配 Cloud SQL数据库到我的 VPC 中分配给谷歌服务的私有范围中
第二步是使用部署管理器证明是不可能的,因为没有可以调用的操作来执行此操作。我已经确认在这个阶段手动修复是调用以下 gcloud 命令,然后在 VPC 中设置 Cloud SQL 数据库:
gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com --ranges=<my-range> --network=<my-network> --project=<my-project>
在我的 .jinja 中使用以下 gcp 类型是不够的,因为它不允许映射到预先存在的 gcp 服务,但需要一个源网络和目标网络。
- name: {{ env['deployment' ]}}-gcp-private-vpc-peering
action: gcp-types/compute-v1:compute.networks.addPeering
metadata:
runtimePolicy:
- CREATE
properties:
network: $(ref.{{ env['deployment']}}-network.name)
name: {{ env['deployment' ]}}-gcp-private-vpc-peering
autoCreateRoutes: true
peerNetwork: servicenetworking.googleapis.com
dependsOn:
- $(ref.{{ env['deployment']}}-network.selfLink)
有没有办法从部署管理器调用 gcloud 命令,或者我可以调用一个操作来实现服务对等互连。我可以确认该项目确实启用了服务 API。
(请注意,目标 VPC 和项目是可变的,由 Google 分配,因此我无法将此值输入到上述模板中)
更新 05/07/19 我相信我已经找到了我需要做的 API 服务调用,但我非常不确定从部署管理器实际调用创建服务链接的语法:
需要一点方向 - 类似于下面?
- name: {{ env['deployment' ]}}-gcp-private-vpc-peering
action: gcp-types/servicenetworking.googleapis.com:services.connections
metadata:
runtimePolicy:
- CREATE
properties:
propertyA: valueA
...