)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"6971188b2da7223875185018906e33eed74c21ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"13677011_bbbf0f7b","updated":"2025-07-22 23:14:27.000000000","message":"For this case I would rather rely on the node\u0027s annotations/labels. This looks more natural have such node/UUID mapping directly at the node\u0027s level, not in values.\n\nYou can annotate nodes\n\n```\nkubectl annotate node node-1 \"openstack-helm/compute_id\u003d$(uuidgen)\"\n```\n\nThen export NODENAME env variable to the compute init container\n\n```\n            - name: NODENAME\n              valueFrom:\n                fieldRef:\n                  fieldPath: spec.nodeName\n```\nand then in the init script we can do this\n\n```\nUUID\u003d$(kubectl get node \"$NODENAME\" -o \"jsonpath\u003d{.metadata.annotations.openstack-helm/compute_id}\")\nif [ -n $UUID ]; then\n  echo $UUID \u003e /etc/nova/compute_id\nfi\n```","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":37308,"name":"Joao Fracarolli","display_name":"Joao Fracarolli","email":"Joao.VicentiniFracarolli@windriver.com","username":"jvicenti"},"change_message_id":"1a70894adb57520b2db454117f7b477bc427b70c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b78ba850_db1df042","in_reply_to":"13677011_bbbf0f7b","updated":"2025-07-23 15:07:35.000000000","message":"Thanks for the suggestion, Vladimir. It\u0027s indeed better to use the node annotations, it makes more sense. I just think that using kubectl in the init script will only work if we have kubectl in the container\u0027s image, right?","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"04d1cd6383abf1386292524ad1a958714ab19134","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"910d935f_88335fd5","in_reply_to":"15ad9fbf_ae9ec103","updated":"2025-08-06 10:20:46.000000000","message":"what is the use case to provide a pre-provisioned uuid there? this may be a dead code actually.","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":37308,"name":"Joao Fracarolli","display_name":"Joao Fracarolli","email":"Joao.VicentiniFracarolli@windriver.com","username":"jvicenti"},"change_message_id":"40f328fb0957e8043a0ed765565c03993e9a2d89","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e6fc071a_45409a47","in_reply_to":"2c2743a2_f09d1eb1","updated":"2025-07-31 14:29:37.000000000","message":"Nice! I\u0027ll try it and update here as soon as I\u0027m able\nThanks!","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"1ff8aafa8c380238005da8f9347393ec3e9e2d89","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7fd13197_55d2abb5","in_reply_to":"7508a818_d0ec8919","updated":"2025-08-06 15:32:41.000000000","message":"I meant the code we may add here may be actually dead, as this 99% of cases will just use generated uuids. I\u0027m trying to imaging what is the real use-case here?","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":37308,"name":"Joao Fracarolli","display_name":"Joao Fracarolli","email":"Joao.VicentiniFracarolli@windriver.com","username":"jvicenti"},"change_message_id":"1a17f464cc586e7de90a566aeb266816a511df58","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"abf4e099_6c4d0953","in_reply_to":"7fd13197_55d2abb5","updated":"2025-08-06 17:14:25.000000000","message":"In StarlingX-Openstack case, for example, it\u0027s important to have control of the UUID to ensure lifecycle operations in the compute-nodes. That\u0027s one case I know for sure, but maybe there are others that work in a similar fashion.","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":37308,"name":"Joao Fracarolli","display_name":"Joao Fracarolli","email":"Joao.VicentiniFracarolli@windriver.com","username":"jvicenti"},"change_message_id":"1aa48c75e29190c963be3c6ce3ff59353ce171b1","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7508a818_d0ec8919","in_reply_to":"910d935f_88335fd5","updated":"2025-08-06 12:55:45.000000000","message":"As far as I know, the way Nova works today is: it first try to read the UUID from the file; if the file is not found, it generates a new UUID. We\u0027re just adding the choice to provide the UUID externally, as mentioned in [1], section \"Deployment provisioning of the node identity\". Do you know if there is any mention in the release notes that this is dead code or deprecated? Maybe I missed it.\nThanks!\n\n[1] https://docs.openstack.org/nova/2025.1/admin/compute-node-identification.html","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"aab071159cbf0bd5fe25d286a5ef867c5be00f7b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ce4c474b_ad4313a3","in_reply_to":"abf4e099_6c4d0953","updated":"2025-08-07 06:33:11.000000000","message":"I see thanks, looks reasonable.\n\n@kozhukalov@gmail.com regarding keeping this info in the node labels, there are couple of cons:\n- simultenious pod restarts will generate more load on k8s api\n- unclear how to track label changes and sync them.\nHaving mapping in values looks more preffarable IMO, we just need to figure out with the data structure.","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"fd7da531628e40e28e38b858baccd47680edd5a9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2c2743a2_f09d1eb1","in_reply_to":"b78ba850_db1df042","updated":"2025-07-30 20:21:14.000000000","message":"Yes, see for example [1] and [2]. If you don\u0027t want to install kubectl to the nova image, then you can use a separate init container with [2] image which only gets the node annotation and saves in to some file to later read it. This is basically what we do in ovn controller daemonset.\n\n[1] https://opendev.org/openstack/openstack-helm/src/branch/master/ovn/templates/daemonset-controller.yaml#L63-L78\n[2] https://opendev.org/openstack/openstack-helm/src/branch/master/ovn/values.yaml#L27","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":37308,"name":"Joao Fracarolli","display_name":"Joao Fracarolli","email":"Joao.VicentiniFracarolli@windriver.com","username":"jvicenti"},"change_message_id":"18be243cd0de05c0f008109f0be777abf63d4c5a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"80fb8a20_80d37e36","in_reply_to":"ce4c474b_ad4313a3","updated":"2025-09-26 12:25:57.000000000","message":"Acknowledged","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6505995e382dd75371fb3aae516b5568f6380fe7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ecaa4833_5c0a9384","in_reply_to":"e6fc071a_45409a47","updated":"2025-08-04 23:01:08.000000000","message":"do we really need to have a way to set specific uuid for the node via helm chart values or via kubernetes node labels? according to the spec nova will automatically populate state_path/compute_id file if its not present during upgrade.","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":37308,"name":"Joao Fracarolli","display_name":"Joao Fracarolli","email":"Joao.VicentiniFracarolli@windriver.com","username":"jvicenti"},"change_message_id":"8a01df44bd569ea2133ed9bc24b065769918a3e2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"15ad9fbf_ae9ec103","in_reply_to":"ecaa4833_5c0a9384","updated":"2025-08-05 12:56:57.000000000","message":"Hello Vasyl. You\u0027re right, Nova creates an UUID by default if the file is not found and this will still be the default behaviour after this change. The idea here is to add support to the other way to configure compute nodes\u0027 UUID that is mentioned in the documentation, for specific cases where this may be necessary.","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"}],"nova/values.yaml":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"cfa8ea0d8fa0807790554d0a3ff0d1819b68bf6b","unresolved":true,"context_lines":[{"line_number":2676,"context_line":""},{"line_number":2677,"context_line":"manifests:"},{"line_number":2678,"context_line":"  certificates: false"},{"line_number":2679,"context_line":"  compute_uuid_self_provisioning: true"},{"line_number":2680,"context_line":"  configmap_bin: true"},{"line_number":2681,"context_line":"  configmap_etc: true"},{"line_number":2682,"context_line":"  cron_job_cell_setup: true"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"b7c20d80_477b239e","line":2679,"updated":"2025-09-25 19:19:01.000000000","message":"Mostly this section is used for enabling/disabling manifests, but certificates is also rather a mode switch unrelated to a particular manifest. LGTM.","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"},{"author":{"_account_id":37308,"name":"Joao Fracarolli","display_name":"Joao Fracarolli","email":"Joao.VicentiniFracarolli@windriver.com","username":"jvicenti"},"change_message_id":"18be243cd0de05c0f008109f0be777abf63d4c5a","unresolved":false,"context_lines":[{"line_number":2676,"context_line":""},{"line_number":2677,"context_line":"manifests:"},{"line_number":2678,"context_line":"  certificates: false"},{"line_number":2679,"context_line":"  compute_uuid_self_provisioning: true"},{"line_number":2680,"context_line":"  configmap_bin: true"},{"line_number":2681,"context_line":"  configmap_etc: true"},{"line_number":2682,"context_line":"  cron_job_cell_setup: true"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"42b84b3f_aacca2dd","line":2679,"in_reply_to":"b7c20d80_477b239e","updated":"2025-09-26 12:25:57.000000000","message":"Acknowledged","commit_id":"0a6edfa4493161c671075bfac9cde8fa6fffd6e8"}]}
