Пиринг не может быть выполнен во время создания сети согласно справочнику API .
Сначала необходимо создать сеть, а после успешного создания необходимо вызвать метод addPeering .
Это объясняет, почему ваше определение YAML создало сеть, но не пиринг, и оно сработало после запуска команды gcloud, которая вызывает метод addPeering.
Существует возможность создания и выполнения пиринга для одного файла 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 выше, создать развертывание, и пиринг должен быть сделан. В этих действиях используется optionOn , чтобы убедиться, что сначала создается сеть, а при удалении развертываний одноранговые узлы будут удалены путем вызова метода removePeering , а затем сети будут удалены.
Примечание. Действия диспетчера развертывания пока не документированы, но есть несколько примеров в GoogleCloudPlatform / deploymanager-samples , таких как this и this .