Awx-operator: extra_settings tidak menambahkan tanda kutip di sekitar nilai string

Dibuat pada 25 Agu 2021  ·  5Komentar  ·  Sumber: ansible/awx-operator

JENIS MASALAH
  • Laporan Bug
RINGKASAN

Menggunakan extra_settings tidak mungkin untuk menetapkan nilai string ke kunci pengaturan AWX karena tidak mencakup nilai string dalam tanda kutip yang mengakibatkan kesalahan python karena settings.py memperlakukannya sebagai nama variabel sehingga mengakibatkan kegagalan untuk membuka wadah web dan tugas.

LINGKUNGAN
  • Versi AWX: 19.2.2
  • Versi operator: 0.13.0
  • Versi Kubernetes: 1.20
  • Metode penginstalan AWX: penginstalan berbasis kubernetes menggunakan awx-operator
LANGKAH-LANGKAH REPRODUKSI

Setel di bawah extra_settings di templat operator,

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

Terapkan template untuk men-deploy AWX ke namespace kubenetes.
kubectl apply -f-n

HASIL YANG DIHARAPKAN

Operator harus dengan aman mengurai extra_settings untuk menambahkan baris di bawah ini ke /etc/tower/settings.py
AUTH_LDAP_BIND_DN = "cn=admin,dc=contoh,dc=com"

Dan wadah AWX harus dapat membaca kunci ini dan muncul dengan baik tanpa kesalahan.

HASIL NYATA

Operator tidak menambahkan tanda kutip di sekitar string DN sehingga menyebabkan eksekusi python gagal dengan kesalahan di bawah ini.

File "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/asgi.py", baris 12, di
persiapan_env() # NOQA
File "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/__init__.py", baris 103, di prepare_env
jika bukan pengaturan.DEBUG: # pragma: tanpa penutup
File "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/Django/conf/__init__.py", baris 79, di __getattr__
self._setup(nama)
File "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/Django/conf/__init__.py", baris 66, di _setup
self._wrapped = Pengaturan(pengaturan_modul)
File "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/Django/conf/__init__.py", baris 157, di __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib64/python3.8/importlib/__init__.py", baris 127, di import_module
kembalikan _bootstrap._gcd_import(nama[level:], paket, level)
berkas "", baris 1014, di _gcd_import
berkas "", baris 991, di _find_and_load
berkas "", baris 975, di _find_and_load_unlocked
berkas "", baris 671, di _load_unlocked
berkas "", baris 783, di exec_module
berkas "", baris 219, di _call_with_frames_removed
File "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/settings/production.py", baris 62, di
termasuk(pengaturan_file, opsional(pengaturan_file), lingkup=lokal())
File "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/split_settings/tools.py", baris 107, termasuk
exec(compiled_code, scope) # noqa: S102, WPS421
File "/etc/tower/settings.py", baris 75, di
AUTH_LDAP_BIND_DN = cn=admin,dc=contoh,dc=com
NameError: nama 'com' tidak ditentukan

INFORMASI TAMBAHAN
LOG OPERATOR AWX

Tidak ada kesalahan dalam log operator karena evaluasi peta konfigurasi berjalan dengan baik tanpa masalah - https://github.com/ansible/awx-operator/blob/0.13.0/roles/installer/templates/config.yaml.j2#L93

Komentar yang paling membantu

Ini tampaknya merupakan efek samping yang tidak diinginkan dari #432. Jika tidak ada yang lain, dokumentasi (README) harus diperbarui untuk menunjukkan kutipan nilai dengan benar, karena contoh saat ini tidak berfungsi.

Semua 5 komentar

Ini tampaknya merupakan efek samping yang tidak diinginkan dari #432. Jika tidak ada yang lain, dokumentasi (README) harus diperbarui untuk menunjukkan kutipan nilai dengan benar, karena contoh saat ini tidak berfungsi.

Contoh dalam deskripsi pr sepertinya bukan yaml yang valid. Saya kira ada pemeriksaan tipe yang lebih baik yang bisa kita lakukan di sini.

Maksud Anda contoh dalam deskripsi _issue_? Ya, ada kesalahan ketik di sana, tanpa tambahan `, seharusnya:

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

Sebagai catatan, meskipun menggunakan kutipan blok YAML berfungsi:

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

…itu tidak terlalu intuitif, karena nilai pada contoh pertama sudah berupa string — kita tidak perlu mengutip tanda kutip.

Maksud Anda contoh dalam deskripsi _issue_? Ya, ada kesalahan ketik di sana, tanpa tambahan `, seharusnya:

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

Sebagai catatan, meskipun menggunakan kutipan blok YAML berfungsi:

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

…itu tidak terlalu intuitif, karena nilai pada contoh pertama sudah berupa string — kita tidak perlu mengutip

Contoh dalam deskripsi pr sepertinya bukan yaml yang valid. Saya kira ada pemeriksaan tipe yang lebih baik yang bisa kita lakukan di sini.

Koreksi kesalahan ketik, terima kasih @shanemcd

Maksud Anda contoh dalam deskripsi _issue_? Ya, ada kesalahan ketik di sana, tanpa tambahan `, seharusnya:

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

Sebagai catatan, meskipun menggunakan kutipan blok YAML berfungsi:

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

…itu tidak terlalu intuitif, karena nilai pada contoh pertama sudah berupa string — kita tidak perlu mengutip tanda kutip.

Terima kasih, ini berhasil. Mungkin ada baiknya jika kami memperbarui README untuk sementara waktu sehingga orang lain tidak akan mengalami masalah yang sama.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat