)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"2a437ccb65877d0df5d039da4a5f54fbc4238170","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"06a8db6e_8263e8ad","updated":"2025-04-30 09:37:52.000000000","message":"-1 for visibility","commit_id":"fc10e704bc18bdb377db6d17cce075fbd324c91f"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"d3f04e846b27fb444434a9a878bea82855ac753e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d28fcb32_4277807b","updated":"2025-05-14 23:03:39.000000000","message":"@dale@catalystcloud.nz there\u0027s also a similar change at Icfd485f877d66213400fba7209da2719eefdae37, can you take a look?","commit_id":"fc10e704bc18bdb377db6d17cce075fbd324c91f"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"f7a60accff96bfd94c304f59a329b916eaa67fc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"56f9d488_86aa94c3","in_reply_to":"6dcc4dcf_d3811c24","updated":"2025-06-17 01:49:58.000000000","message":"Included changes from referenced patchset and added co-author line","commit_id":"fc10e704bc18bdb377db6d17cce075fbd324c91f"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"8feda814861a4187ce351dcf7a7b79174a171d3e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6dcc4dcf_d3811c24","in_reply_to":"d28fcb32_4277807b","updated":"2025-05-14 23:58:42.000000000","message":"Thank you! I hadn\u0027t noticed that patchset.\n\nI will review there - it\u0027s the same functionality.","commit_id":"fc10e704bc18bdb377db6d17cce075fbd324c91f"},{"author":{"_account_id":32657,"name":"Piotr Parczewski","email":"piotr@stackhpc.com","username":"piotrp"},"change_message_id":"0ee916914254093c824c328f98d5f23d0f66283a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c6a15c64_aa9f8e6c","updated":"2025-06-23 15:54:57.000000000","message":"Appreciate your effort on this","commit_id":"adb953a035712daa634df22e9b22adc0d3e32401"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"4cf7c7400948da4050f82ee9146db792a5f5d796","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3a6ef83f_c4efda01","updated":"2025-06-24 03:51:08.000000000","message":"Thanks!","commit_id":"95c627efbf17803b3879c35ffb60f3b0c4ba1bbf"},{"author":{"_account_id":32657,"name":"Piotr Parczewski","email":"piotr@stackhpc.com","username":"piotrp"},"change_message_id":"e861fc5bcfdecc8bd59a0918f75020c5996032bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fe720cdc_454dff6d","updated":"2025-07-28 07:27:21.000000000","message":"I\u0027ve proposed a release here: https://review.opendev.org/c/openstack/releases/+/955719","commit_id":"7a4a5069b4b62210ed5f5d858b4a5998362576db"}],"magnum_capi_helm/driver.py":[{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"2a437ccb65877d0df5d039da4a5f54fbc4238170","unresolved":true,"context_lines":[{"line_number":853,"context_line":"            \"etcd\": self._get_etcd_config(cluster),"},{"line_number":854,"context_line":"            \"apiServer\": {"},{"line_number":855,"context_line":"                \"enableLoadBalancer\": True,"},{"line_number":856,"context_line":"                \"associateFloatingIP\": self._get_apilb_fip_enabled(cluster),"},{"line_number":857,"context_line":"                \"loadBalancerProvider\": self._get_octavia_provider(cluster),"},{"line_number":858,"context_line":"            },"},{"line_number":859,"context_line":"            \"clusterNetworking\": {"}],"source_content_type":"text/x-python","patch_set":1,"id":"a1693c2f_ed64fb9d","line":856,"range":{"start_line":856,"start_character":39,"end_line":856,"end_character":76},"updated":"2025-04-30 09:37:52.000000000","message":"why do we not call `self._get_label_bool()` directly?","commit_id":"fc10e704bc18bdb377db6d17cce075fbd324c91f"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"dbcad709a6bb420e9af13bd08bf89e026f92b137","unresolved":false,"context_lines":[{"line_number":853,"context_line":"            \"etcd\": self._get_etcd_config(cluster),"},{"line_number":854,"context_line":"            \"apiServer\": {"},{"line_number":855,"context_line":"                \"enableLoadBalancer\": True,"},{"line_number":856,"context_line":"                \"associateFloatingIP\": self._get_apilb_fip_enabled(cluster),"},{"line_number":857,"context_line":"                \"loadBalancerProvider\": self._get_octavia_provider(cluster),"},{"line_number":858,"context_line":"            },"},{"line_number":859,"context_line":"            \"clusterNetworking\": {"}],"source_content_type":"text/x-python","patch_set":1,"id":"f806adfa_203a7aca","line":856,"range":{"start_line":856,"start_character":39,"end_line":856,"end_character":76},"in_reply_to":"7061d299_fe3c64ea","updated":"2025-06-23 23:28:57.000000000","message":"Done","commit_id":"fc10e704bc18bdb377db6d17cce075fbd324c91f"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"42543480527b2efcb5e186426b9fcd2a9bd82ca3","unresolved":true,"context_lines":[{"line_number":853,"context_line":"            \"etcd\": self._get_etcd_config(cluster),"},{"line_number":854,"context_line":"            \"apiServer\": {"},{"line_number":855,"context_line":"                \"enableLoadBalancer\": True,"},{"line_number":856,"context_line":"                \"associateFloatingIP\": self._get_apilb_fip_enabled(cluster),"},{"line_number":857,"context_line":"                \"loadBalancerProvider\": self._get_octavia_provider(cluster),"},{"line_number":858,"context_line":"            },"},{"line_number":859,"context_line":"            \"clusterNetworking\": {"}],"source_content_type":"text/x-python","patch_set":1,"id":"7061d299_fe3c64ea","line":856,"range":{"start_line":856,"start_character":39,"end_line":856,"end_character":76},"in_reply_to":"a1693c2f_ed64fb9d","updated":"2025-06-17 01:50:48.000000000","message":"Now we default to cluster template `floating_ip_enabled`, so better for that logic to live in a function.","commit_id":"fc10e704bc18bdb377db6d17cce075fbd324c91f"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"80b7bd43e4091763e9db48a19e0231eafe3b0ee0","unresolved":true,"context_lines":[{"line_number":745,"context_line":""},{"line_number":746,"context_line":"    def _get_apilb_fip_enabled(self, cluster):"},{"line_number":747,"context_line":"        label_result \u003d self._get_label_bool("},{"line_number":748,"context_line":"            cluster, \"master_lb_floating_ip_enabled\", None"},{"line_number":749,"context_line":"        )"},{"line_number":750,"context_line":"        if label_result is not None:"},{"line_number":751,"context_line":"            return label_result"}],"source_content_type":"text/x-python","patch_set":2,"id":"aa86bcba_b69f78f8","line":748,"updated":"2025-06-23 16:07:48.000000000","message":"Can\u0027t we just use cluster.cluster_template.floating_ip_enabled instead of None?","commit_id":"adb953a035712daa634df22e9b22adc0d3e32401"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"91abdc9d8bb673aae9d2b070b4b091ff67e3729f","unresolved":false,"context_lines":[{"line_number":745,"context_line":""},{"line_number":746,"context_line":"    def _get_apilb_fip_enabled(self, cluster):"},{"line_number":747,"context_line":"        label_result \u003d self._get_label_bool("},{"line_number":748,"context_line":"            cluster, \"master_lb_floating_ip_enabled\", None"},{"line_number":749,"context_line":"        )"},{"line_number":750,"context_line":"        if label_result is not None:"},{"line_number":751,"context_line":"            return label_result"}],"source_content_type":"text/x-python","patch_set":2,"id":"550f35fe_1dbae40c","line":748,"in_reply_to":"aa86bcba_b69f78f8","updated":"2025-06-23 21:21:40.000000000","message":"Oh, yes we can! Thanks - I made a wrong assumption about how boolean False and default was treated.\n\nTest cases pass with your suggestion and that also allows us to remove this function.","commit_id":"adb953a035712daa634df22e9b22adc0d3e32401"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"4fa89c5c17b2ccd7bd6057a0b4111d6fad40055e","unresolved":true,"context_lines":[{"line_number":853,"context_line":"                \"associateFloatingIP\": self._get_label_bool("},{"line_number":854,"context_line":"                    cluster,"},{"line_number":855,"context_line":"                    \"master_lb_floating_ip_enabled\","},{"line_number":856,"context_line":"                    cluster.cluster_template.floating_ip_enabled,"},{"line_number":857,"context_line":"                ),"},{"line_number":858,"context_line":"                \"enableLoadBalancer\": True,"},{"line_number":859,"context_line":"                \"loadBalancerProvider\": self._get_octavia_provider(cluster),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7285d1c9_5b663462","line":856,"range":{"start_line":856,"start_character":45,"end_line":856,"end_character":64},"updated":"2025-06-24 09:05:15.000000000","message":"so I think this was originally used to mean - \"do I want FIP on my nodes\" which isn\u0027t supported in CAPI\nis there a reason why we are falling back to using that value?\nis it better to drop that, instead of having two ways of defining the same thing??","commit_id":"95c627efbf17803b3879c35ffb60f3b0c4ba1bbf"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"85fb5912307801821a741b5cb0bccf8cbb906097","unresolved":true,"context_lines":[{"line_number":853,"context_line":"                \"associateFloatingIP\": self._get_label_bool("},{"line_number":854,"context_line":"                    cluster,"},{"line_number":855,"context_line":"                    \"master_lb_floating_ip_enabled\","},{"line_number":856,"context_line":"                    cluster.cluster_template.floating_ip_enabled,"},{"line_number":857,"context_line":"                ),"},{"line_number":858,"context_line":"                \"enableLoadBalancer\": True,"},{"line_number":859,"context_line":"                \"loadBalancerProvider\": self._get_octavia_provider(cluster),"}],"source_content_type":"text/x-python","patch_set":3,"id":"ede2fce4_7b0b40dd","line":856,"range":{"start_line":856,"start_character":45,"end_line":856,"end_character":64},"in_reply_to":"7285d1c9_5b663462","updated":"2025-06-27 01:42:32.000000000","message":"Well, I\u0027m not sure - but I\u0027m open to changing this. It really would be cleaner to treat the cluster template field `floating_ip_enabled` as meaning purely \"FIP on nodes\".\n\nAnd then having only this `master_lb_floating_ip_enabled` label meaning `FIP on Kube API Loadbalancer`.\n\nThis differs from the patchset I was referencing [1], but I\u0027m okay with that if we agree on this more explicit meaning.\n\nRef:\n[1] https://review.opendev.org/c/openstack/magnum/+/641547","commit_id":"95c627efbf17803b3879c35ffb60f3b0c4ba1bbf"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"7ffb6937a7ab7a39d7341cba6ee8757f30622070","unresolved":true,"context_lines":[{"line_number":853,"context_line":"                \"associateFloatingIP\": self._get_label_bool("},{"line_number":854,"context_line":"                    cluster,"},{"line_number":855,"context_line":"                    \"master_lb_floating_ip_enabled\","},{"line_number":856,"context_line":"                    cluster.cluster_template.floating_ip_enabled,"},{"line_number":857,"context_line":"                ),"},{"line_number":858,"context_line":"                \"enableLoadBalancer\": True,"},{"line_number":859,"context_line":"                \"loadBalancerProvider\": self._get_octavia_provider(cluster),"}],"source_content_type":"text/x-python","patch_set":3,"id":"d21bc76d_e810094b","line":856,"range":{"start_line":856,"start_character":45,"end_line":856,"end_character":64},"in_reply_to":"85fe38b1_a2941d95","updated":"2025-07-21 05:00:47.000000000","message":"let\u0027s remove this fallback for now so as not to block the change. I agree with Michal that docs need work, many times we go spelunking for the original meaning.","commit_id":"95c627efbf17803b3879c35ffb60f3b0c4ba1bbf"},{"author":{"_account_id":14394,"name":"Dale Smith","email":"dale@catalystcloud.nz","username":"dalees"},"change_message_id":"ca9dd31d2a1f077358c87dae9b63a22fbf248fa4","unresolved":false,"context_lines":[{"line_number":853,"context_line":"                \"associateFloatingIP\": self._get_label_bool("},{"line_number":854,"context_line":"                    cluster,"},{"line_number":855,"context_line":"                    \"master_lb_floating_ip_enabled\","},{"line_number":856,"context_line":"                    cluster.cluster_template.floating_ip_enabled,"},{"line_number":857,"context_line":"                ),"},{"line_number":858,"context_line":"                \"enableLoadBalancer\": True,"},{"line_number":859,"context_line":"                \"loadBalancerProvider\": self._get_octavia_provider(cluster),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a5f4b42_af5743a2","line":856,"range":{"start_line":856,"start_character":45,"end_line":856,"end_character":64},"in_reply_to":"d21bc76d_e810094b","updated":"2025-07-21 21:26:11.000000000","message":"Done, default is now `True` which matches the Helm chart.","commit_id":"95c627efbf17803b3879c35ffb60f3b0c4ba1bbf"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"5f116e6d1d13a7a1f88c0da044902f98d520c167","unresolved":true,"context_lines":[{"line_number":853,"context_line":"                \"associateFloatingIP\": self._get_label_bool("},{"line_number":854,"context_line":"                    cluster,"},{"line_number":855,"context_line":"                    \"master_lb_floating_ip_enabled\","},{"line_number":856,"context_line":"                    cluster.cluster_template.floating_ip_enabled,"},{"line_number":857,"context_line":"                ),"},{"line_number":858,"context_line":"                \"enableLoadBalancer\": True,"},{"line_number":859,"context_line":"                \"loadBalancerProvider\": self._get_octavia_provider(cluster),"}],"source_content_type":"text/x-python","patch_set":3,"id":"85fe38b1_a2941d95","line":856,"range":{"start_line":856,"start_character":45,"end_line":856,"end_character":64},"in_reply_to":"ede2fce4_7b0b40dd","updated":"2025-07-03 10:53:29.000000000","message":"I\u0027d say having docs in the driver describing supported labels and what do they mean would make a lot of sense.","commit_id":"95c627efbf17803b3879c35ffb60f3b0c4ba1bbf"}]}
