)]}'
{"id":"openstack%2Fopenstack-helm~1010670","triplet_id":"openstack%2Fopenstack-helm~master~I280fd81962409977e0188c2061098e99c3a9240c","project":"openstack/openstack-helm","branch":"master","attention_set":{},"removed_from_attention_set":{"3009":{"account":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"last_update":"2026-10-17 08:04:36.000000000","reason":"\u003cGERRIT_ACCOUNT_3009\u003e replied on the change","reason_account":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"}},"5890":{"account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"last_update":"2026-10-19 17:03:16.000000000","reason":"Change was submitted"},"7156":{"account":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"last_update":"2026-10-19 15:38:22.000000000","reason":"\u003cGERRIT_ACCOUNT_7156\u003e replied on the change","reason_account":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"}}},"hashtags":[],"change_id":"I280fd81962409977e0188c2061098e99c3a9240c","subject":"feat(cyborg): run the conductor as a StatefulSet","status":"MERGED","created":"2026-10-15 12:38:17.000000000","updated":"2026-10-19 17:04:32.000000000","submitted":"2026-10-19 17:03:16.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1010670","meta_rev_id":"a7c4b92376edd8388abb83aa2e891ef5d2949070","_number":1010670,"virtual_id_number":1010670,"owner":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},{"value":0,"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-10-19 17:03:16.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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"all":[{"value":2,"date":"2026-10-17 08:04:36.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},{"value":2,"date":"2026-10-19 15:38:22.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},{"value":0,"_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":{"approved":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"all":[{"value":0,"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},{"value":1,"date":"2026-10-19 15:38:22.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},{"value":0,"_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}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-10-15 12:54:48.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"},{"updated":"2026-10-15 18:12:38.000000000","updated_by":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"reviewer":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"state":"CC"},{"updated":"2026-10-16 15:35:19.000000000","updated_by":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"reviewer":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"state":"REVIEWER"},{"updated":"2026-10-16 17:08:30.000000000","updated_by":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"reviewer":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"state":"REVIEWER"}],"messages":[{"id":"8d49ab59a0fca1f8684c3f650986ded065c1669e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-10-15 12:38:17.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c09ff589df64fd93193fac7dc46bfbf8e384ec72","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-15 12:54:48.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6c437db755ec4f749e22b8bcb3f8bc33\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1ecf44abcfbe433e8055205e72458afa : SUCCESS in 3m 38s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/4342e9044f14437486ecc5579843b774 : SUCCESS in 3m 29s\n- openstack-helm-pre-commit https://zuul.opendev.org/t/openstack/build/ad283914666846d6b205f3f090ac072d : SUCCESS in 1m 54s\n- openstack-helm-release-notes https://zuul.opendev.org/t/openstack/build/3117746a29f040f793465f0a03fb615f : SUCCESS in 1m 29s\n- openstack-helm-build-charts https://zuul.opendev.org/t/openstack/build/3bf96099fab34cda8c7d32878d602c01 : SUCCESS in 2m 13s","accounts_in_message":[],"_revision_number":1},{"id":"2c2ea0b31ac2e8f8fdda958133686e4654ea1585","author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"date":"2026-10-15 18:12:38.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"e592a2b276d653c6d0a70ec40f04725ba026f43f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-10-16 14:58:02.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"f107ecc87db332602ab0b4f330f7db2ea8249463","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-16 15:06:59.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e8b52d2beea345e9bce3b179c0a04c76\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/163d8a211bf344d18b2c084dfb64f4a4 : SUCCESS in 3m 33s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/2fadd67054514b399bc49cb2162138e4 : SUCCESS in 2m 30s\n- openstack-helm-pre-commit https://zuul.opendev.org/t/openstack/build/e13c4c8155e74e12a4920196766be261 : SUCCESS in 2m 58s\n- openstack-helm-release-notes https://zuul.opendev.org/t/openstack/build/4893a0944e3f496785cb0aef3c749fa0 : SUCCESS in 2m 35s\n- openstack-helm-build-charts https://zuul.opendev.org/t/openstack/build/f0e0841718ea4c4d924250910d13d4c7 : SUCCESS in 2m 37s","accounts_in_message":[],"_revision_number":2},{"id":"d8bc109e44f81c6c4883c5125da890841207bb8b","author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"date":"2026-10-16 15:35:19.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"63f7f130a6eac4bd8e417eb54de994a6aed77dd1","author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"date":"2026-10-16 17:08:30.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"57426326e70016308270058b6765ebbab4883e7f","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-16 23:20:57.000000000","message":"Patch Set 2: Verified-2\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.\nWarning:\n  Error merging gerrit/openstack/openstack-helm for 1010670,2","accounts_in_message":[],"_revision_number":2},{"id":"ef6dc326e69730a69f65b34187fceaf1574a7de1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-10-17 00:02:03.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-2 (copy condition: \"NEVER\")\n* Workflow+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"b8ce4e31c593ce93c4d3fb8a7b09f6439904be3b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-17 00:14:41.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fc1a845b6a6f4e46b01681ee379bcdce\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1915a17bce7b4e6892848a92aaf7370c : SUCCESS in 3m 48s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/18df899eae4448ca9ecf826dd311a4e7 : SUCCESS in 2m 06s\n- openstack-helm-pre-commit https://zuul.opendev.org/t/openstack/build/9343c3b324a4478a8666d2fe5a03b33e : SUCCESS in 3m 00s\n- openstack-helm-release-notes https://zuul.opendev.org/t/openstack/build/f9a050498ff44a54a1f0ddd591c80148 : SUCCESS in 1m 34s\n- openstack-helm-build-charts https://zuul.opendev.org/t/openstack/build/0cb740ab614d415c86f5e02843e0e511 : SUCCESS in 2m 00s","accounts_in_message":[],"_revision_number":3},{"id":"218595c2481d6375d6554e81fe165998aa62b638","author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"date":"2026-10-17 08:04:36.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"c1101a3a6f6e5e8e58608321dc0cbaf68a3fedcc","author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"date":"2026-10-19 15:38:22.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"ecd9e2c1f0df43bfd8b460cedce3a226919cf025","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-19 15:38:31.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"45e71e8c774fa3e91bece3ae9535f1616bd22543","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-19 17:03:16.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/12056bec1d3c4b8fbc8ce75fcd97e5c3\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c372806e59f04ebbb431ebe8a34f7c99 : SUCCESS in 2m 21s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/880e1d5de685413fbe6442efe730caf9 : SUCCESS in 4m 09s\n- openstack-helm-release-notes https://zuul.opendev.org/t/openstack/build/246d8ec503ae433aaffe99c55fbfd531 : SUCCESS in 1m 27s\n- openstack-helm-compute-kit-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/e628a7d07d404cb391671544deadee3e : SUCCESS in 1h 21m 23s\n- openstack-helm-logging https://zuul.opendev.org/t/openstack/build/1fcd20546a2a4e898b7571ef40739623 : SUCCESS in 24m 28s\n- openstack-helm-monitoring https://zuul.opendev.org/t/openstack/build/5dacb70231ac4444a67c6276268417b7 : SUCCESS in 28m 43s","accounts_in_message":[],"_revision_number":3},{"id":"1b5c42b3bd098c5d09b50a64f366bdc29756038b","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-19 17:03:16.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"a7c4b92376edd8388abb83aa2e891ef5d2949070","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-19 17:04:32.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/51305fd3a65b4b63b9b93f49a16a2506\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0ea97efe533745f59649722e6d5c681f : SUCCESS in 54s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"f865958cbae7094af5615bfad658b96e096643d8","revisions":{"0d27b380e6980372ae2ef4cf5e28a0bbf0ab929b":{"kind":"REWORK","_number":1,"created":"2026-10-15 12:38:17.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/70/1010670/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-helm","ref":"refs/changes/70/1010670/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/1"}}},"commit":{"parents":[{"commit":"7c7184ec9d56d73a8beb42b02bbc6a5d3300e679","subject":"fix(cyborg): define the api and conductor security contexts","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/7c7184ec9d56d73a8beb42b02bbc6a5d3300e679"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-01 00:58:13.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-15 12:38:08.000000000","tz":-300},"subject":"feat(cyborg): run the conductor as a StatefulSet","message":"feat(cyborg): run the conductor as a StatefulSet\n\nThe conductor is an RPC server: RPCService.start listens on a\nTarget(topic, server\u003dself.host), and CONF.host defaults to\nsocket.gethostname(). oslo.messaging names the per-server\n\u003ctopic\u003e.\u003chost\u003e queue after it, and under a Deployment the hostname is\nthe pod name, so it changed on every rollout. Now that the charts\ndefault to quorum queues, which cannot be declared auto_delete, every\nrollout left the previous pods\u0027 queues behind.\n\nReplace deployment-conductor.yaml with statefulset-conductor.yaml and\nrename manifests.deployment_conductor to\nmanifests.statefulset_conductor. The pod spec is unchanged. The agent\nDaemonSet uses hostNetwork, so its hostname is already the node\u0027s and\nstays as it is.\n\nThe old value defaulted to true, so an override that set it to false to\ndisable the conductor would be silently ignored after the rename. Fail\nrendering if manifests.deployment_conductor is set at all. Nothing in\nthe repository set it.\n\nRender a headless service named cyborg-conductor as the StatefulSet\u0027s\ngoverning service, under the same manifests value: a serviceName that\nnames a service which does not exist publishes no per-ordinal DNS, so\nthe two are never useful apart. The conductor listens on nothing, so\nthe service declares no ports, and it does not publish not-ready\naddresses because the conductor has no readiness probe.\n\nThe update strategy now comes from pod.lifecycle.upgrades.statefulsets,\nwhich the chart did not define until now.\n\nAssisted-by: Claude Opus 5.5\nChange-Id: I280fd81962409977e0188c2061098e99c3a9240c\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/0d27b380e6980372ae2ef4cf5e28a0bbf0ab929b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/0d27b380e6980372ae2ef4cf5e28a0bbf0ab929b"}]},"branch":"refs/heads/master"},"fb196897fce4eab225f5f2ae9d9d8caa6646feba":{"kind":"REWORK","_number":2,"created":"2026-10-16 14:58:02.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/70/1010670/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-helm","ref":"refs/changes/70/1010670/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/2"}}},"commit":{"parents":[{"commit":"27f15d26e2873ec9694a0c3ab2a0b63285d14210","subject":"fix(cyborg): wire up the agent dependencies and harden the pods","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/27f15d26e2873ec9694a0c3ab2a0b63285d14210"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-01 00:58:13.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-16 14:57:09.000000000","tz":-300},"subject":"feat(cyborg): run the conductor as a StatefulSet","message":"feat(cyborg): run the conductor as a StatefulSet\n\nThe conductor is an RPC server: RPCService.start listens on a\nTarget(topic, server\u003dself.host), and CONF.host defaults to\nsocket.gethostname(). oslo.messaging names the per-server\n\u003ctopic\u003e.\u003chost\u003e queue after it, and under a Deployment the hostname is\nthe pod name, so it changed on every rollout. Now that the charts\ndefault to quorum queues, which cannot be declared auto_delete, every\nrollout left the previous pods\u0027 queues behind.\n\nReplace deployment-conductor.yaml with statefulset-conductor.yaml and\nrename manifests.deployment_conductor to\nmanifests.statefulset_conductor. The pod spec is unchanged. The agent\nDaemonSet uses hostNetwork, so its hostname is already the node\u0027s and\nstays as it is.\n\nThe old value defaulted to true, so an override that set it to false to\ndisable the conductor would be silently ignored after the rename. Fail\nrendering if manifests.deployment_conductor is set at all. Nothing in\nthe repository set it.\n\nRender a headless service named cyborg-conductor as the StatefulSet\u0027s\ngoverning service, under the same manifests value: a serviceName that\nnames a service which does not exist publishes no per-ordinal DNS, so\nthe two are never useful apart. The conductor listens on nothing, so\nthe service declares no ports, and it does not publish not-ready\naddresses because the conductor has no readiness probe.\n\nThe update strategy now comes from pod.lifecycle.upgrades.statefulsets,\nwhich the chart did not define until now.\n\nAssisted-by: Claude Opus 5.5\nChange-Id: I280fd81962409977e0188c2061098e99c3a9240c\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/fb196897fce4eab225f5f2ae9d9d8caa6646feba"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/fb196897fce4eab225f5f2ae9d9d8caa6646feba"}]},"branch":"refs/heads/master"},"f865958cbae7094af5615bfad658b96e096643d8":{"kind":"REWORK","_number":3,"created":"2026-10-17 00:02:03.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/70/1010670/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-helm","ref":"refs/changes/70/1010670/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-helm refs/changes/70/1010670/3"}}},"commit":{"parents":[{"commit":"1b2f27965ad71deed6d89c9aab8f421c2f4d6fc4","subject":"Merge \"fix(glance): run two glance-api uWSGI processes\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/1b2f27965ad71deed6d89c9aab8f421c2f4d6fc4"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-01 00:58:13.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-17 00:01:54.000000000","tz":-300},"subject":"feat(cyborg): run the conductor as a StatefulSet","message":"feat(cyborg): run the conductor as a StatefulSet\n\nThe conductor is an RPC server: RPCService.start listens on a\nTarget(topic, server\u003dself.host), and CONF.host defaults to\nsocket.gethostname(). oslo.messaging names the per-server\n\u003ctopic\u003e.\u003chost\u003e queue after it, and under a Deployment the hostname is\nthe pod name, so it changed on every rollout. Now that the charts\ndefault to quorum queues, which cannot be declared auto_delete, every\nrollout left the previous pods\u0027 queues behind.\n\nReplace deployment-conductor.yaml with statefulset-conductor.yaml and\nrename manifests.deployment_conductor to\nmanifests.statefulset_conductor. The pod spec is unchanged. The agent\nDaemonSet uses hostNetwork, so its hostname is already the node\u0027s and\nstays as it is.\n\nThe old value defaulted to true, so an override that set it to false to\ndisable the conductor would be silently ignored after the rename. Fail\nrendering if manifests.deployment_conductor is set at all. Nothing in\nthe repository set it.\n\nRender a headless service named cyborg-conductor as the StatefulSet\u0027s\ngoverning service, under the same manifests value: a serviceName that\nnames a service which does not exist publishes no per-ordinal DNS, so\nthe two are never useful apart. The conductor listens on nothing, so\nthe service declares no ports, and it does not publish not-ready\naddresses because the conductor has no readiness probe.\n\nThe update strategy now comes from pod.lifecycle.upgrades.statefulsets,\nwhich the chart did not define until now.\n\nAssisted-by: Claude Opus 5.5\nChange-Id: I280fd81962409977e0188c2061098e99c3a9240c\nSigned-off-by: Doug Goldstein \u003ccardoe@cardoe.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/f865958cbae7094af5615bfad658b96e096643d8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/f865958cbae7094af5615bfad658b96e096643d8"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
