Как создать сеть и подсеть с помощью Google Installation Manager (GCP) - PullRequest
1 голос
/ 24 февраля 2020

Я только начал изучать менеджер развертывания GCP и создаю файл для создания одной сети и одной подсети. Я сделал тест, используя 2 разных файла (по одному для каждого) и работал нормально. Теперь, когда я объединяю создание сети и подсети, возникают 2 проблемы:

  1. Во время создания, когда сеть заканчивается sh, начинается создание и шаг подсети, похоже, что эта сеть Информация еще не создана, и я получил ошибку ресурса не найден. Но если я снова запускаю обновление, создается su bnet.

  2. Во время удаления администратор развертывания пытается сначала удалить сеть до подсети, и я получил сообщение " ресурс используется, вы не можете удалить ".

Итак, я хотел бы получить здесь помощь с лучшими практиками по этому поводу. Большое спасибо.

Моя конфигурация:

main.yml

imports:
  - path: network.jinja
  - path: subnetwork.jinja

resources:
  - name: network
    type: network.jinja

  - name: subnetwork
    type: subnetwork.jinja

network.jinja

resources:
  - type: gcp-types/compute-v1:networks
    name: network-{{ env["deployment"] }}
    properties:
      routingConfig:
      routingMode: REGIONAL
      autoCreateSubnetworks: false

subnetwork.jinja

resources:
- type: gcp-types/compute-v1:subnetworks
  name: subnetwork-{{ env["deployment"] }}
  properties:
    region: us-central1
    network: https://www.googleapis.com/compute/v1/projects/XXXXXXXX/global/networks/network-{{ env["deployment"] }}
    ipCidrRange: 10.10.10.0/24
    privateIpGoogleAccess: false

1 Ответ

1 голос
/ 24 февраля 2020

Вероятно, ваша проблема возникла из-за того, что Deployment Manager не распознал наличие зависимостей между вашими ресурсами. Вот рабочий YAML, который я использовал:

resources:
  - type: gcp-types/compute-v1:networks
    name: network-mynet
    properties:
      routingConfig:
        routingMode: REGIONAL
      autoCreateSubnetworks: false
  - type: gcp-types/compute-v1:subnetworks
    name: subnetwork-mynet
    properties:
      region: us-central1
      network: $(ref.network-mynet.selfLink)
      ipCidrRange: 10.10.10.0/24
      privateIpGoogleAccess: false

Я считаю, что основное отличие состоит в том, что в этом примере элемент network в определении subnetworks использует ссылки на Deployment Manager . Используя эту технику, мы получаем более декларативное решение, и можно вывести отношения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...