我有一个deploymgr模板,可以创建一堆网络资产和虚拟机,运行正常,没有报告错误,但是没有创建任何VPC对等。如果我通过控制台或通过glcoud
对等失败(没有错误消息):
# Create the required routes to talk to prod project
- name: mytest-network
type: compute.v1.network
properties:
name: mytest
autoCreateSubnetworks: false
peerings:
- name: mytest-to-prod
network: projects/my-prod-project/global/networks/default
autoCreateRoutes: true
Peering Works:
$ gcloud compute networks peerings create mytest-to-prod --project=myproject --network=default --peer-network=projects/my-prod-project/global/networks/default --auto-create-routes
答案 0 :(得分:1)
根据the API reference,无法在网络创建时进行对等。 首先,需要创建网络,一旦成功创建网络,就需要调用the addPeering方法。 这解释了为什么您的YAML定义创建网络但不创建对等网络,并且为什么在运行调用addPeering方法的gcloud命令之后它可以工作。
可以通过使用Deployment Manager操作在一个YAML文件上创建并建立对等关系:
resources:
- name: mytest-network1
type: compute.v1.network
properties:
name: mytest1
autoCreateSubnetworks: false
- name: mytest-network2
type: compute.v1.network
properties:
name: mytest2
autoCreateSubnetworks: false
- name: addPeering2-1
action: gcp-types/compute-v1:compute.networks.addPeering
metadata:
runtimePolicy:
- CREATE
properties:
network: mytest-network2
name: vpc-2-1
autoCreateRoutes: true
peerNetwork: $(ref.mytest-network1.selfLink)
metadata:
dependsOn:
- mytest-network1
- mytest-network2
- name: addPeering1-2
action: gcp-types/compute-v1:compute.networks.addPeering
metadata:
runtimePolicy:
- CREATE
properties:
network: mytest-network1
name: vpc-1-2
autoCreateRoutes: true
peerNetwork: $(ref.mytest-network2.selfLink)
metadata:
dependsOn:
- mytest-network1
- mytest-network2
您可以复制粘贴上面的YAML,创建部署,并完成对等。这些操作使用dependsOn option来确保首先创建网络,并且在删除部署时,将通过调用removePeering method删除对等体,然后删除网络。
注意:Deployment Manager操作尚未记录,但GoogleCloudPlatform/deploymentmanager-samples存储库中有几个示例,例如this和this。
答案 1 :(得分:0)
从gcloud按预期工作,请在指定对等网络资源列表时更新您的YAML文件以使用“peerings[].network”。