диспетчер развертывания gcloud неопределенные свойства: неопределенная ошибка: ‘properties’ не определено

#properties #undefined #gcloud

#свойства #не определено #gcloud

Вопрос:

Здесь приведен пример кода, который использует следующий фрагмент кода для обработки неопределенных свойств.

 {% if properties["cidr"] is defined %}
  {% set cidr = properties["cidr"] %}
{% else %}
  {% set cidr = "10.10.0.0/16" %}
{% endif %}
  

пример диспетчера развертывания github

Однако, когда я пытаюсь использовать аналогичный код:

 {% if properties['prod'] is defined %}
  {% set machine_type = 'n1-highmem-8' %}
  {% set num_nodes = 3 %}
{% else %}
  {% set machine_type = 'g1-small' %}
  {% set num_nodes = 1 %}
{% endif %}
  

и развернуть следующим образом:

 gcloud deployment-manager deployments create xxx --template kubernetes.jinja --automatic-rollback-on-error --preview
  

Я получаю следующую ошибку:

 - code: MANIFEST_EXPANSION_USER_ERROR   location: /deployments/xxx/manifests/manifest-1597981115450   message: |-
    Manifest expansion encountered the following errors: Exception in kubernetes.jinja
    Traceback (most recent call last):
        return template.render(resource)
        return self.environment.handle_exception(exc_info, True)
        reraise(exc_type, exc_value, tb)
      File "<template>", line 19, in top-level template code
        return obj[argument]
    UndefinedError: 'properties' is undefined
     Resource: kubernetes.jinja Resource: config
  

Когда я развертываю со свойствами, это работает.

 gcloud deployment-manager deployments create xxx --template kubernetes.jinja --automatic-rollback-on-error --preview --properties prod:false
  

Как я могу настроить скрипт jinja так, чтобы он имел значения по умолчанию и / или обнаруживал отсутствующие свойства без создания исключения?

Обновить:

Добавление ЛЮБОГО свойства, даже другого, кажется, достаточно для выполнения скрипта. Похоже, атрибут properties по умолчанию ПОЛНОСТЬЮ отсутствует!

развертывание диспетчера развертывания gcloud создать xxx —шаблон kubernetes.jinja —автоматический откат при ошибке —предварительный просмотр —свойства adsfsdfsdf:Asdfasdfasdf

Ответ №1:

Вам нужно определить properties либо в конфигурации, использующей шаблон, либо при развертывании из командной строки.

Смотрите: https://cloud.google.com/deployment-manager/docs/configuration/templates/define-template-properties

Например.

 gcloud deployment-manager deployments create xxx 
--template=kubernetes.jinja 
--properties=prod:...