#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:...