extra_settingsを使用すると、文字列値をAWX設定キーに設定できません。これは、文字列値が引用符で囲まれていないため、Pythonエラーがsettings.pyとして扱われるため、Webおよびタスクコンテナの起動に失敗するためです。
オペレーターテンプレートのextra_settingsの下に設定します。
spec:
extra_settings:
- setting: AUTH_LDAP_BIND_DN
value: "cn=admin,dc=example,dc=com"
テンプレートを適用して、AWXをkubenetes名前空間にデプロイします。
kubectl apply -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
prepare_envのファイル"/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/__init__.py"、行103
設定でない場合DEBUG:#プラグマ:カバーなし
ファイル"/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py"、79行目、__ getattr__
self._setup(name)
ファイル"/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/conf/__init__.py"、66行目、_setup
self._wrapped = Settings(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)
import_moduleのファイル「/usr/lib64/python3.8/importlib/__init__.py」、127行目
return _bootstrap._gcd_import(name [level:]、package、level)
ファイル "
ファイル "
ファイル "
ファイル "
ファイル "
ファイル "
ファイル"/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/settings/production.py"、62行目
include(settings_file、optional(settings_files)、scope = locals())
ファイル"/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)を更新して、値を正しく引用するように表示する必要があります。