Используя extra_settings, невозможно установить строковые значения для ключей настроек AWX, поскольку оно не включает строковое значение в кавычки, что приводит к ошибке Python, поскольку settings.py обрабатывает его как имя переменной, что приводит к невозможности открыть веб-контейнеры и контейнеры задач.
Установите ниже дополнительные_настройки в шаблоне оператора,
spec:
extra_settings:
- setting: AUTH_LDAP_BIND_DN
value: "cn=admin,dc=example,dc=com"
Примените шаблон для развертывания AWX в пространстве имен kubenetes.
kubectl применить -f
Оператор должен безопасно проанализировать extra_settings, чтобы добавить строку ниже в /etc/tower/settings.py.
AUTH_LDAP_BIND_DN = "cn=admin,dc=example,dc=com"
И контейнеры AWX должны уметь читать этот ключ и нормально работать без ошибок.
Оператор не добавляет кавычки вокруг строки DN, что приводит к сбою выполнения python с ошибкой ниже.
Файл "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/asgi.py", строка 12, в
prepare_env() # NOQA
Файл "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/__init__.py", строка 103, в prepare_env
если не settings.DEBUG: # pragma: no cover
Файл "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py", строка 79, в __getattr__
self._setup(имя)
Файл "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py", строка 66, в _setup
self._wrapped = Настройки (модуль настроек)
Файл "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py", строка 157, в __init__
мод = importlib.import_module(self.SETTINGS_MODULE)
Файл "/usr/lib64/python3.8/importlib/__init__.py", строка 127, в import_module
вернуть _bootstrap._gcd_import (имя [уровень:], пакет, уровень)
Файл "
Файл "
Файл "
Файл "
Файл "
Файл "
Файл "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/settings/production.py", строка 62, в
включить (файл_настроек, необязательный (файлы_настроек), область видимости = локальные ())
Файл "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/split_settings/tools.py", строка 107, включен
exec(compiled_code, scope) # noqa: S102, WPS421
Файл "/etc/tower/settings.py", строка 75, в
AUTH_LDAP_BIND_DN = cn=admin,dc=example,dc=com
NameError: имя «com» не определено
В журналах оператора нет ошибок, так как оценка карты конфигурации проходит без проблем - https://github.com/ansible/awx-operator/blob/0.13.0/roles/installer/templates/config.yaml.j2#L93
Похоже, это непреднамеренный побочный эффект #432. Если ничего другого, документация (README) должна быть обновлена, чтобы показать правильное цитирование значений, поскольку текущий пример не работает.
Пример в описании pr не кажется допустимым yaml. Я предполагаю, что мы могли бы сделать здесь лучшую проверку типов.
Вы имеете в виду пример в описании _issue_? Да, там опечатка, без лишнего ` должно быть так:
spec:
extra_settings:
- setting: AUTH_LDAP_BIND_DN
value: "cn=admin,dc=example,dc=com"
Для справки, хотя использование блочного цитирования YAML работает:
spec:
extra_settings:
- setting: AUTH_LDAP_BIND_DN
value: >-
"cn=admin,dc=example,dc=com"
… это не очень интуитивно понятно, так как значение в первом примере уже является строкой — нам не нужно заключать кавычки.
Вы имеете в виду пример в описании _issue_? Да, там опечатка, без лишнего ` должно быть так:
spec: extra_settings: - setting: AUTH_LDAP_BIND_DN value: "cn=admin,dc=example,dc=com"
Для справки, хотя использование блочного цитирования YAML работает:
spec: extra_settings: - setting: AUTH_LDAP_BIND_DN value: >- "cn=admin,dc=example,dc=com"
… это не очень интуитивно понятно, так как значение в первом примере уже является строкой — нам не нужно заключать в кавычки
Пример в описании pr не кажется допустимым yaml. Я предполагаю, что мы могли бы сделать здесь лучшую проверку типов.
Исправил опечатку, спасибо @shanemcd
Вы имеете в виду пример в описании _issue_? Да, там опечатка, без лишнего ` должно быть так:
spec: extra_settings: - setting: AUTH_LDAP_BIND_DN value: "cn=admin,dc=example,dc=com"
Для справки, хотя использование блочного цитирования YAML работает:
spec: extra_settings: - setting: AUTH_LDAP_BIND_DN value: >- "cn=admin,dc=example,dc=com"
… это не очень интуитивно понятно, так как значение в первом примере уже является строкой — нам не нужно заключать кавычки.
Спасибо, это работает. Может быть, будет хорошо, если мы обновим README на данный момент, чтобы другие не столкнулись с той же проблемой.
Самый полезный комментарий
Похоже, это непреднамеренный побочный эффект #432. Если ничего другого, документация (README) должна быть обновлена, чтобы показать правильное цитирование значений, поскольку текущий пример не работает.