)]}'
{"id":"openstack%2Foslo.messaging~994601","triplet_id":"openstack%2Foslo.messaging~master~I2317b496c4f1668b8828e91f3b417b9a097151f6","project":"openstack/oslo.messaging","branch":"master","topic":"bp/oslo-http-driver","hashtags":[],"change_id":"I2317b496c4f1668b8828e91f3b417b9a097151f6","subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","status":"ABANDONED","created":"2026-06-24 07:59:34.000000000","updated":"2026-07-17 05:44:04.000000000","total_comment_count":8,"unresolved_comment_count":0,"work_in_progress":true,"has_review_started":true,"meta_rev_id":"b5034d2cec140dc5ac9c7e6a9193d72f66ff8096","_number":994601,"virtual_id_number":994601,"owner":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-12 11:48:40.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"reviewer_updates":[{"updated":"2026-06-24 08:16:06.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"04517631d0c92c70f2cdab14bf12b78d025b5da3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-24 07:59:34.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"58b44d84e5bbe19260867f27ac543c601c66a969","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-24 08:00:29.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"90741a4c18ff0ca886dc65d047120c55b60b3926","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-24 08:16:06.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/64fb8c00afa048ac9b65c0995403ea86\n\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/ae876afde6834ce9a0c0518ce2c385cc : FAILURE in 12m 49s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"562bfd3ea53592dfef66f5a9d1801f92f013c3d7","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-24 17:49:33.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"43bfdbb9e5464641ba8b63f2a0cf6b80c25444ba","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-24 18:30:32.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/558bad168f674e1c893f57ab4c9e9e16\n\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/110dabbc8b844a20b3d105a982eaaf0e : FAILURE in 34m 06s","accounts_in_message":[],"_revision_number":2},{"id":"1c1507582c50b17abbed584222b63673e4e7888f","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-24 19:13:22.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"abdcd3f3f9983293bb3b258ae6f163e34c6ff61d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-24 19:33:06.000000000","message":"Patch Set 3: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/2e9a9d400fb54848aa50905703533326\n\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/de03d50fca72484da862c25dcc7f4c26 : FAILURE in 17m 59s","accounts_in_message":[],"_revision_number":3},{"id":"8f79fc8f9aa30523cce1aab21b1a25df29dfbe2d","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-24 23:03:46.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"29e920a00a513ab7a6a2b43794fb456b409ad9cd","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-24 23:24:08.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/a3d83580dbf54ec08f947e5bf9e19085\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e9365e53c34045d2bc894388a4ff80e1 : SUCCESS in 2m 40s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e319188bb8e149fb92a5406f1181f083 : SUCCESS in 3m 09s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/22fbb7396baf431c87c60fc63d92b9c9 : SUCCESS in 3m 36s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a8afe897e17f4da589b64cf340476d91 : SUCCESS in 6m 13s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/aa73f3d49fb241089b6c7bf5930a7f21 : FAILURE in 4m 25s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/44311fe1c08e44f395a2ebdfd5d2b253 : FAILURE in 17m 13s","accounts_in_message":[],"_revision_number":4},{"id":"64c28e2929701289579effc20a08adb24f0bc843","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-25 02:09:45.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"12183ca450bf486593ce2886082f214e0cc26f4f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-25 03:10:48.000000000","message":"Patch Set 5: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/f7d9ac135fd34605b87009c668f1463f\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/63226496055148e0941c3e8589dbb080 : SUCCESS in 3m 55s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/64359277c5c94541a316cc70b8cf2065 : SUCCESS in 5m 01s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/191033907299450abf94565a43471ab1 : SUCCESS in 5m 05s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/74cf05d7f1c041de9aaaf6fea3827c77 : SUCCESS in 7m 19s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/3eff2257a425457b901bdb3d3c3fa276 : FAILURE in 6m 14s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/fe9192fec6fd4d6186d6b824872b08ff : FAILURE in 24m 15s","accounts_in_message":[],"_revision_number":5},{"id":"d09bb191daa86ec3614c714e773436bff0084965","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-25 03:42:08.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"50a1d9a36ebdda4467f16c9442f0c67177fb3ce6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-25 03:57:33.000000000","message":"Patch Set 6: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/0dcdf00fc50940c998efe1b81cbd8598\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/47dba8c902cb45488fc8379b2ee52f32 : SUCCESS in 3m 23s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/bf797e5bb8014b66897d398c49423460 : SUCCESS in 3m 12s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/dc8c86117e4a47d9b2d68bf23eadc9d6 : SUCCESS in 3m 10s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b00ed1cd609044bb8ac9972a592ba86a : SUCCESS in 4m 42s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/0d09d90e1b19407b878aa077f60ca8dd : FAILURE in 4m 04s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/8df8be8768fb4a338d534e6a8b85c57a : FAILURE in 13m 22s","accounts_in_message":[],"_revision_number":6},{"id":"e21563f31fb97417034a462585954f72d7ba39cf","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-25 04:20:43.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"076748770a8171c3a888848ac95392caa40a1673","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-25 06:38:07.000000000","message":"Patch Set 7:\n\nrecheck","accounts_in_message":[],"_revision_number":7},{"id":"a77b8bb8b6e5d8566437466cf9097fa8895d04f8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-25 07:18:36.000000000","message":"Patch Set 7: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/3df02ea003e54c5a994bfc4b5b071eed\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/02190ffa82ec43cda2a6786456f131b6 : SUCCESS in 2m 13s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/9eba5b8be9e3443996ce483addc00efe : SUCCESS in 4m 02s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/00b8532666eb4153983778e517e37174 : SUCCESS in 4m 29s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/6b465114b73f4d6e8187a02b6f54b60c : SUCCESS in 8m 22s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/8b0435965ff84d739542d096639341a0 : FAILURE in 5m 50s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/1a3e7536bdf249fba3bb8552a2d26846 : FAILURE in 2h 55m 04s","accounts_in_message":[],"_revision_number":7},{"id":"f5b5cfc4d139478104480d9e7fe933027a1d11a4","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-25 09:09:08.000000000","message":"Uploaded patch set 8.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":8},{"id":"566660f0376635154da93102c95e7ce044840b85","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-25 12:10:10.000000000","message":"Patch Set 8: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/b717b6268cc948a9b06c3769cf9455f9\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3c3a7b22940943ce89c136d53bf8da28 : SUCCESS in 3m 23s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/b1427fd3e7a34432a68814f1f24ab20c : SUCCESS in 3m 51s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b7124c5cee0541898821346ef5e5b86f : SUCCESS in 7m 26s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/fea946242ab548fcb999f025638381b9 : SUCCESS in 8m 15s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/3dbff230eaa14099877ff705eab04123 : FAILURE in 8m 22s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/4d50066f988946b28c260f091edacf0a : FAILURE in 2h 55m 14s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/fdaaebc169964b8aa0f0a6987fa49cb7 : FAILURE in 46m 12s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"67b1bfabd3cd8d8e14b21e20c5feef471bfce06a","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-25 19:53:31.000000000","message":"Uploaded patch set 9.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":9},{"id":"218f8cfd1ac73a152870b3edca3be7bdf3f8b672","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-25 22:41:20.000000000","message":"Patch Set 9: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/f03adc2b5c774011800bad9014dd57d9\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2c993c007b8c4f958643430379d3dd37 : SUCCESS in 2m 49s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/acc2edf922154852a28bcc0c28b9a775 : SUCCESS in 4m 28s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/2f69eba99be641dcba869a8108942ae1 : SUCCESS in 4m 03s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c5a8751e65af40f0a95386a763228c09 : SUCCESS in 6m 58s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/a2dcd18ee9774e0f9c6295a8af4f726d : FAILURE in 7m 48s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/53171692ed934712970215c2f8b83410 : FAILURE in 1h 29m 54s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/b1e41ae4b4ea4a27971c9049d1e74389 : FAILURE in 2h 44m 49s (non-voting)","accounts_in_message":[],"_revision_number":9},{"id":"cfe093b6132b861be7a36f843ee93edffc7e3f8e","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 00:41:12.000000000","message":"Uploaded patch set 10.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":10},{"id":"2033b7e2a9176dc832222d5844c9e5e926b64aa2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 03:47:39.000000000","message":"Patch Set 10: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/e234b46ed1814be2baa10abb0b85713e\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a2d0cf71724045eebd2bacc049d6e25e : SUCCESS in 4m 46s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/499c05b8c1b54576a22a219b0a08cd59 : SUCCESS in 5m 31s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/013c2c7ef515493c82cedb9677a20c44 : SUCCESS in 7m 55s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/1e48b846d9c24ab9876e5f3926d05043 : SUCCESS in 6m 39s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/96cf6674990a4545928873c0067375c3 : FAILURE in 6m 03s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/689b2c80c36645c88cb34ad6584319d4 : FAILURE in 1h 00m 43s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/d3faae7851bd4ecd83a564a02ff6558b : FAILURE in 3h 03m 03s","accounts_in_message":[],"_revision_number":10},{"id":"db9205764fb6856674ff250299ab59fbb9aa1ac4","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 05:42:16.000000000","message":"Uploaded patch set 11: Patch Set 10 was rebased. Commit message was updated.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":11},{"id":"1876421d64f80a49662da386cf7341c998cb2a78","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 07:57:39.000000000","message":"Patch Set 11: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f159fb7eb79549a49b968b284d106c59\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5ba12bebd6f24f199bf8997974ed604f : SUCCESS in 3m 06s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/502fc985b2f44b9c8a87ce52dbccf09b : SUCCESS in 3m 48s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/41a6b6e0d6884852b63da2147a13d0f7 : SUCCESS in 3m 13s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/39932a0581be43788a09a867f366c5db : SUCCESS in 5m 58s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/7a26685bd838458cb1f411bc70463509 : FAILURE in 6m 05s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/5fde6d3292b64354ae4a3bde5a23be88 : SUCCESS in 2h 06m 25s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/028edf38c443451c92317d375c14cf41 : SUCCESS in 1h 45m 41s","accounts_in_message":[],"_revision_number":11},{"id":"52e402b76a7fc2ea2ed425a8338b444aeb7ac666","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 14:59:53.000000000","message":"Uploaded patch set 12.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":12},{"id":"6b2ed23722d2a1f11d4480cf6b437cb0364932ad","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 15:43:50.000000000","message":"Patch Set 12: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/f882b77e061043ecbe031294fbff5868\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b364c56cf3ba4ea3843c99cb1a7ab71f : SUCCESS in 4m 48s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/41945357c18b4c7395d5f7dc90858615 : SUCCESS in 4m 49s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6d8fd2d740954f3f9f24ce907e7c0695 : SUCCESS in 5m 26s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/9256b56e59c54721b377a4481829feaf : SUCCESS in 7m 02s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/8b02439fea4b4dea98225a5fb42f70dd : FAILURE in 7m 10s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/0e625fc9941a4f9aa4e20328fb480057 : FAILURE in 27m 07s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/f31245c8789b40fca77f47cccdd9ba9a : FAILURE in 26m 52s","accounts_in_message":[],"_revision_number":12},{"id":"2df214fbf0a4db8eaaf34ce175b75f35eb10077e","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 16:22:30.000000000","message":"Uploaded patch set 13.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":13},{"id":"e5adef7631148a97288c2e6b63fb5541af4c515a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 16:35:46.000000000","message":"Patch Set 13: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/3eaab62ba46f431c9f306937c339aae7\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c831916949fc4d21b8d354cb835217b2 : SUCCESS in 3m 44s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/12e3da6e43af4cad942771226f923e0c : SUCCESS in 4m 44s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/dfbd5b1899ff4989b269e137290f0276 : SUCCESS in 3m 41s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/85808ec2f9b448648483019a52aaa2dd : SUCCESS in 6m 44s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/d7cbc2ba2f5547d1be49b2dd8b294cb2 : FAILURE in 5m 53s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/34c63c7afafd4dfaa8129df103fb0700 : FAILURE in 7m 44s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/7c0324a06a004ab9b108967b40e25458 : FAILURE in 8m 36s","accounts_in_message":[],"_revision_number":13},{"id":"2d0afb06614b28d0876e8207e3626bb1237b2806","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 17:02:23.000000000","message":"Uploaded patch set 14.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":14},{"id":"c704bd28e402d1e56056bdeabe2d32a58e325b1b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 19:24:04.000000000","message":"Patch Set 14: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/55242232cb0a4589be7e956bc7cd17dd\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/47cee74fa37c4c17b41b3bb067ac1d9d : SUCCESS in 3m 31s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e6d44933cd0348d1abe1379af3fea62e : SUCCESS in 4m 22s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5b11b37c451f4fa2856788ce411def6e : SUCCESS in 5m 11s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/1720cec6115e43fd8b75c75ee0dd8778 : SUCCESS in 7m 36s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/7659b21aa6b54b568e1116da1acef82b : FAILURE in 9m 46s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/8fd6620af0244e63ae00ba1ae010ee0f : SUCCESS in 1h 56m 04s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/5fd3d8144a774af382336bba160abeb2 : FAILURE in 2h 12m 49s","accounts_in_message":[],"_revision_number":14},{"id":"a2a9151185efcf527457e4f0eeb82089ff1e76ca","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 21:11:29.000000000","message":"Uploaded patch set 15.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":15},{"id":"447eec3b8131ac8f2c4070f20bbc4a442ea27585","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 23:19:44.000000000","message":"Patch Set 15: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f5e33e027acc4077941ec4921b5687d3\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/50e389403e454e758d8032ef7cdb2e71 : SUCCESS in 6m 36s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d59a71062cff49b786a6c6a0585b398c : SUCCESS in 4m 58s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5269c6c0089f4d089823ccaeb9f53081 : SUCCESS in 3m 44s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7641a484f43e4cd687fa6c4c9224fe75 : SUCCESS in 8m 46s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/02df311ffb3a4a69be0f833206e6458f : FAILURE in 5m 43s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/19e90affcff34b8ab507b276bc681e8e : SUCCESS in 1h 59m 29s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/9dbc318b33134687a6cb07c07fee31d2 : SUCCESS in 1h 17m 06s","accounts_in_message":[],"_revision_number":15},{"id":"73ddd99d8cd0469e8e91f483f5808910d1ebafb9","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 23:22:34.000000000","message":"Uploaded patch set 16: Patch Set 15 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":16},{"id":"3b23572276f1c5dcb3d0d87911ffa07058aa0c43","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-27 01:29:21.000000000","message":"Patch Set 16: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5787dc31a2a740e5b996be1c42eac980\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/055a986cf274455e812822cd95d85f52 : SUCCESS in 2m 56s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/c0951a3696824402ab9fdc408cbb534e : SUCCESS in 3m 52s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/570c736c7b054e798716b185737d7fc5 : SUCCESS in 2m 57s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/aad40d60b74c4047ad5505660786de2c : SUCCESS in 4m 16s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/69b873ba91174148929d1f37385a29bf : FAILURE in 4m 44s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/9e4468d617454b319a1dd8b3068d209a : SUCCESS in 1h 59m 06s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/e9ea5d2d64b74c94828779a4ed63c296 : SUCCESS in 1h 51m 15s","accounts_in_message":[],"_revision_number":16},{"id":"a3b78df360b9d3a3bb093e448838e3d23a8dda7a","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-30 06:48:10.000000000","message":"Uploaded patch set 17.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":17},{"id":"95bf17bcaa9f23cad5d1f6a797c32d6658bbac37","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-01 06:32:10.000000000","message":"Patch Set 17:\n\nrecheck","accounts_in_message":[],"_revision_number":17},{"id":"bd7db78413997ef57ea0193b07f1aa34465ceebb","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-01 07:00:07.000000000","message":"Uploaded patch set 18.","accounts_in_message":[],"_revision_number":18},{"id":"16d2129ec3e970c0c1d4daa62569513b6585dfba","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-01 09:39:04.000000000","message":"Patch Set 18: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/b37673a8c2144ff28d6a014f18224b0d\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3786ec799c2746fcab80c2a4cff481c7 : FAILURE in 5m 01s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4eb153948b7247968d78372ce21a179c : SUCCESS in 4m 10s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/37c13d97d88a4097bee4367849eab9dc : SUCCESS in 5m 26s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/4969c0734d244758a37d6f0a86811294 : SUCCESS in 4m 46s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/98e4c33de5c14db3919081c72e86f163 : FAILURE in 6m 31s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/db8be0721f7b4496a30b48fa39cf0e5d : FAILURE in 1h 46m 48s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/dd6a95a6529c4be884ae30c27d3e0939 : FAILURE in 2h 34m 56s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/4366742525a54fbb9c91ce71bd12f128 : FAILURE in 32m 56s","accounts_in_message":[],"_revision_number":18},{"id":"86cd4befb0e1eca5c35ee99309110342d3ab54b2","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-08 05:40:11.000000000","message":"Uploaded patch set 19: Patch Set 18 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":19},{"id":"f32d355fd06e0ed6b305e52a48af69543697ec3a","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-08 06:19:47.000000000","message":"Uploaded patch set 20: Patch Set 19 was rebased.","accounts_in_message":[],"_revision_number":20},{"id":"a6431e264c70882045c97c5b15ceff9491f91bc4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-08 08:31:29.000000000","message":"Patch Set 20: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/e272c30e764c44d09fc247a54b555ebc\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b8f1d7d6ab9b4a17b365ddbcac98db95 : SUCCESS in 3m 05s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/6355366d8405467993a2c619dcf505c6 : SUCCESS in 4m 59s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/364387b4909b447cb38cb2dc6ced6b48 : SUCCESS in 5m 23s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/9b8136286a6c4d388fa8d1b9129def86 : SUCCESS in 10m 57s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/50a63fc8492f42228bbb7cba7e7c4a74 : FAILURE in 4m 48s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/1f5705d7b2914a4d81c621f66d1f07e8 : FAILURE in 1h 39m 56s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/06bbcf0124ba40a8b863838b3c13365e : FAILURE in 1h 58m 52s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/5967b1a934ab4d0a8761dd7f6c93478d : FAILURE in 18m 03s","accounts_in_message":[],"_revision_number":20},{"id":"252495a9cfeb5727a3fe700a76c617f22a39605e","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-08 09:17:51.000000000","message":"Uploaded patch set 21.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":21},{"id":"798165445edaa16ec315274d97bea560c8e09be2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-08 11:24:29.000000000","message":"Patch Set 21: Verified-1\n\n(2 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/3e15dc960fc341888568530ed7e3be63\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c62750389aed4fc29ecf50f571762db8 : FAILURE in 4m 43s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/8b1c790ed7114df6bc2bae0c63574388 : SUCCESS in 4m 49s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0b6550725e6d497d96c7158f1fe90e54 : SUCCESS in 4m 28s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a76b8767b8c2438bbdf085cec9a790c4 : SUCCESS in 6m 55s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/d8d472da8c054aeca48b587612db2af5 : FAILURE in 6m 48s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/9ea848a18759410bbc968f087442eb08 : FAILURE in 1h 28m 16s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/382dac705e13404eb88897697a27be6a : FAILURE in 1h 54m 54s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/38a8da5eae9944fe98b66318834d2c4a : FAILURE in 34m 48s","accounts_in_message":[],"_revision_number":21},{"id":"b39e5b97c627f7769abacd10d0a1f0359bc2f1e7","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-08 18:31:37.000000000","message":"Uploaded patch set 22: Patch Set 21 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":22},{"id":"daa748b479f859f24f66de7610e79f352e052ac5","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-08 18:52:57.000000000","message":"Uploaded patch set 23: New patch set was added with same tree, parent tree, and commit message as Patch Set 22.","accounts_in_message":[],"_revision_number":23},{"id":"d3524b30a59fa33fd69500c0693e3b117fb807c2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-08 21:15:45.000000000","message":"Patch Set 23: Verified-1\n\n(2 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/970717a5b44c48cb87c129ba25c3b11e\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6dda10ba18e74088bdefbeead5b1b82e : FAILURE in 4m 00s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e3e6be16fa7b41988cad34528a931de0 : SUCCESS in 4m 03s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/fc4dde3cdafd40b19d4c3ffa53142c76 : SUCCESS in 4m 45s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/581091b513db4f4688cfe0f0778f9d70 : SUCCESS in 7m 31s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/77039609e76f4a21851506a6f3374f45 : FAILURE in 6m 24s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/685978bcb90d498e9ae371b1085be6f8 : FAILURE in 2h 07m 18s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/1dd00ed727b94bd09ccc624f2a3e8019 : FAILURE in 1h 06m 35s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/5ef8b067f41b49d1af7a53fdee44b1b7 : FAILURE in 34m 56s","accounts_in_message":[],"_revision_number":23},{"id":"bf76af53d5287c2fbe5283e24f8af2e60fb54202","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-09 05:22:08.000000000","message":"Uploaded patch set 24: Patch Set 23 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":24},{"id":"23d4044d1e14fdbd3074d88808fe7fe7cb64bfbf","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-09 07:03:14.000000000","message":"Patch Set 24: Verified-1\n\n(2 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/9c7cf1cedeac45cfb6ae1d841451e548\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/36f659e43c2445cfae78c466656da677 : FAILURE in 2m 51s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/528ee58103274e3b839c58f34b478c3a : SUCCESS in 3m 05s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/204afc1c733a46c1a0dd575635e9fb81 : SUCCESS in 4m 59s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7a61ce714e3d4a19ac57d3c1782c6015 : SUCCESS in 5m 05s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/a02f388d7df844b0a68a15150bb7d70a : FAILURE in 4m 22s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/1b9aefbaf36e4fa898e899d58df529fc : FAILURE in 1h 30m 48s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/854f29c44dc440f2887760bad3e9fe40 : FAILURE in 1h 32m 42s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/94ba194c0fde4c0eb4286eae634a5a18 : FAILURE in 31m 26s","accounts_in_message":[],"_revision_number":24},{"id":"228a6bd3b8cc4168a4ca9c3e7bc9be466cfefe56","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-09 10:18:02.000000000","message":"Uploaded patch set 25: Patch Set 24 was rebased. Commit message was updated.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":25},{"id":"d762611e0a9055a446e9404c02de030ba6c7c404","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-09 10:47:33.000000000","message":"Uploaded patch set 26: Patch Set 25 was rebased.","accounts_in_message":[],"_revision_number":26},{"id":"b778ae4d38fd1352e94498d7b01060cd2b4443f8","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-09 10:50:51.000000000","message":"Patch Set 26:\n\nrecheck","accounts_in_message":[],"_revision_number":26},{"id":"95bd0e0b880d886fe9861e026f1a1af8adec6f20","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-09 12:51:55.000000000","message":"Patch Set 26: Verified-1\n\n(2 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/709e6189500f40f99171d98107ebd755\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/51d97144edfc4d358b4249512136ab44 : FAILURE in 5m 58s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f1b6867674c940d19345341113424a3a : FAILURE in 7m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4c2520e2e655447dadcdd18cf03f0db4 : SUCCESS in 6m 17s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/8099a8ce670b4c4083aa5ec55874698d : SUCCESS in 8m 57s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/c1f61d6949ea42bcb3baf721419e7c79 : FAILURE in 5m 52s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/633bf235a31641ffa400b811130527ee : FAILURE in 1h 44m 12s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/94e192d1b317474f99136ac888c0a42e : FAILURE in 1h 44m 34s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/59bf70b771f4436bb5a60e8fd863e08b : FAILURE in 24m 52s","accounts_in_message":[],"_revision_number":26},{"id":"879bc2cc6641c76513a49f87bf23e42c0c76d944","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-09 23:23:41.000000000","message":"Uploaded patch set 27.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":27},{"id":"3d049de65efa4bf70fd9cb9169dbd1ceef07f8be","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 01:48:51.000000000","message":"Patch Set 27:\n\nrecheck","accounts_in_message":[],"_revision_number":27},{"id":"c56ce4497c9e6fd4260ce00884689d47a8a0ef42","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 02:30:36.000000000","message":"Uploaded patch set 28: New patch set was added with same tree, parent tree, and commit message as Patch Set 27.","accounts_in_message":[],"_revision_number":28},{"id":"afcb7e5ae0820300b46c389b5d75867e1793d460","tag":"autogenerated:gerrit:setReadyForReview","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 02:53:23.000000000","message":"Set Ready For Review","accounts_in_message":[],"_revision_number":28},{"id":"abc0076e7e80c5ebff14f07546856bf54c80e022","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 02:53:47.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":28},{"id":"4cfb39393c9829f27808106406a6f07ee43bc005","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 03:13:55.000000000","message":"Patch Set 28:\n\nrecheck","accounts_in_message":[],"_revision_number":28},{"id":"618ad371bb8540f832e479fe922d0c1aa5dbcf8a","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 04:51:06.000000000","message":"Uploaded patch set 29.","accounts_in_message":[],"_revision_number":29},{"id":"3df2c99c555e4d696792430b5895a9a9c32c5ae2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 07:06:16.000000000","message":"Patch Set 29: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/1e2cf67bd12f465f90c2071814b27df9\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/78f78632cd8f42248b3ed20f4907451d : SUCCESS in 3m 49s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1c169182a78a4374abf62eb56d713152 : SUCCESS in 2m 45s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/08c15131b81e444285d7b88729d74b09 : SUCCESS in 3m 19s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/2d88935791a140dc906754574dd14a7f : SUCCESS in 6m 28s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/a1d7127d2055468ca6f666eae8792a9f : FAILURE in 6m 22s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/93033abd636449f2802aa94c69d07248 : FAILURE in 45m 28s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/f7ac9841b1dd4c7fb81d990b68c7ee8c : FAILURE in 1h 23m 30s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/82b218c6b7034152adacd04e26418045 : FAILURE in 2h 08m 13s","accounts_in_message":[],"_revision_number":29},{"id":"a6b427483d0de208907db4345507aec376f773cd","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 09:45:23.000000000","message":"Patch Set 29:\n\nrecheck","accounts_in_message":[],"_revision_number":29},{"id":"3725679fc836cba0b6a15d10799889b5bf9a6334","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 11:52:52.000000000","message":"Patch Set 29:\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/4a7c3c3c60704c27915f24998011b9dc\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/211771c0c0dd429e9fefcc68bf374545 : SUCCESS in 3m 49s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/3471783d766547f4b2ef861d5abb379b : SUCCESS in 4m 23s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/fecbd6c4200d4263a7ef4176b877389a : SUCCESS in 4m 41s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b908755b080d4fab8db746ab86a52a64 : SUCCESS in 6m 53s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/7a78a314f54a43a2979455b2953be0a6 : FAILURE in 6m 37s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/e2ca9fa05f1d4145842c81fab6afbc4e : FAILURE in 1h 19m 35s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/15a60c63865a4b6f9fac80bab9a2a662 : FAILURE in 1h 24m 14s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/0effbfd12cc44298a6f73174841b32c2 : FAILURE in 2h 01m 01s","accounts_in_message":[],"_revision_number":29},{"id":"dcdd2e7d0a1d3e4f5f5c1304c625368745e6bfbf","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 17:57:46.000000000","message":"Uploaded patch set 30: Patch Set 29 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":30},{"id":"14586ba76ac38185e060b7eef023ebb9d36f79d5","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 18:13:55.000000000","message":"Uploaded patch set 31: Patch Set 30 was rebased.","accounts_in_message":[],"_revision_number":31},{"id":"d488a4e6f8ad97f9199ad143eee22af98837d23d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 19:01:53.000000000","message":"Patch Set 31: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/a4d4218a14f04ab3b5d619928350d488\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c83df32ca1214f4fa49728ed40901a61 : SUCCESS in 3m 42s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ee730dd3ddc840a1801deaa97c5886d4 : SUCCESS in 4m 29s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/00f69c6ecd024a82a11be4291a5cd3fc : SUCCESS in 3m 11s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a20ba9edd49f49978ffee921faecf48b : SUCCESS in 6m 47s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/4da6dbca7e0c4abb847ab67f1e045f05 : FAILURE in 5m 47s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/f10d0e9b8c724255a0a57bb19f7c2df1 : FAILURE in 18m 00s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/0c88940a35a9418797d577ee7cfc7365 : FAILURE in 32m 03s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/ae25440d0e3c482590e35325aa25decd : FAILURE in 18m 07s","accounts_in_message":[],"_revision_number":31},{"id":"bc157f3a219192fd7f3e08c8f399a2d5aca8199d","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 20:28:49.000000000","message":"Uploaded patch set 32: Patch Set 31 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":32},{"id":"bbe923a61e352ce447971db0f126fbc0a54ebd6d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 22:36:25.000000000","message":"Patch Set 32: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/3852097021a145ecb84a32e66a7d33fe\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/18afd62727344b96a888761c5d48756d : SUCCESS in 2m 15s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1bdcafb9dfda4ce6b6f51326d8b02bd1 : SUCCESS in 4m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b7ab3f96ac55454080085c327fea5da1 : SUCCESS in 4m 04s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/610604c7abc4441aacbbfacdffa36b0c : SUCCESS in 8m 12s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/63e43938017647c08a9a073959693232 : FAILURE in 6m 13s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/08801cbe522e4586a57e6e9b4d03b537 : FAILURE in 1h 50m 37s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/bf96c6250e284c4ca14633652d3d59b5 : FAILURE in 1h 41m 52s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/6940d6f8b17c472099ce12c1816b22e8 : FAILURE in 2h 00m 14s","accounts_in_message":[],"_revision_number":32},{"id":"8fd7a84f0da8316fb15664d382904e61074335af","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-10 23:06:58.000000000","message":"Uploaded patch set 33: Patch Set 32 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":33},{"id":"6cb269a2601567c7312dd692755696a4544de560","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-11 00:59:39.000000000","message":"Patch Set 33: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/51fc568863a64a648d3a5c9f764dee2c\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b707f9032ccb4edab11325ec24b0f0a2 : SUCCESS in 2m 19s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/9b03bbbc6b2e4f0db1b271943cf0875c : SUCCESS in 3m 38s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3732ba1294c04842b7cdbbea04e7b4df : SUCCESS in 4m 15s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/360297f9297346048a08f4595447bb2a : SUCCESS in 8m 26s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/eb62e40812ed474ab432d1b280e5fab4 : FAILURE in 3m 40s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/7d403c8661234ecd902926ad5fb10363 : FAILURE in 1h 38m 42s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/665acb614f7e46a6bf0540fd5877de23 : FAILURE in 58m 21s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/2ba8a0c531364b73ba3796ea3fe51a6d : FAILURE in 1h 44m 26s","accounts_in_message":[],"_revision_number":33},{"id":"ca0a300ba45e97cd16377e306d256e8904a3acd3","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-11 01:26:56.000000000","message":"Uploaded patch set 34: Patch Set 33 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":34},{"id":"6fca7c78a3fcaf1e72431a25f7a7684114601ab9","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-11 02:35:08.000000000","message":"Uploaded patch set 35: Patch Set 34 was rebased.","accounts_in_message":[],"_revision_number":35},{"id":"95fcc5f740eaeb9a4c4a01a05eaea2ed2a71c00d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-11 05:25:31.000000000","message":"Patch Set 35: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/bb1c85c735db45eb8de4e2e673343cec\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a2ab1f7f86f744b58e3ce63eca231ab1 : SUCCESS in 3m 45s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/7982dab2d971412a8a9961b0a187ad34 : SUCCESS in 5m 01s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6d085f98e0a64fb5bd6a667c23eefb57 : SUCCESS in 5m 12s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/bc8605234fe540618b1c6cf00beb5ec8 : SUCCESS in 7m 15s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/f4e1c62f78b04e28bfab3caeca4b5f95 : FAILURE in 6m 43s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/67119099f3be4f20960780dba9bd7f05 : FAILURE in 1h 34m 01s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/08d9895a4b5442058c49df7875699803 : FAILURE in 2h 11m 57s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/9beb95fefb014b048d082c6f36647701 : FAILURE in 1h 41m 19s","accounts_in_message":[],"_revision_number":35},{"id":"cfd30b58e16746889b1ea291b4bc7987178659f9","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-11 08:11:42.000000000","message":"Uploaded patch set 36.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":36},{"id":"4bc519151993f52789957e780a212617e95c235c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-11 11:23:20.000000000","message":"Patch Set 36: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/6c9813576fe448958aef8dba70d6f75a\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ee9a1147902c4d6caf5612bb203c842f : SUCCESS in 3m 30s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ad821b1da60547ff9a9bf8c2e0fd8cd3 : SUCCESS in 4m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/9f24245493ed4c6b92ef46027148f56a : SUCCESS in 4m 55s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/645b2f0738004c56a09d23865909ef2f : SUCCESS in 6m 49s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/3f5d723a8e9049acbe2c49941eda24ed : FAILURE in 5m 02s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/8832aa72941c4921b275e7050cc6131b : FAILURE in 1h 01m 27s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/1becbc35e22a4d2fa6a1a842b3850b01 : TIMED_OUT in 3h 04m 54s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/e16206300cff4c9c8be77ecbf4e149e5 : SUCCESS in 1h 49m 26s","accounts_in_message":[],"_revision_number":36},{"id":"39279e37183e7f12a9652fc24ac3109ec2c3aecd","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-11 20:02:12.000000000","message":"Uploaded patch set 37.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":37},{"id":"8594e2515fba41ae51a6b34c1df85cf51dd5f723","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-11 23:14:41.000000000","message":"Patch Set 37: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/bb35800534914c5ab00be59f0afe8d81\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fd7eb52730ef499b892fc6741417c9d5 : SUCCESS in 3m 20s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/185b413d13474922b38d6d3bd0034b19 : SUCCESS in 3m 52s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/895f43dec3024b61b94592dd9651647c : SUCCESS in 5m 51s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/556db5af65934375bfbb5cf5d88285c7 : SUCCESS in 4m 57s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/4404733a1e5f4e0087b11bd66e35a000 : FAILURE in 7m 47s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/fdcc1edd9f2d4dc4989cf0bf344ad5e9 : FAILURE in 2h 17m 18s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/b9b6276333dc4c7eae822214f127db33 : FAILURE in 3h 04m 34s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/96c1da9e57824db6a0cbc9083b217c00 : SUCCESS in 1h 31m 45s","accounts_in_message":[],"_revision_number":37},{"id":"4fe55276fa4cbd89b7a432848f8647a040f07885","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-11 23:31:49.000000000","message":"Uploaded patch set 38.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":38},{"id":"7b1560c272a6910268fd0d80ab7ecd8a3c27e2db","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-11 23:48:57.000000000","message":"Patch Set 38: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/7af9d2206b8b4c8b88a2e7a57085849a\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/62e892ea4a5e47d7ba4206deb13cb89a : SUCCESS in 2m 35s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/21efdcc67b7a4d0c8e2700ebc0c35844 : SUCCESS in 3m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/97fd60b70fbc435f895d5846cf33d9e8 : SUCCESS in 2m 46s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d15f9287e8a048b49f2d9c3cf15e8250 : SUCCESS in 6m 40s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/532f1861ecfe4e9e889dc0b809045544 : FAILURE in 5m 56s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/94b47258575a4159b21c84a70a59e047 : FAILURE in 11m 20s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/87be66e76ecf4280befed1d63ea8f90a : FAILURE in 13m 10s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/fc1778a178dd4033ae63148b04c9cbf9 : FAILURE in 11m 18s","accounts_in_message":[],"_revision_number":38},{"id":"e63426f24054d3a079b13c5c230ea849f7b5a492","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-11 23:50:26.000000000","message":"Uploaded patch set 39.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":39},{"id":"69f400c393e1118bf68153cf647a7c7fb11b7c90","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-12 02:42:56.000000000","message":"Patch Set 39: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/5416acae21bc41acae6fe247ab1917d9\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e1d04bebeb3949d686dcad03878f63d3 : SUCCESS in 3m 17s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/cc862999558b49edbd382e3c1f0317b2 : SUCCESS in 5m 43s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/278e186133144742b0ce410b40d2f380 : SUCCESS in 4m 10s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/567c0b32bf1a4800ab5b5bbbe8ef75ac : SUCCESS in 6m 40s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/d88912f9072e4d51bb0e25a66dd4f0b9 : FAILURE in 5m 58s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/862c3b5213d04bacbd6ba0218760d525 : FAILURE in 2h 11m 21s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/f9e6dadda302489fa966a5bde11af5dc : FAILURE in 2h 46m 32s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/9b3ebcb400e74da19082d98be413782f : SUCCESS in 1h 39m 45s","accounts_in_message":[],"_revision_number":39},{"id":"a092377cb63ff3abbe3260386d2fbb2d85eb4eca","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-12 03:18:51.000000000","message":"Uploaded patch set 40.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":40},{"id":"c56d03c858cd523d3b7852c78a453f426a333403","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-12 05:06:54.000000000","message":"Patch Set 40: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/db7d6e038c4544a8855922d080e7faa7\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/787bdf91435645e8b3c9fdffb9902acb : SUCCESS in 3m 21s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4016a92bc77c4b4cb1783dc28cec4d59 : SUCCESS in 4m 27s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6b6949b49db94806b50d277e92c0a587 : SUCCESS in 10m 08s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f07ba093287a4dcd8b7c71c2ea34e3a4 : SUCCESS in 7m 17s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/6e4fde8cbd1b448abb709f9412cd39f2 : FAILURE in 8m 02s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/e6164c394e1541c58d8141ca0d6c56e9 : SUCCESS in 1h 05m 31s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/95c6ddc88ea44c3a9bd92ca3c9fd9cc0 : FAILURE in 1h 22m 01s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/ec866c90b7a342979c0f453fdf013f89 : SUCCESS in 1h 39m 59s","accounts_in_message":[],"_revision_number":40},{"id":"1f557e3c3b249337fc6354936b78536e9fe657b9","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-12 05:48:53.000000000","message":"Uploaded patch set 41: Patch Set 40 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":41},{"id":"d3212ba03d04b008eb08b43ad6ebb110220fe744","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-12 07:46:20.000000000","message":"Patch Set 41: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/a3ac7206b5fd4578b7c6ca0dc0d5ffdf\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5f902b1e832e4d11a00f54eac71bc82f : SUCCESS in 3m 16s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d0a5120ffb54457897f7ee781cbb3f0a : SUCCESS in 3m 56s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e817039c4a554041897d7f889718c575 : SUCCESS in 6m 19s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b2d100e47a374e6e85fa0451cfcdd558 : SUCCESS in 6m 42s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/6d43ae22c2304909b2059917705b2c2e : FAILURE in 8m 19s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/ccef8e8fb49041efaa3c7805398e525d : SUCCESS in 1h 49m 23s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/9afc5f79f29a4f7c9408c7c3b367f35e : FAILURE in 1h 00m 18s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/c314a3a18b9e4c3ab37f269fa6088412 : SUCCESS in 1h 31m 24s","accounts_in_message":[],"_revision_number":41},{"id":"bb69174606a1580ac1ca4d969bb080a98faeb4ce","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-12 09:23:40.000000000","message":"Uploaded patch set 42: Patch Set 41 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":42},{"id":"94e8f90c1a3603363dca539f294af18a37a024a3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-12 11:48:40.000000000","message":"Patch Set 42: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bebe3bf80c954a1588537d527349d446\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8860302f16d44bf89a60a03b92313a31 : SUCCESS in 3m 10s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/620f9f30170f48069348cfd7f993121c : SUCCESS in 3m 57s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/093ea895df0e442c8e01d933c9abd926 : SUCCESS in 4m 04s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/88c1f7903649481c9383e61497dd44a5 : SUCCESS in 8m 27s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/d4b656af0d9d47979a99a8b102f6a908 : FAILURE in 8m 03s (non-voting)\n- oslo.messaging-src-dsvm-full-kafka-k8s https://zuul.opendev.org/t/openstack/build/6ebafa6c66f147e8926bf7a260d29608 : SUCCESS in 1h 09m 25s\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet https://zuul.opendev.org/t/openstack/build/3fd192b671a344c8b36cb13e836dde9d : SUCCESS in 1h 56m 57s\n- oslo.messaging-src-dsvm-full-kafka-k8s-cheroot https://zuul.opendev.org/t/openstack/build/494f4064eeb04f89a24dcd1143b761a6 : SUCCESS in 2h 16m 50s","accounts_in_message":[],"_revision_number":42},{"id":"b5034d2cec140dc5ac9c7e6a9193d72f66ff8096","tag":"autogenerated:gerrit:abandon","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-17 05:44:04.000000000","message":"Abandoned\n\nAbandoning the WIP kafka-k8s PoC tempest gate from the original HTTP-RPC v1 chain. Real experimental CI coverage now lives in the tooz-based chains .zuul.yaml (tooz backend jobs + native-threads + direct-consul). No remaining change depends on this WIP commit.","accounts_in_message":[],"_revision_number":42}],"current_revision_number":42,"current_revision":"e481633fe63403a18e66c4f5b1c6d10fc877459f","revisions":{"c275cdf7590bbf2e68961a509d4c5c4b9bf54482":{"kind":"REWORK","_number":1,"created":"2026-06-24 07:59:34.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/1"}}},"commit":{"parents":[{"commit":"77a61b7489f147bfdebaa238669bb610df494f88","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/77a61b7489f147bfdebaa238669bb610df494f88"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:55:25.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: add devstack PoC and kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: add devstack PoC and kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and a non-voting tempest-full gate that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nThe new job oslo.messaging-src-dsvm-full-kafka-k8s stacks three pieces\non a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up. The job is non-voting.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/c275cdf7590bbf2e68961a509d4c5c4b9bf54482"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/c275cdf7590bbf2e68961a509d4c5c4b9bf54482"}]},"branch":"refs/heads/master"},"ad91603605f09a2e95f3786dc8e90d09f440d785":{"kind":"REWORK","_number":2,"created":"2026-06-24 17:49:33.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/2"}}},"commit":{"parents":[{"commit":"77a61b7489f147bfdebaa238669bb610df494f88","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/77a61b7489f147bfdebaa238669bb610df494f88"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 10:02:47.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: add devstack PoC and kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: add devstack PoC and kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and a non-voting tempest-full gate that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nThe new job oslo.messaging-src-dsvm-full-kafka-k8s stacks three pieces\non a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up. The job is non-voting.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/ad91603605f09a2e95f3786dc8e90d09f440d785"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/ad91603605f09a2e95f3786dc8e90d09f440d785"}]},"branch":"refs/heads/master"},"e0499539a4989fef9869efed7ec205aa749f7e84":{"kind":"REWORK","_number":3,"created":"2026-06-24 19:13:22.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/3"}}},"commit":{"parents":[{"commit":"77a61b7489f147bfdebaa238669bb610df494f88","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/77a61b7489f147bfdebaa238669bb610df494f88"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 18:58:10.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: add devstack PoC and kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: add devstack PoC and kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and a non-voting tempest-full gate that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nThe new job oslo.messaging-src-dsvm-full-kafka-k8s stacks three pieces\non a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up. The job is non-voting.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e0499539a4989fef9869efed7ec205aa749f7e84"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e0499539a4989fef9869efed7ec205aa749f7e84"}]},"branch":"refs/heads/master"},"e07b758cbcbdac7e6f0be63b33d1a282c2bde1f2":{"kind":"REWORK","_number":4,"created":"2026-06-24 23:03:46.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/4"}}},"commit":{"parents":[{"commit":"77a61b7489f147bfdebaa238669bb610df494f88","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/77a61b7489f147bfdebaa238669bb610df494f88"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 23:00:38.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and a non-voting tempest-full gate that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nThe new job oslo.messaging-src-dsvm-full-kafka-k8s stacks three pieces\non a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up. The job is non-voting.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e07b758cbcbdac7e6f0be63b33d1a282c2bde1f2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e07b758cbcbdac7e6f0be63b33d1a282c2bde1f2"}]},"branch":"refs/heads/master"},"4f6c20dcd8ac95c01444231fa41e73abec2f63fe":{"kind":"REWORK","_number":5,"created":"2026-06-25 02:09:45.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/5"}}},"commit":{"parents":[{"commit":"77a61b7489f147bfdebaa238669bb610df494f88","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/77a61b7489f147bfdebaa238669bb610df494f88"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-25 02:07:09.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and a non-voting tempest-full gate that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nThe new job oslo.messaging-src-dsvm-full-kafka-k8s stacks three pieces\non a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up. The job is non-voting.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/4f6c20dcd8ac95c01444231fa41e73abec2f63fe"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/4f6c20dcd8ac95c01444231fa41e73abec2f63fe"}]},"branch":"refs/heads/master"},"d682d32889ec302ee287442fdf4403b3f25e27c2":{"kind":"REWORK","_number":6,"created":"2026-06-25 03:42:08.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/6"}}},"commit":{"parents":[{"commit":"77a61b7489f147bfdebaa238669bb610df494f88","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/77a61b7489f147bfdebaa238669bb610df494f88"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-25 03:41:57.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and a non-voting tempest-full gate that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nThe new job oslo.messaging-src-dsvm-full-kafka-k8s stacks three pieces\non a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up. The job is non-voting.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d682d32889ec302ee287442fdf4403b3f25e27c2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d682d32889ec302ee287442fdf4403b3f25e27c2"}]},"branch":"refs/heads/master"},"7ac8ef7e4bbf8f59fe0d26a7cb85dc9d9c142c0f":{"kind":"REWORK","_number":7,"created":"2026-06-25 04:20:43.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/7"}}},"commit":{"parents":[{"commit":"77a61b7489f147bfdebaa238669bb610df494f88","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/77a61b7489f147bfdebaa238669bb610df494f88"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-25 04:19:52.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and a non-voting tempest-full gate that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nThe new job oslo.messaging-src-dsvm-full-kafka-k8s stacks three pieces\non a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up. The job is non-voting.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/7ac8ef7e4bbf8f59fe0d26a7cb85dc9d9c142c0f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/7ac8ef7e4bbf8f59fe0d26a7cb85dc9d9c142c0f"}]},"branch":"refs/heads/master"},"0aafc89ab496c9398ecd7ff697039bb8a3d0a56b":{"kind":"REWORK","_number":8,"created":"2026-06-25 09:09:08.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/8"}}},"commit":{"parents":[{"commit":"1540bdc754b3cf3d67c5c17bef25e63ff8a340b1","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/1540bdc754b3cf3d67c5c17bef25e63ff8a340b1"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-25 08:23:05.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (non-voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation of each listener\u0027s asyncio selector from\n  eventlet\u0027s green select.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/0aafc89ab496c9398ecd7ff697039bb8a3d0a56b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/0aafc89ab496c9398ecd7ff697039bb8a3d0a56b"}]},"branch":"refs/heads/master"},"38251ce60f12818e6146b27cd0d143b728f03c29":{"kind":"REWORK","_number":9,"created":"2026-06-25 19:53:31.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/9"}}},"commit":{"parents":[{"commit":"1540bdc754b3cf3d67c5c17bef25e63ff8a340b1","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/1540bdc754b3cf3d67c5c17bef25e63ff8a340b1"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-25 19:53:17.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (non-voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation of each listener\u0027s asyncio selector from\n  eventlet\u0027s green select.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/38251ce60f12818e6146b27cd0d143b728f03c29"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/38251ce60f12818e6146b27cd0d143b728f03c29"}]},"branch":"refs/heads/master"},"55cab776ae97b7ba9ab5762e51e8873f59d4b3b4":{"kind":"REWORK","_number":10,"created":"2026-06-26 00:41:12.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/10"}}},"commit":{"parents":[{"commit":"acde52aaac98e3152616503953a5e71be2dd8b7a","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/acde52aaac98e3152616503953a5e71be2dd8b7a"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 00:33:12.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (non-voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation of each listener\u0027s asyncio selector from\n  eventlet\u0027s green select.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/55cab776ae97b7ba9ab5762e51e8873f59d4b3b4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/55cab776ae97b7ba9ab5762e51e8873f59d4b3b4"}]},"branch":"refs/heads/master"},"b53ef37128eca4f298ce6c6d11731a9dafb46138":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":11,"created":"2026-06-26 05:42:16.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/11"}}},"commit":{"parents":[{"commit":"d69d099ad8844cbbe418c4b95bacb3bc5af190c5","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d69d099ad8844cbbe418c4b95bacb3bc5af190c5"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 05:39:01.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b53ef37128eca4f298ce6c6d11731a9dafb46138"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b53ef37128eca4f298ce6c6d11731a9dafb46138"}]},"branch":"refs/heads/master"},"e49c9094709ab6d338bdbe8d9f44a67dab9382e1":{"kind":"REWORK","_number":12,"created":"2026-06-26 14:59:53.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/12"}}},"commit":{"parents":[{"commit":"d69d099ad8844cbbe418c4b95bacb3bc5af190c5","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d69d099ad8844cbbe418c4b95bacb3bc5af190c5"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 14:56:33.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e49c9094709ab6d338bdbe8d9f44a67dab9382e1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e49c9094709ab6d338bdbe8d9f44a67dab9382e1"}]},"branch":"refs/heads/master"},"b676bb59968af2df75d2ef2a846f228f0bde9f91":{"kind":"REWORK","_number":13,"created":"2026-06-26 16:22:30.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/13"}}},"commit":{"parents":[{"commit":"d69d099ad8844cbbe418c4b95bacb3bc5af190c5","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d69d099ad8844cbbe418c4b95bacb3bc5af190c5"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 16:22:24.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b676bb59968af2df75d2ef2a846f228f0bde9f91"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/b676bb59968af2df75d2ef2a846f228f0bde9f91"}]},"branch":"refs/heads/master"},"3028b50ac2b3979bc62f62c85788216493427020":{"kind":"REWORK","_number":14,"created":"2026-06-26 17:02:23.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/14"}}},"commit":{"parents":[{"commit":"d69d099ad8844cbbe418c4b95bacb3bc5af190c5","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d69d099ad8844cbbe418c4b95bacb3bc5af190c5"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 17:02:15.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3028b50ac2b3979bc62f62c85788216493427020"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3028b50ac2b3979bc62f62c85788216493427020"}]},"branch":"refs/heads/master"},"6d984475d928413fb9a387271ec280ef889e8098":{"kind":"REWORK","_number":15,"created":"2026-06-26 21:11:29.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/15"}}},"commit":{"parents":[{"commit":"6f5382def7111e0991ceccf1807b39ef6ef6cf3a","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/6f5382def7111e0991ceccf1807b39ef6ef6cf3a"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 21:06:53.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/6d984475d928413fb9a387271ec280ef889e8098"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/6d984475d928413fb9a387271ec280ef889e8098"}]},"branch":"refs/heads/master"},"49f9341e172c76264468bc709f56e3cdc1c376cc":{"kind":"TRIVIAL_REBASE","_number":16,"created":"2026-06-26 23:22:34.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/16","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/16","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/16"}}},"commit":{"parents":[{"commit":"69f7cd7e5434176f00e4ad6034f61af87502d2e9","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/69f7cd7e5434176f00e4ad6034f61af87502d2e9"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 22:02:55.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/49f9341e172c76264468bc709f56e3cdc1c376cc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/49f9341e172c76264468bc709f56e3cdc1c376cc"}]},"branch":"refs/heads/master"},"ff98e677801599b277a17c7bf0065e3b8dc12416":{"kind":"REWORK","_number":17,"created":"2026-06-30 06:48:10.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/17","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/17","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/17 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/17 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/17 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/17"}}},"commit":{"parents":[{"commit":"133e8a8cd898cd34ccbef939171e56f4c6db1c88","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/133e8a8cd898cd34ccbef939171e56f4c6db1c88"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-30 06:39:47.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/ff98e677801599b277a17c7bf0065e3b8dc12416"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/ff98e677801599b277a17c7bf0065e3b8dc12416"}]},"branch":"refs/heads/master"},"41f1fe011bd77289cbc50b6610cf849ee68d62cb":{"kind":"REWORK","_number":18,"created":"2026-07-01 07:00:07.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/18","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/18","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/18 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/18 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/18 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/18"}}},"commit":{"parents":[{"commit":"c59d5200d6197de7de164361c5f11e7aa438aeb9","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/c59d5200d6197de7de164361c5f11e7aa438aeb9"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-01 06:58:12.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/41f1fe011bd77289cbc50b6610cf849ee68d62cb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/41f1fe011bd77289cbc50b6610cf849ee68d62cb"}]},"branch":"refs/heads/master"},"f3a3f8eaab0bf60b2a40ae7febdcac260f0a557e":{"kind":"TRIVIAL_REBASE","_number":19,"created":"2026-07-08 05:40:11.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/19","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/19","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/19 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/19 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/19 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/19"}}},"commit":{"parents":[{"commit":"2c80c4f593152f076e450cbd62b784abaf8bd59d","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/2c80c4f593152f076e450cbd62b784abaf8bd59d"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-08 05:39:51.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/f3a3f8eaab0bf60b2a40ae7febdcac260f0a557e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/f3a3f8eaab0bf60b2a40ae7febdcac260f0a557e"}]},"branch":"refs/heads/master"},"cc72f2541f5f68db36c284dfd267f618ee3966b3":{"kind":"TRIVIAL_REBASE","_number":20,"created":"2026-07-08 06:19:47.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/20","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/20","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/20 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/20 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/20 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/20"}}},"commit":{"parents":[{"commit":"d8a99d6a6663fb7d868175c6c9c9cc13b40f0ca8","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d8a99d6a6663fb7d868175c6c9c9cc13b40f0ca8"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-08 06:19:15.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/cc72f2541f5f68db36c284dfd267f618ee3966b3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/cc72f2541f5f68db36c284dfd267f618ee3966b3"}]},"branch":"refs/heads/master"},"18ae50df327d57a19c604543a12cf1b823d491da":{"kind":"REWORK","_number":21,"created":"2026-07-08 09:17:51.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/21","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/21","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/21 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/21 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/21 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/21"}}},"commit":{"parents":[{"commit":"ae2474e5eaa9aa6b6157e585fe93f83f20e9f15e","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/ae2474e5eaa9aa6b6157e585fe93f83f20e9f15e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-08 09:07:45.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/18ae50df327d57a19c604543a12cf1b823d491da"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/18ae50df327d57a19c604543a12cf1b823d491da"}]},"branch":"refs/heads/master"},"c60527976c8c2d299f55edd6f44e0f04554bf3c2":{"kind":"TRIVIAL_REBASE","_number":22,"created":"2026-07-08 18:31:37.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/22","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/22","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/22 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/22 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/22 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/22"}}},"commit":{"parents":[{"commit":"fc14dfd8a87788b2c236e2bebba408ee1d225739","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/fc14dfd8a87788b2c236e2bebba408ee1d225739"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-08 18:29:19.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/c60527976c8c2d299f55edd6f44e0f04554bf3c2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/c60527976c8c2d299f55edd6f44e0f04554bf3c2"}]},"branch":"refs/heads/master"},"e5b6308006f6097bf55c8e2cd100f4feff1075d3":{"kind":"NO_CHANGE","_number":23,"created":"2026-07-08 18:52:57.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/23","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/23","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/23 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/23 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/23 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/23"}}},"commit":{"parents":[{"commit":"ecc996d703844244ae3f75603531e1b557500409","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/ecc996d703844244ae3f75603531e1b557500409"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-08 18:47:40.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e5b6308006f6097bf55c8e2cd100f4feff1075d3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e5b6308006f6097bf55c8e2cd100f4feff1075d3"}]},"branch":"refs/heads/master"},"bf0396a2e7e4bb874d1c87ec554e2d4faf59e3da":{"kind":"TRIVIAL_REBASE","_number":24,"created":"2026-07-09 05:22:08.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/24","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/24","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/24 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/24 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/24 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/24"}}},"commit":{"parents":[{"commit":"7b7bf0370e58796b5ade6eeb8c2d311192e1975d","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/7b7bf0370e58796b5ade6eeb8c2d311192e1975d"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-09 05:01:20.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/bf0396a2e7e4bb874d1c87ec554e2d4faf59e3da"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/bf0396a2e7e4bb874d1c87ec554e2d4faf59e3da"}]},"branch":"refs/heads/master"},"c301d323affad20975613e5362212bcedaacdeb2":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":25,"created":"2026-07-09 10:18:02.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/25","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/25","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/25 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/25 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/25 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/25"}}},"commit":{"parents":[{"commit":"319635fa5fbff875ddcf94426ea7da12a378bf07","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/319635fa5fbff875ddcf94426ea7da12a378bf07"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-09 10:15:52.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/c301d323affad20975613e5362212bcedaacdeb2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/c301d323affad20975613e5362212bcedaacdeb2"}]},"branch":"refs/heads/master"},"e85aec06e5df09a23e40c0c55339a5b3ed07e8b8":{"kind":"TRIVIAL_REBASE","_number":26,"created":"2026-07-09 10:47:33.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/26","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/26","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/26 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/26 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/26 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/26"}}},"commit":{"parents":[{"commit":"06f342a10c26db4e89a563c25bcf51b3dfa59f6c","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/06f342a10c26db4e89a563c25bcf51b3dfa59f6c"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-09 10:46:48.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e85aec06e5df09a23e40c0c55339a5b3ed07e8b8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e85aec06e5df09a23e40c0c55339a5b3ed07e8b8"}]},"branch":"refs/heads/master"},"bb67d8fd8585bcef10fb2688ef7d9fcc9e32b0c3":{"kind":"REWORK","_number":27,"created":"2026-07-09 23:23:41.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/27","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/27","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/27 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/27 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/27 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/27"}}},"commit":{"parents":[{"commit":"74e7fc13c5f185f0687551cc60a2bd44b1bac7f5","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/74e7fc13c5f185f0687551cc60a2bd44b1bac7f5"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-09 23:22:20.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/bb67d8fd8585bcef10fb2688ef7d9fcc9e32b0c3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/bb67d8fd8585bcef10fb2688ef7d9fcc9e32b0c3"}]},"branch":"refs/heads/master"},"af98caf0fd68810d8ff3cab52addc57f80da9491":{"kind":"NO_CHANGE","_number":28,"created":"2026-07-10 02:30:36.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/28","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/28","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/28 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/28 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/28 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/28"}}},"commit":{"parents":[{"commit":"20613505dedbc81bd0e2e3803f226ff1badb276c","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/20613505dedbc81bd0e2e3803f226ff1badb276c"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-10 02:26:53.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/af98caf0fd68810d8ff3cab52addc57f80da9491"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/af98caf0fd68810d8ff3cab52addc57f80da9491"}]},"branch":"refs/heads/master"},"9ec28e9861cec88b434e582c60dfdb7a55c546d1":{"kind":"REWORK","_number":29,"created":"2026-07-10 04:51:06.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/29","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/29","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/29 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/29 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/29 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/29"}}},"commit":{"parents":[{"commit":"f84b9982902521fa6e7ecb110e85141286c9be90","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/f84b9982902521fa6e7ecb110e85141286c9be90"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-10 04:49:53.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/9ec28e9861cec88b434e582c60dfdb7a55c546d1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/9ec28e9861cec88b434e582c60dfdb7a55c546d1"}]},"branch":"refs/heads/master"},"3b08d4ff7b9ab284d463dacf898350f45ec77591":{"kind":"TRIVIAL_REBASE","_number":30,"created":"2026-07-10 17:57:46.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/30","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/30","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/30 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/30 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/30 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/30"}}},"commit":{"parents":[{"commit":"c32b713ecedab1af8de00246468fbd1815fee112","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/c32b713ecedab1af8de00246468fbd1815fee112"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-10 17:57:00.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3b08d4ff7b9ab284d463dacf898350f45ec77591"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3b08d4ff7b9ab284d463dacf898350f45ec77591"}]},"branch":"refs/heads/master"},"00aee3f3cafa7e1f44a980da7db66a040e628504":{"kind":"TRIVIAL_REBASE","_number":31,"created":"2026-07-10 18:13:55.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/31","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/31","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/31 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/31 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/31 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/31"}}},"commit":{"parents":[{"commit":"1b5399b49af720fbb3f86c36ce8e41da97f817af","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/1b5399b49af720fbb3f86c36ce8e41da97f817af"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-10 18:13:28.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/00aee3f3cafa7e1f44a980da7db66a040e628504"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/00aee3f3cafa7e1f44a980da7db66a040e628504"}]},"branch":"refs/heads/master"},"191adeae5ef7c80542b2f3f8d9b7443bd7791268":{"kind":"TRIVIAL_REBASE","_number":32,"created":"2026-07-10 20:28:49.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/32","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/32","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/32 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/32 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/32 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/32"}}},"commit":{"parents":[{"commit":"0cb3da2489607e7c66dc053d2dcadb1c2d323c86","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/0cb3da2489607e7c66dc053d2dcadb1c2d323c86"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-10 20:28:43.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/191adeae5ef7c80542b2f3f8d9b7443bd7791268"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/191adeae5ef7c80542b2f3f8d9b7443bd7791268"}]},"branch":"refs/heads/master"},"209cf56a7064c860bc9c8a876e96b657d5856d74":{"kind":"TRIVIAL_REBASE","_number":33,"created":"2026-07-10 23:06:58.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/33","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/33","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/33 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/33 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/33 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/33"}}},"commit":{"parents":[{"commit":"d076355943a0fe62cfd3dda543ad753d875456e5","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d076355943a0fe62cfd3dda543ad753d875456e5"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-10 23:06:50.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/209cf56a7064c860bc9c8a876e96b657d5856d74"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/209cf56a7064c860bc9c8a876e96b657d5856d74"}]},"branch":"refs/heads/master"},"33ab7c5471cff2c8f781bfbaa270d54a0895236c":{"kind":"TRIVIAL_REBASE","_number":34,"created":"2026-07-11 01:26:56.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/34","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/34","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/34 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/34 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/34 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/34"}}},"commit":{"parents":[{"commit":"d2ab0d2659ec2451e344c1db03b6f01faf8a8f99","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d2ab0d2659ec2451e344c1db03b6f01faf8a8f99"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-11 01:26:46.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/33ab7c5471cff2c8f781bfbaa270d54a0895236c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/33ab7c5471cff2c8f781bfbaa270d54a0895236c"}]},"branch":"refs/heads/master"},"4ef529f7fb52682ab952eb285d812f198bcac9d2":{"kind":"TRIVIAL_REBASE","_number":35,"created":"2026-07-11 02:35:08.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/35","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/35","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/35 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/35 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/35 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/35"}}},"commit":{"parents":[{"commit":"86876c5bf2b69cc07cc1b6073a17faf90be9f4b9","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/86876c5bf2b69cc07cc1b6073a17faf90be9f4b9"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-11 02:34:59.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/4ef529f7fb52682ab952eb285d812f198bcac9d2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/4ef529f7fb52682ab952eb285d812f198bcac9d2"}]},"branch":"refs/heads/master"},"1521e7127672a42c9e2cec2e31bbace481c0fb45":{"kind":"REWORK","_number":36,"created":"2026-07-11 08:11:42.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/36","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/36","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/36 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/36 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/36 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/36"}}},"commit":{"parents":[{"commit":"8c6452c64802834f8ad33f633fe3748fe391d2f1","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/8c6452c64802834f8ad33f633fe3748fe391d2f1"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-11 08:11:17.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/1521e7127672a42c9e2cec2e31bbace481c0fb45"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/1521e7127672a42c9e2cec2e31bbace481c0fb45"}]},"branch":"refs/heads/master"},"d054e1ebe2cd84e0b5effd3be8870a61b14dafc2":{"kind":"REWORK","_number":37,"created":"2026-07-11 20:02:12.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/37","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/37","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/37 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/37 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/37 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/37"}}},"commit":{"parents":[{"commit":"0d9aabbaff4b0685df1d3ae3f9cdfc598ebfd978","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/0d9aabbaff4b0685df1d3ae3f9cdfc598ebfd978"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-11 20:01:53.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d054e1ebe2cd84e0b5effd3be8870a61b14dafc2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d054e1ebe2cd84e0b5effd3be8870a61b14dafc2"}]},"branch":"refs/heads/master"},"91a3df22ce91b9b5de2ed9769e6c71c979539a47":{"kind":"REWORK","_number":38,"created":"2026-07-11 23:31:49.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/38","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/38","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/38 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/38 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/38 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/38"}}},"commit":{"parents":[{"commit":"eb7708cf045b7f5bf3b945c87f91ffdd3e3c5c45","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/eb7708cf045b7f5bf3b945c87f91ffdd3e3c5c45"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-11 23:31:28.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/91a3df22ce91b9b5de2ed9769e6c71c979539a47"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/91a3df22ce91b9b5de2ed9769e6c71c979539a47"}]},"branch":"refs/heads/master"},"f6ccf3b556682da036ec3e65877bc9de09d0b7bc":{"kind":"REWORK","_number":39,"created":"2026-07-11 23:50:26.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/39","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/39","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/39 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/39 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/39 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/39"}}},"commit":{"parents":[{"commit":"eb7708cf045b7f5bf3b945c87f91ffdd3e3c5c45","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/eb7708cf045b7f5bf3b945c87f91ffdd3e3c5c45"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-11 23:50:25.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/f6ccf3b556682da036ec3e65877bc9de09d0b7bc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/f6ccf3b556682da036ec3e65877bc9de09d0b7bc"}]},"branch":"refs/heads/master"},"dd92c567ec8a4c69f0a1d840ca1d2310a53e57e1":{"kind":"REWORK","_number":40,"created":"2026-07-12 03:18:51.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/40","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/40","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/40 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/40 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/40 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/40"}}},"commit":{"parents":[{"commit":"f57db73e496a84ba3e497bc91bce7ee6834eee34","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/f57db73e496a84ba3e497bc91bce7ee6834eee34"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-12 03:18:50.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/dd92c567ec8a4c69f0a1d840ca1d2310a53e57e1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/dd92c567ec8a4c69f0a1d840ca1d2310a53e57e1"}]},"branch":"refs/heads/master"},"cff9e65895a4fa91b6fa4aa5bf9a1c225383ff69":{"kind":"TRIVIAL_REBASE","_number":41,"created":"2026-07-12 05:48:53.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/41","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/41","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/41 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/41 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/41 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/41"}}},"commit":{"parents":[{"commit":"07c2f3a9b6c652fc04234940c22c52bd1c49e947","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/07c2f3a9b6c652fc04234940c22c52bd1c49e947"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-12 05:48:44.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/cff9e65895a4fa91b6fa4aa5bf9a1c225383ff69"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/cff9e65895a4fa91b6fa4aa5bf9a1c225383ff69"}]},"branch":"refs/heads/master"},"e481633fe63403a18e66c4f5b1c6d10fc877459f":{"kind":"TRIVIAL_REBASE","_number":42,"created":"2026-07-12 09:23:40.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/01/994601/42","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/01/994601/42","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/42 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/42 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/42 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/01/994601/42"}}},"commit":{"parents":[{"commit":"265630f886b0e2d1ec3ad886adfa7933e990fff1","subject":"HTTP-RPC driver: Kubernetes Lease service broker","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/265630f886b0e2d1ec3ad886adfa7933e990fff1"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-24 07:49:17.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-12 09:23:30.000000000","tz":-240},"subject":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate","message":"WIP: HTTP-RPC driver: PoC kafka-k8s tempest gate\n\nAdd an in-tree devstack plugin and two tempest-full gate jobs that\nexercise the oslo.messaging HTTP-RPC driver end to end against a real\nKubernetes apiserver, using the Kubernetes Lease service broker for\nendpoint discovery.\n\nBoth jobs stack three pieces on a single devstack node:\n\n- devstack-plugin-container brings up a single-node kubeadm cluster\n  (etcd3 + container + k8s-master) used ONLY as the Lease backend;\n  OpenStack itself keeps running as ordinary devstack services.\n- devstack-plugin-kafka carries notifications (kafka://).\n- the in-tree oslo.messaging/devstack/ plugin overrides\n  iniset_rpc_backend so every service\u0027s RPC transport_url becomes\n  http:// with [oslo_messaging_http] service_broker_backend \u003d k8s, and\n  starts the fanout broadcaster. It creates a least-privilege\n  ServiceAccount (coordination.k8s.io Leases only) and a scoped\n  kubeconfig for the services to use.\n\nThis is a proof of concept that deliberately lives in-tree so the gate\ncan run today. It is intended to be extracted into a dedicated\nopenstack/devstack-plugin-http repository once it stabilises, following\nthe per-driver pattern of devstack-plugin-kafka and\ndevstack-plugin-amqp1 (RabbitMQ remains the devstack core default and is\nnot a plugin).\n\nTwo variants run from a shared base job:\n\n- oslo.messaging-src-dsvm-full-kafka-k8s (voting) disables eventlet\n  monkey-patching on the nova and cinder RPC services\n  (OS_{NOVA,CINDER}_DISABLE_EVENTLET_PATCHING via SYSTEMD_ENV_VARS),\n  matching the supported production configuration of the HTTP driver.\n- oslo.messaging-src-dsvm-full-kafka-k8s-eventlet (voting) leaves\n  eventlet enabled (the devstack default) to exercise the driver\u0027s\n  defensive isolation under monkey-patching: the per-listener asyncio\n  selector, the inbound message hand-off, and the reply/ack delivery\n  are all kept off the cross-OS-thread greenlet-switch path.\n\nPlain HTTP is used for now; mTLS (to exercise SNITransport) is a\nfollow-up.\n\nThe eventlet-OFF job depends on the cinder eventlet-removal work so\nits image-transfer and backup services run without a live eventlet\nhub: cinder/image/image_utils.py and the backup manager otherwise\nroute data-plane work through eventlet.tpool / the eventlet-only\nThreadPoolManager, which deadlock or assert when monkey-patching is\ndisabled. The Depends-On pulls in the cinder image_utils tpool fix\n(995001) and, as its ancestor, the backup native-threads fix (977851).\n\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995001\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I2317b496c4f1668b8828e91f3b417b9a097151f6\nSigned-off-by: flux.adam@gmail.com\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e481633fe63403a18e66c4f5b1c6d10fc877459f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/e481633fe63403a18e66c4f5b1c6d10fc877459f"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Backport-Candidate","description":"Backport candidate status","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
