Awx-operator: لا يضيف extra_settings علامات اقتباس حول قيم السلسلة

تم إنشاؤها على ٢٥ أغسطس ٢٠٢١  ·  5تعليقات  ·  مصدر: ansible/awx-operator

نوع القضية
  • تقرير الشوائب
ملخص

باستخدام extra_settings ، لا يمكن تعيين قيم السلسلة لمفاتيح إعداد AWX لأنها لا تشمل قيمة السلسلة في علامات الاقتباس مما يؤدي إلى حدوث خطأ في لغة python حيث يعاملها settings.py على أنها اسم متغير مما يؤدي إلى فشل إحضار حاويات الويب والمهام.

بيئة
  • إصدار AWX: 19.2.2
  • إصدار المشغل: 0.13.0
  • إصدار Kubernetes: 1.20
  • طريقة تثبيت AWX: التثبيت المستند إلى kubernetes باستخدام مشغل awx
خطوات التكاثر

تعيين أدناه extra_settings في قالب المشغل ،

spec:
    extra_settings:
      - setting: AUTH_LDAP_BIND_DN
        value: "cn=admin,dc=example,dc=com"

قم بتطبيق القالب لنشر AWX في مساحة أسماء kubenetes.
kubectl تطبيق -f

نتائج متوقعة

يجب على المشغل تحليل الإعدادات الإضافية بأمان لإضافة السطر أدناه إلى /etc/tower/settings.py
AUTH_LDAP_BIND_DN = "cn = المسؤول ، dc = مثال ، dc = com"

ويجب أن تكون حاويات AWX قادرة على قراءة هذا المفتاح والعمل بشكل جيد دون أي أخطاء.

النتائج الفعلية

لا يضيف المشغل علامات اقتباس حول سلسلة DN وبالتالي يتسبب في فشل تنفيذ Python مع الخطأ أدناه.

ملف "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/asgi.py" ، السطر 12 ، في
Prepar_env () # NOQA
ملف "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/__init__.py" ، السطر 103 ، في Prepar_env
إن لم يكن الإعدادات. Debug: # pragma: لا يوجد غطاء
ملف "/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 = الإعدادات (settings_module)
ملف "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py" ، السطر 157 ، في __init__
mod = importlib.import_module (self.SETTINGS_MODULE)
ملف "/usr/lib64/python3.8/importlib/__init__.py" ، السطر 127 ، في import_module
إرجاع _bootstrap._gcd_import (الاسم [المستوى:] ، الحزمة ، المستوى)
ملف ""، السطر 1014 ، في _gcd_import
ملف ""، السطر 991 ، في _find_and_load
ملف ""، السطر 975 ، في _find_and_load_unlocked
ملف ""، السطر 671 ، في _load_unlocked
ملف ""، السطر 783 ، في exec_module
ملف ""، السطر 219 ، في _call_with_frames_removed
ملف "/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، domain) # noqa: S102، WPS421
ملف "/etc/tower/settings.py" ، السطر 75 ، بتنسيق
AUTH_LDAP_BIND_DN = cn = admin ، dc = مثال ، dc = com
NameError: الاسم "com" غير محدد

معلومة اضافية
سجلات مشغل AWX

لا يوجد خطأ في سجلات المشغل حيث يمر تقييم خريطة التكوين بشكل جيد دون أي مشاكل - https://github.com/ansible/awx-operator/blob/0.13.0/roles/installer/templates/config.yaml.j2#L93

التعليق الأكثر فائدة

يبدو أن هذا أثر جانبي غير مقصود لـ # 432. إذا لم يكن هناك شيء آخر ، فيجب تحديث الوثائق (README) لإظهار اقتباس القيم بشكل صحيح ، لأن المثال الحالي لا يعمل.

ال 5 كومينتر

يبدو أن هذا أثر جانبي غير مقصود لـ # 432. إذا لم يكن هناك شيء آخر ، فيجب تحديث الوثائق (README) لإظهار اقتباس القيم بشكل صحيح ، لأن المثال الحالي لا يعمل.

المثال الوارد في وصف العلاقات العامة لا يبدو أنه 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"

... هذا ليس بديهيًا حقًا ، حيث إن القيمة في المثال الأول عبارة عن سلسلة بالفعل - لا ينبغي علينا اقتباس

المثال الوارد في وصف العلاقات العامة لا يبدو أنه 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 في الوقت الحالي حتى لا يواجه الآخرون نفس المشكلة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات