Awx-operator: extra_settings n'ajoute pas de guillemets autour des valeurs de chaîne

Créé le 25 août 2021  ·  5Commentaires  ·  Source: ansible/awx-operator

TYPE DE PROBLEME
  • Rapport d'erreur
SOMMAIRE

En utilisant extra_settings, il n'est pas possible de définir des valeurs de chaîne sur les clés de paramètre AWX car elles n'englobent pas la valeur de chaîne entre guillemets, ce qui entraîne une erreur python car settings.py le traite comme un nom de variable, ce qui entraîne l'échec de l'affichage des conteneurs Web et de tâches.

ENVIRONNEMENT
  • Version AWX : 19.2.2
  • Version opérateur : 0.13.0
  • Version de Kubernetes : 1.20
  • Méthode d'installation AWX : installation basée sur kubernetes à l'aide de l'opérateur awx
ÉTAPES POUR REPRODUIRE

Définissez ci-dessous extra_settings dans le modèle d'opérateur,

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

Appliquez le modèle pour déployer AWX dans l'espace de noms kubenetes.
kubectl appliquer -f-n

RÉSULTATS ATTENDUS

L'opérateur doit analyser en toute sécurité les extra_settings pour ajouter la ligne ci-dessous dans /etc/tower/settings.py
AUTH_LDAP_BIND_DN = "cn=admin,dc=exemple,dc=com"

Et les conteneurs AWX devraient pouvoir lire cette clé et fonctionner correctement sans aucune erreur.

RÉSULTATS ACTUELS

L'opérateur n'ajoute pas de guillemets autour de la chaîne DN, ce qui entraîne l'échec de l'exécution de python avec l'erreur ci-dessous.

Fichier "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/asgi.py", ligne 12, dans
prepare_env() # NOQA
Fichier "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/__init__.py", ligne 103, dans prepare_env
sinon settings.DEBUG: # pragma: no cover
Fichier "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py", ligne 79, dans __getattr__
self._setup(nom)
Fichier "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py", ligne 66, dans _setup
self._wrapped = Paramètres (module_paramètres)
Fichier "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py", ligne 157, dans __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
Fichier "/usr/lib64/python3.8/importlib/__init__.py", ligne 127, dans import_module
return _bootstrap._gcd_import(name[level:], package, level)
Fichier "", ligne 1014, dans _gcd_import
Fichier "", ligne 991, dans _find_and_load
Fichier "", ligne 975, dans _find_and_load_unlocked
Fichier "", ligne 671, dans _load_unlocked
Fichier "", ligne 783, dans exec_module
Fichier "", ligne 219, dans _call_with_frames_removed
Fichier "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/settings/production.py", ligne 62, dans
include(settings_file, optionnel(settings_files), scope=locals())
Fichier "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/split_settings/tools.py", ligne 107, dans include
exec(compiled_code, scope) # noqa: S102, WPS421
Fichier "/etc/tower/settings.py", ligne 75, dans
AUTH_LDAP_BIND_DN = cn=admin,dc=exemple,dc=com
NameError : le nom 'com' n'est pas défini

INFORMATIONS COMPLÉMENTAIRES
JOURNAUX DES OPÉRATEURS AWX

Aucune erreur dans les journaux de l'opérateur car l'évaluation de la carte de configuration se déroule correctement sans aucun problème - https://github.com/ansible/awx-operator/blob/0.13.0/roles/installer/templates/config.yaml.j2#L93

Commentaire le plus utile

Cela semble être un effet secondaire involontaire de #432. Si rien d'autre, la documentation (README) doit être mise à jour pour afficher correctement la citation des valeurs, car l'exemple actuel ne fonctionne pas.

Tous les 5 commentaires

Cela semble être un effet secondaire involontaire de #432. Si rien d'autre, la documentation (README) doit être mise à jour pour afficher correctement la citation des valeurs, car l'exemple actuel ne fonctionne pas.

L'exemple dans la description pr ne semble pas être yaml valide. Je suppose qu'il y a une meilleure vérification de type que nous pourrions faire ici.

Vous voulez dire l'exemple dans la description de _issue_ ? Oui, il y a une faute de frappe là-dedans, sans le ` supplémentaire, cela devrait être :

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

Pour mémoire, bien que l'utilisation des guillemets de blocs YAML fonctionne :

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

… ce n'est pas vraiment intuitif, car la valeur dans le premier exemple est déjà une chaîne — nous ne devrions pas avoir besoin de citer les guillemets.

Vous voulez dire l'exemple dans la description de _issue_ ? Oui, il y a une faute de frappe là-dedans, sans le ` supplémentaire, cela devrait être :

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

Pour mémoire, bien que l'utilisation des guillemets de blocs YAML fonctionne :

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

… ce n'est pas vraiment intuitif, car la valeur dans le premier exemple est déjà une chaîne - nous ne devrions pas avoir besoin de citer le

L'exemple dans la description pr ne semble pas être yaml valide. Je suppose qu'il y a une meilleure vérification de type que nous pourrions faire ici.

Correction de la faute de frappe, merci @shanemcd

Vous voulez dire l'exemple dans la description de _issue_ ? Oui, il y a une faute de frappe là-dedans, sans le ` supplémentaire, cela devrait être :

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

Pour mémoire, bien que l'utilisation des guillemets de blocs YAML fonctionne :

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

… ce n'est pas vraiment intuitif, car la valeur dans le premier exemple est déjà une chaîne — nous ne devrions pas avoir besoin de citer les guillemets.

Merci, cela fonctionne. Peut-être que c'est bien si nous mettons à jour le README pour le moment afin que d'autres ne rencontrent pas le même problème.

Cette page vous a été utile?
0 / 5 - 0 notes