)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"e3fe6afb4dde8674872620263c75a54c870118c6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a2b80689_b21d9ae6","updated":"2025-05-16 14:02:54.000000000","message":"@frickler@offenerstapel.de You was right in one case, but I will upload fix 😊, with fixed code this is result.\n\nhttps://paste.openstack.org/show/bl2z4Sh8ho94hK4SjNbd/","commit_id":"36bbbdea9a86b272a3d34725e9ba89bb7ff9d552"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3a5d2358671aaf78a27f88ffa46ba4b1e5de91d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b946e269_9602c3ac","updated":"2025-05-16 11:44:03.000000000","message":"I wouldn\u0027t be surprised if someone had a use case which is broken by this, so I wonder if this should be made configurable. at the very least I\u0027d say we need a reno and some note in the bootstrap docs","commit_id":"36bbbdea9a86b272a3d34725e9ba89bb7ff9d552"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"461f3b9f0689c30e648c05cd4498769a53f66e95","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"add41188_489fbc4a","in_reply_to":"737442bf_2873ec3d","updated":"2025-05-16 14:05:51.000000000","message":"Fixed.","commit_id":"36bbbdea9a86b272a3d34725e9ba89bb7ff9d552"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ec5f9fed781a96694d516757b75e80aff0dd2408","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d13d7b11_b210290d","in_reply_to":"b946e269_9602c3ac","updated":"2025-05-16 11:56:55.000000000","message":"Please, give me some example ... because if anybody is using -e ansible_python_interpreter now ... the user value will still be used as it is last used ...\n\nOkay, agree with reno.","commit_id":"36bbbdea9a86b272a3d34725e9ba89bb7ff9d552"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"944b26919fbc25ff2e6227a441d9fa6da5e0e769","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"737442bf_2873ec3d","in_reply_to":"d13d7b11_b210290d","updated":"2025-05-16 11:57:19.000000000","message":"* I mean for bootstrrap.","commit_id":"36bbbdea9a86b272a3d34725e9ba89bb7ff9d552"},{"author":{"_account_id":35366,"name":"Michael Sherman","email":"shermanm@uchicago.edu","username":"shermanm"},"change_message_id":"797fd472730ac0a5ce81ad4d9f3f90fadc292054","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"53095d6b_f629bb06","updated":"2025-05-16 17:59:55.000000000","message":"We have used essentially this approach to configure venvs for kolla via an external wrapper script since train.\n\nThere is an edge case that I don\u0027t believe is handled here, where a separate deploy host is used to run kolla-ansible.\n\nIn that case, it looks like bootstrap will succeed, but deploy will fail, because a virtualenv is not created on the deploy host, but the value of `ansible_python_interpreter` is still set","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"d13d757d83d7d961c31c44d85d64317bd080849a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8fbe8cba_dc902059","in_reply_to":"17b7d875_31ca1436","updated":"2025-05-17 18:38:54.000000000","message":"It\u0027s handled ... I am testing on my testing cloud where deploy host is different than stack nfra.","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"af5b8c96f933cefee7305b6a64565280c0eb4098","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d1c20cb9_c9c80469","in_reply_to":"3ea9a0e2_d5087e59","updated":"2025-05-20 21:00:55.000000000","message":"Okay, good catch .. you were right ... I tested and moved to baremetal.","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":35366,"name":"Michael Sherman","email":"shermanm@uchicago.edu","username":"shermanm"},"change_message_id":"a3ecd189cbe25fe3c3c066f2331ee0d09cc73a96","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"abb88ab6_ff691470","in_reply_to":"53095d6b_f629bb06","updated":"2025-05-16 18:21:04.000000000","message":"A workaround is to set this in group_vars/baremetal instead, as that applies to all hosts targeted by bootstrap_servers, but not the deploy host.","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"3fa908fe863be91002543d06d0ebee8d37182566","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"eee10bf7_b0a6ee3c","in_reply_to":"8c0e078f_0eaa8bcf","updated":"2025-05-20 18:57:05.000000000","message":"@shermanm@uchicago.edu\n\nThere is an edge case that I don\u0027t believe is handled here, where a separate deploy host is used to run kolla-ansible.\n\nIn that case, it looks like bootstrap will succeed, but deploy will fail, because a virtualenv is not created on the deploy host, but the value of ansible_python_interpreter is still set\n\n\u003e\u003e As you can see deploy is successfull. Why, because bootstrap-servers set ansible_python_interpreter is set to auto_silent, that means if user explicitly not saying \"use this interpreter for bootstrap\" ..auto_silent is used. Auto silent is used because it\u0027s on the CLI as -e ansible_python_interpreter\u003dauto_silent. But then when deploy is running, there is no extra_var defined on the CLI. So, ansible_python_interpreter from group_vars is used.\n\nAnd how it is templated ? Well, if virtualenv is defined, ansible python interpreter is set to virtualenv (as bootstrap created it during his run), and if virtualenv is not defined ...it will take discovered python. If first nor second doens\u0027t exist..again it is auto_silent. Elegant. \n\nBTW, in my testing stack i am using separate deploy host without problem. Another example you can see in octavia-certificates, that CLI command is using interpreter where kolla-ansible CLI was executed (as there is proper cryptography).","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":35366,"name":"Michael Sherman","email":"shermanm@uchicago.edu","username":"shermanm"},"change_message_id":"c588aa1b4b4f3f68b45e453b9109790c713e06c2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8c0e078f_0eaa8bcf","in_reply_to":"8fbe8cba_dc902059","updated":"2025-05-20 17:57:01.000000000","message":"What mechanism is used to set this for all hosts except for deploy host?\nI\u0027m just missing what part of the change make this happen.\n\nDoes the operator need to set different values in host_vars/localhost or group_vars/deployment or something?","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"3629cbcb6720fda9a8b360e932257c99d3b806fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"17b7d875_31ca1436","in_reply_to":"abb88ab6_ff691470","updated":"2025-05-17 05:20:32.000000000","message":"I solved this 😊","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":35366,"name":"Michael Sherman","email":"shermanm@uchicago.edu","username":"shermanm"},"change_message_id":"7aa65ab10b02c3273dd69e08971bb5858eb885eb","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f4d7209b_adbed752","in_reply_to":"eee10bf7_b0a6ee3c","updated":"2025-05-20 20:06:53.000000000","message":"\u003e Well, if virtualenv is defined, ansible python interpreter is set to virtualenv (as bootstrap created it during his run), and if virtualenv is not defined ...it will take discovered python. If first nor second doens\u0027t exist..again it is auto_silent. Elegant.\n\nSo after running bootstrap, while running deploy, my understanding is:\n\n* kolla-ansible running on the deploy host\n* extra_var is not set\n* ansible_python_interpreter is set in all.yml, and set to {{virtualenv}}/bin/python\n\nthis clearly works on all hosts in the group `baremetal`, since bootstrap-servers created virtualenv/bin/python\n\nso my question is:\n\nis `ansible_python_interpreter` as seen by the deploy host, set to {{virtualenv}}/bin/python?\n\nif so, what creates that path? so far as I understand, bootstrap does NOT create that path on the deploy host, only on members of the group baremetal.\n\nif not, how is it set to a different value than the baremetal hosts see?","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"b412fd87fb38f0ce15f18c6df0e4c11fdee59eab","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3ea9a0e2_d5087e59","in_reply_to":"f4d7209b_adbed752","updated":"2025-05-20 20:50:46.000000000","message":"lemme check","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"88e2e332078bfd7d6c5d48eeb24344a1bbac9d22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"b99785a8_7246b5a5","updated":"2025-05-17 00:31:41.000000000","message":"Okay, now everything should pass except upgrade jobs because of previous branch installed bootstrap ..which is bad ...","commit_id":"9c5c5278c2b8403fb1febffed38239c9ed2f94ac"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"43ded8a5bb0f02fba3b5ba121c6794542539d225","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"4821c4b7_eb48cfa6","updated":"2025-05-17 02:09:58.000000000","message":"cool, as expected","commit_id":"9c5c5278c2b8403fb1febffed38239c9ed2f94ac"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"6d921ab02fba3b00cc4e49f3a06b620bb50fe235","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"2ee6307f_0bc4aeec","updated":"2025-05-16 23:32:28.000000000","message":"recheck new collection","commit_id":"9c5c5278c2b8403fb1febffed38239c9ed2f94ac"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"a589807a8332501531690ca26dc554341747b7da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"624692b8_04ab7ada","updated":"2025-05-16 22:35:21.000000000","message":"recheck new collection","commit_id":"9c5c5278c2b8403fb1febffed38239c9ed2f94ac"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"01642da41d5d8b6746678e4a256c3d344ab4725d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"744b4aff_01852335","updated":"2025-05-16 23:47:47.000000000","message":"recheck new collection","commit_id":"9c5c5278c2b8403fb1febffed38239c9ed2f94ac"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"26c440334848322ce8c88404516bc195e65b6189","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8a75ea39_b01bd639","updated":"2025-05-16 23:09:12.000000000","message":"recheck new collection","commit_id":"9c5c5278c2b8403fb1febffed38239c9ed2f94ac"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"07f876b41fbbb1a530c17f30ccec07d9a49fc393","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"b2c9a5e2_2547ce09","updated":"2025-05-17 07:54:38.000000000","message":"New deployments tested with venv - Debian, Ubuntu, non-venv - Rocky, centos","commit_id":"152abdfaf093646a48ea065c1323e322ee0dc3e8"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"f6ab9a6a611bfefad5be5bb4648ecd0dbc826ff3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"74140e8a_5f61f033","updated":"2025-05-17 07:53:35.000000000","message":"Ready for review - it\u0027s working as expected. I don\u0027t think a reno entry is needed, as there is no user-facing impact.","commit_id":"152abdfaf093646a48ea065c1323e322ee0dc3e8"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"93297c04e9502b62dbf0a57c163e20334ef4985d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"c4d44257_ac445924","updated":"2025-05-17 08:28:33.000000000","message":"recheck fixed collection","commit_id":"490502293a2fb9801dd80ce78270173218813765"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"cec94d830cf72a6dc68c4f998fbc41b208901d99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"0f08d450_eaa6c9a9","updated":"2025-05-17 09:20:22.000000000","message":"recheck fixed collections","commit_id":"490502293a2fb9801dd80ce78270173218813765"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"340ae0d0a705f21a4133ae32f4a33b82d50735aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3048feef_8595be13","updated":"2025-05-18 13:34:04.000000000","message":"recheck again","commit_id":"d45f2bddc6c918a09372ba2a98b4df03d26524ad"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"b510aec69f26913e997e1e539df54203f9d01ac6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"ea88a40f_ff59473b","updated":"2025-05-18 10:18:23.000000000","message":"recheck new collection, slightly reworked","commit_id":"d45f2bddc6c918a09372ba2a98b4df03d26524ad"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"865b40bc33d0bef319715fd649c879078987cd6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"a471f940_bb596b77","updated":"2025-05-20 09:35:22.000000000","message":"ready, can u review ?","commit_id":"9e1047a25d49e1debce30f5e23e8ca415ac37424"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"4e496b89aa881a6ad00d759c1a52c60114627ecc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"833b05da_51b8a64e","updated":"2025-05-20 19:37:49.000000000","message":"In case there\u0027s a question why I didn\u0027t use proper YAML with {% if %} blocks:\nansible_python_interpreter is evaluated very early, before Jinja2 templating is applied to group_vars.\nEven though Kolla Ansible supports Jinja2 rendering in group_vars, this specific variable is read too early,\nso using {% if %} would cause a YAML parsing error during inventory loading.\nThat\u0027s why it has to be written as a single inline {{ }} expression.","commit_id":"552850b6d29017120cef6ec7d6cb21f68f2cc56d"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"1e25ba765f5122fc040d1c442115af9568689979","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"b991a5f3_60ab1b69","in_reply_to":"0324e1f9_9a2c868b","updated":"2025-05-20 20:24:49.000000000","message":"it\u0027s not officially documented ..it\u0027s special variable which is used before Jinja is used ..otherwise you have syntax error.","commit_id":"552850b6d29017120cef6ec7d6cb21f68f2cc56d"},{"author":{"_account_id":35366,"name":"Michael Sherman","email":"shermanm@uchicago.edu","username":"shermanm"},"change_message_id":"deec2fbbada840188f671bf145e014925aef6961","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":25,"id":"0324e1f9_9a2c868b","in_reply_to":"833b05da_51b8a64e","updated":"2025-05-20 20:13:06.000000000","message":"That\u0027s a really good find, but I would suggest that it\u0027s enough of a special case that it deserves an inline comment. \nDo you happen to have a link to ansible docs about this?","commit_id":"552850b6d29017120cef6ec7d6cb21f68f2cc56d"}],"ansible/group_vars/all.yml":[{"author":{"_account_id":35366,"name":"Michael Sherman","email":"shermanm@uchicago.edu","username":"shermanm"},"change_message_id":"797fd472730ac0a5ce81ad4d9f3f90fadc292054","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"ansible_python_interpreter: \"{{ virtualenv ~ \u0027/bin/python\u0027 if virtualenv is defined and virtualenv | length \u003e 0 and virtualenv is not none else \u0027auto_silent\u0027 }}\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# The options in this file can be overridden in \u0027globals.yml\u0027"},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"82911401_a04c5540","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":161},"updated":"2025-05-16 17:59:55.000000000","message":"Very nice that this approach works now, I\u0027m curious what the minimum version of ansible is that allows templating this.","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":35366,"name":"Michael Sherman","email":"shermanm@uchicago.edu","username":"shermanm"},"change_message_id":"29d472ef1ce048268a5911f2446fcbeba85b9211","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"ansible_python_interpreter: \"{{ virtualenv ~ \u0027/bin/python\u0027 if virtualenv is defined and virtualenv | length \u003e 0 and virtualenv is not none else \u0027auto_silent\u0027 }}\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# The options in this file can be overridden in \u0027globals.yml\u0027"},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"95e3563b_f84f7467","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":161},"in_reply_to":"82911401_a04c5540","updated":"2025-05-16 18:13:46.000000000","message":"Done","commit_id":"6618ab76fac67e69a7a4f717a207e0cc5c2d28bd"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"ed0b1a8675310607433888da91fe3866b59c2c92","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"ansible_python_interpreter: \"{{ (virtualenv ~ \u0027/bin/python\u0027) if virtualenv is defined and virtualenv is not none and virtualenv | length \u003e 0 else (ansible_facts.python.executable if ansible_facts.python.executable is defined and ansible_facts.python.executable is not none and ansible_facts.python.executable | length \u003e 0 else \u0027auto_silent\u0027) }}\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# The options in this file can be overridden in \u0027globals.yml\u0027"},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"e57c4938_b5d25dc0","line":2,"updated":"2025-05-20 15:15:25.000000000","message":"Just thinking if we shouldn\u0027t look at properly namespacing variables, starting with renaming that to kolla_virtualenv, +1 until I get a good answer ;-)","commit_id":"823cb561b3a2cda9608333b51673373d07afa8d6"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"9f3364eff09f3ff56bf8073c75bc77cc3384de7b","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"ansible_python_interpreter: \"{{ (virtualenv ~ \u0027/bin/python\u0027) if virtualenv is defined and virtualenv is not none and virtualenv | length \u003e 0 else (ansible_facts.python.executable if ansible_facts.python.executable is defined and ansible_facts.python.executable is not none and ansible_facts.python.executable | length \u003e 0 else \u0027auto_silent\u0027) }}\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# The options in this file can be overridden in \u0027globals.yml\u0027"},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"4504d6e7_0c79e1ff","line":2,"updated":"2025-05-20 17:54:38.000000000","message":"Opening another thread here - that long blob is unreadable - can we switch that to multiline?","commit_id":"823cb561b3a2cda9608333b51673373d07afa8d6"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"c5d562243cf014dad9b5f708269bc87f5cc95ff0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"ansible_python_interpreter: \"{{ (virtualenv ~ \u0027/bin/python\u0027) if virtualenv is defined and virtualenv is not none and virtualenv | length \u003e 0 else (ansible_facts.python.executable if ansible_facts.python.executable is defined and ansible_facts.python.executable is not none and ansible_facts.python.executable | length \u003e 0 else \u0027auto_silent\u0027) }}\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# The options in this file can be overridden in \u0027globals.yml\u0027"},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"b05574f0_d02caa92","line":2,"in_reply_to":"4504d6e7_0c79e1ff","updated":"2025-05-20 18:50:54.000000000","message":"Yeah, I can switch to multiline.","commit_id":"823cb561b3a2cda9608333b51673373d07afa8d6"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"538ba73eff21d51b72010798d7038010a26431b3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"ansible_python_interpreter: \"{{ (virtualenv ~ \u0027/bin/python\u0027) if virtualenv is defined and virtualenv is not none and virtualenv | length \u003e 0 else (ansible_facts.python.executable if ansible_facts.python.executable is defined and ansible_facts.python.executable is not none and ansible_facts.python.executable | length \u003e 0 else \u0027auto_silent\u0027) }}\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# The options in this file can be overridden in \u0027globals.yml\u0027"},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"e8544bb6_581d1501","line":2,"in_reply_to":"b05574f0_d02caa92","updated":"2025-05-20 19:08:02.000000000","message":"Done","commit_id":"823cb561b3a2cda9608333b51673373d07afa8d6"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"8b7d8a3eee3078ab56dd4e1825dafaa908e0878d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"ansible_python_interpreter: \"{{ (virtualenv ~ \u0027/bin/python\u0027) if virtualenv is defined and virtualenv is not none and virtualenv | length \u003e 0 else (ansible_facts.python.executable if ansible_facts.python.executable is defined and ansible_facts.python.executable is not none and ansible_facts.python.executable | length \u003e 0 else \u0027auto_silent\u0027) }}\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# The options in this file can be overridden in \u0027globals.yml\u0027"},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"a41789f4_ecf2fdc4","line":2,"in_reply_to":"d1a1b71b_1becd6a9","updated":"2025-05-20 17:53:36.000000000","message":"It\u0027s been wrong from the beginning, but yes, changing it is not trivial. Let\u0027s leave it for now.","commit_id":"823cb561b3a2cda9608333b51673373d07afa8d6"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"5440fff977feac501139b7d9dc7d682b80677a05","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"ansible_python_interpreter: \"{{ (virtualenv ~ \u0027/bin/python\u0027) if virtualenv is defined and virtualenv is not none and virtualenv | length \u003e 0 else (ansible_facts.python.executable if ansible_facts.python.executable is defined and ansible_facts.python.executable is not none and ansible_facts.python.executable | length \u003e 0 else \u0027auto_silent\u0027) }}\""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# The options in this file can be overridden in \u0027globals.yml\u0027"},{"line_number":5,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":24,"id":"d1a1b71b_1becd6a9","line":2,"in_reply_to":"e57c4938_b5d25dc0","updated":"2025-05-20 17:39:58.000000000","message":"That\u0027s bold, and honestly, I broke out in a cold sweat just reading it. I understand your attention to detail, but why would you do this on a whim? The virtualenv variable is defined in ansible-collections-kolla:\nhttps://github.com/openstack/ansible-collection-kolla/blob/c08ed6c646e35fd529c98edaa97972c3a1a11faf/roles/docker_sdk/defaults/main.yml#L48-L50\nThat means if you wanted to start the long process of renaming this variable, you\u0027d have to go through the pain of updating ansible-collections-kolla master, then the stable branches, and then through all the Zuul fails and patches as intermediate steps like is_upgrade to fix it, and only then would it be done - and you\u0027d ask yourself: was this really necessary?\n\nIn other words, I see no reason to change it if it\u0027s been part of Kolla for a long time, it\u0027s in the documentation, and users might already be using it in many places. So why would you do it ?\n\nMarking as resolved.","commit_id":"823cb561b3a2cda9608333b51673373d07afa8d6"}]}
