Mit extra_settings ist es nicht möglich, Zeichenfolgenwerte auf AWX-Einstellungsschlüssel festzulegen, da sie den Zeichenfolgenwert nicht in Anführungszeichen setzen, was zu einem Python-Fehler führt, da settings.py ihn als Variablennamen behandelt, was dazu führt, dass Web- und Aufgabencontainer nicht aufgerufen werden können.
Unter extra_settings in der Betreibervorlage festlegen,
spec:
extra_settings:
- setting: AUTH_LDAP_BIND_DN
value: "cn=admin,dc=example,dc=com"
Wenden Sie die Vorlage an, um AWX im kubenetes-Namespace bereitzustellen.
kubectl anwenden -f
Der Bediener sollte die extra_settings sicher parsen, um die folgende Zeile in /etc/tower/settings.py hinzuzufügen
AUTH_LDAP_BIND_DN = "cn=admin,dc=beispiel,dc=com"
Und AWX-Container sollten in der Lage sein, diesen Schlüssel zu lesen und ohne Fehler zu funktionieren.
Der Operator fügt keine Anführungszeichen um die DN-Zeichenfolge hinzu, was dazu führt, dass die Python-Ausführung mit dem folgenden Fehler fehlschlägt.
Datei "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/asgi.py", Zeile 12, in
Prepare_env() # NOQA
Datei „/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/__init__.py“, Zeile 103, in Prepare_env
wenn nicht settings.DEBUG: # Pragma: kein Cover
Datei "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py", Zeile 79, in __getattr__
self._setup(Name)
Datei „/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py“, Zeile 66, in _setup
self._wrapped = Einstellungen (settings_module)
Datei "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py", Zeile 157, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
Datei "/usr/lib64/python3.8/importlib/__init__.py", Zeile 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
Datei "
Datei "
Datei "
Datei "
Datei "
Datei "
Datei "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/settings/production.py", Zeile 62, in
include(settings_file, optional(settings_files), scope=locals())
Datei "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/split_settings/tools.py", Zeile 107, im Include
exec(compiled_code, scope) # noqa: S102, WPS421
Datei "/etc/tower/settings.py", Zeile 75, in
AUTH_LDAP_BIND_DN = cn=admin,dc=beispiel,dc=com
NameError: Name „com“ ist nicht definiert
Kein Fehler in den Bedienerprotokollen, da die Auswertung der Konfigurationskarte ohne Probleme durchläuft – https://github.com/ansible/awx-operator/blob/0.13.0/roles/installer/templates/config.yaml.j2#L93
Dies scheint ein unbeabsichtigter Nebeneffekt von #432 zu sein. Wenn nichts anderes, sollte die Dokumentation (README) aktualisiert werden, um die Werte korrekt zu zitieren, da das aktuelle Beispiel nicht funktioniert.
Das Beispiel in der PR-Beschreibung scheint keine gültige Yaml-Datei zu sein. Ich vermute, es gibt eine bessere Typprüfung, die wir hier durchführen könnten.
Du meinst das Beispiel in der _Problem_-Beschreibung? Ja, da ist ein Tippfehler drin, ohne das zusätzliche ` müsste es heißen:
spec:
extra_settings:
- setting: AUTH_LDAP_BIND_DN
value: "cn=admin,dc=example,dc=com"
Für das Protokoll, obwohl die Verwendung von YAML-Blockzitaten funktioniert:
spec:
extra_settings:
- setting: AUTH_LDAP_BIND_DN
value: >-
"cn=admin,dc=example,dc=com"
… das ist nicht wirklich intuitiv, da der Wert im ersten Beispiel bereits ein String ist – wir sollten die Anführungszeichen nicht brauchen.
Du meinst das Beispiel in der _Problem_-Beschreibung? Ja, da ist ein Tippfehler drin, ohne das zusätzliche ` müsste es heißen:
spec: extra_settings: - setting: AUTH_LDAP_BIND_DN value: "cn=admin,dc=example,dc=com"
Für das Protokoll, obwohl die Verwendung von YAML-Blockzitaten funktioniert:
spec: extra_settings: - setting: AUTH_LDAP_BIND_DN value: >- "cn=admin,dc=example,dc=com"
… das ist nicht wirklich intuitiv, da der Wert im ersten Beispiel bereits ein String ist – wir sollten den nicht in Anführungszeichen setzen müssen
Das Beispiel in der PR-Beschreibung scheint keine gültige Yaml-Datei zu sein. Ich vermute, es gibt eine bessere Typprüfung, die wir hier durchführen könnten.
Tippfehler korrigiert, danke @shanemcd
Du meinst das Beispiel in der _Problem_-Beschreibung? Ja, da ist ein Tippfehler drin, ohne das zusätzliche ` müsste es heißen:
spec: extra_settings: - setting: AUTH_LDAP_BIND_DN value: "cn=admin,dc=example,dc=com"
Für das Protokoll, obwohl die Verwendung von YAML-Blockzitaten funktioniert:
spec: extra_settings: - setting: AUTH_LDAP_BIND_DN value: >- "cn=admin,dc=example,dc=com"
… das ist nicht wirklich intuitiv, da der Wert im ersten Beispiel bereits ein String ist – wir sollten die Anführungszeichen nicht brauchen.
Danke, das funktioniert. Vielleicht ist es gut, wenn wir die README vorerst aktualisieren, damit andere nicht auf dasselbe Problem stoßen.
Hilfreichster Kommentar
Dies scheint ein unbeabsichtigter Nebeneffekt von #432 zu sein. Wenn nichts anderes, sollte die Dokumentation (README) aktualisiert werden, um die Werte korrekt zu zitieren, da das aktuelle Beispiel nicht funktioniert.