Я настраиваю пакет диспетчера развертывания в .jinja, который выполняет следующие действия: - Создает сеть VPC, подсеть и частный диапазон для служб GCP - Создает пиринг между servicenetworking.googleapis.com и моей сетью VPC - Назначает облачный SQL базу данных в частный диапазон, назначенный службам Google в моем VPC
Второй шаг оказывается невозможным с помощью диспетчера развертывания, поскольку для этого нет действий, которые можно было бы вызвать. Я подтвердил, что исправление вручную на этом этапе заключается в вызове следующей команды gcloud и затем настройке базы данных Cloud SQL в VPC:
gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com --ranges=<my-range> --network=<my-network> --project=<my-project>
Использование следующего типа gcp в моем .jinja недостаточно, так как он не позволяет сопоставить с уже существующими службами 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
...