)]}'
{"id":"openstack%2Fopenstack-helm~1011376","triplet_id":"openstack%2Fopenstack-helm~master~I965f669e52e074c5589a546b2df43f47d62fbff0","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-21 10:37:20.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-21 12:36:30.000000000","reason":"Change was submitted"},"7156":{"account":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"last_update":"2026-10-20 22:39:16.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":"I965f669e52e074c5589a546b2df43f47d62fbff0","subject":"feat(tacker): run the conductor as a StatefulSet","status":"MERGED","created":"2026-10-19 19:54:52.000000000","updated":"2026-10-21 12:37:52.000000000","submitted":"2026-10-21 12:36:30.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1011376","meta_rev_id":"3ba206825e6a9a48d5554912f2fbd43cc80c1c78","_number":1011376,"virtual_id_number":1011376,"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-21 12:36:30.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-21 10:37:20.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-20 22:39:16.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":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"all":[{"value":1,"date":"2026-10-21 10:37:20.000000000","permitted_voting_range":{"min":1,"max":1},"_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"},{"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-19 21:01:09.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-19 21:14:09.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-20 14:11:09.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":"d933f3fbbaf22a01c70ecdca3fb9411ee44a279a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-10-19 19:54:52.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"36e5903f1b0f87014298157743c2406f004cabfe","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-10-19 20:08:34.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"06dcb9cc95eeb535c0fa5cce9d5ed2dcf991dd36","author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"date":"2026-10-19 21:01:09.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"266f8333f180ab1c6f96421822d677ab24630477","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-19 21:14:09.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e47f8bd6146642e493caea6f18d73270\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8ab2879f65c54795a3dde57def64cdff : SUCCESS in 3m 45s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/62ca76f67ad044d7ba67e722d20d8c15 : SUCCESS in 2m 47s\n- openstack-helm-pre-commit https://zuul.opendev.org/t/openstack/build/623a9435f885409d902eedfc2996e542 : SUCCESS in 3m 19s\n- openstack-helm-release-notes https://zuul.opendev.org/t/openstack/build/40d2233f862944308c3526ff2429cde9 : SUCCESS in 1m 50s\n- openstack-helm-build-charts https://zuul.opendev.org/t/openstack/build/8a677e92567644479c6185974f5c48e2 : SUCCESS in 2m 37s\n- openstack-helm-tacker-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/b28be842a394403fa76a48065a9bc8c9 : SUCCESS in 1h 02m 41s","accounts_in_message":[],"_revision_number":2},{"id":"ca7b458976e0002be555c52e9e09445097e16b63","author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"date":"2026-10-20 14:11:09.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"1059d921fd61b971b85b2630ff84246e7d43c4a8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-10-20 21:11:16.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n* Workflow+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"6b76c1341136e0c993bd31850c5f02e16464c6bd","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-20 22:28:10.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/33d3df20317c4726a56ca21b92dca484\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/02a038c7373c49089facc66b58e58c0c : SUCCESS in 3m 23s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/a5f3a651e6364fc7b16c5f7b48718100 : SUCCESS in 2m 15s\n- openstack-helm-pre-commit https://zuul.opendev.org/t/openstack/build/175c9c1213284e3fb6da7c5ad802c08c : SUCCESS in 2m 07s\n- openstack-helm-release-notes https://zuul.opendev.org/t/openstack/build/88ed07dafc974da5a382cd95c0f07a64 : SUCCESS in 1m 38s\n- openstack-helm-build-charts https://zuul.opendev.org/t/openstack/build/03b4e1556bdf45a09262d860b6b603c8 : SUCCESS in 3m 14s\n- openstack-helm-tacker-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/83c5c1337f494c66bfb599b29ce31833 : SUCCESS in 1h 02m 15s","accounts_in_message":[],"_revision_number":3},{"id":"49653c847542d9b66ef2248d83ec698fcce15c8f","author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"date":"2026-10-20 22:39:16.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"73a3b279a31bedfe713f82f973be00b73f8e38e8","author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"date":"2026-10-21 10:37:20.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"957075aca938ef8b36a8db930dd8d2ede27c3fcb","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-21 10:37:31.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"04903ef740ccccdc8f51a6e78126f92910f5e165","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-21 12:36:30.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d57a64705be542cab7937de0a349f09b\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/81c8c4e9ce354474a2fbd02bd4e1d039 : SUCCESS in 3m 48s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/be36d35df0fe494e9ebf342e1a4dbc10 : SUCCESS in 2m 11s\n- openstack-helm-release-notes https://zuul.opendev.org/t/openstack/build/19f61beb6ec34d988542a36d9155c48d : SUCCESS in 1m 46s\n- openstack-helm-compute-kit-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/b60ebc3a286b4fe386e55e0999f0d366 : SUCCESS in 1h 45m 11s\n- openstack-helm-logging https://zuul.opendev.org/t/openstack/build/98599069259748038772e39ac9f2d7f9 : SUCCESS in 40m 07s\n- openstack-helm-monitoring https://zuul.opendev.org/t/openstack/build/f3884b928dea423591e83067a967a514 : SUCCESS in 26m 21s","accounts_in_message":[],"_revision_number":3},{"id":"8fd308d3472abb36c7919c697837aee1505d1dfe","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-21 12:36:30.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"3ba206825e6a9a48d5554912f2fbd43cc80c1c78","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-10-21 12:37:52.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e8a020efde7746bf99e730eaeeb01f3d\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6ff435934406462aa11831ef610ce70c : SUCCESS in 50s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"da295398eb1d9a8f6594d00c9a2fe9c9c88a8c50","revisions":{"3c5b6d04b9ee3458031f07a8b5e170ef9c8b8aa4":{"kind":"REWORK","_number":1,"created":"2026-10-19 19:54:52.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/76/1011376/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-helm","ref":"refs/changes/76/1011376/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/1"}}},"commit":{"parents":[{"commit":"255143013c19553b6decff214f979febd5cd4fb1","subject":"fix(tacker): size the server and conductor containers","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/255143013c19553b6decff214f979febd5cd4fb1"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-01 01:13:07.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-19 19:54:36.000000000","tz":-300},"subject":"feat(tacker): run the conductor as a StatefulSet","message":"feat(tacker): run the conductor as a StatefulSet\n\noslo.messaging names the conductor\u0027s per-server \u003ctopic\u003e.\u003chost\u003e queues\nafter its host, which defaults to the hostname and under a Deployment is\nthe pod name, so they changed on every rollout. Each pod creates three\n(the conductor, conductor v2 and prometheus plugin topics). Now that the\ncharts default to quorum queues, which cannot be declared auto_delete,\nevery rollout left the previous pod\u0027s queues behind.\n\nReplace deployment-conductor.yaml with statefulset-conductor.yaml and\nrename manifests.deployment_conductor to\nmanifests.statefulset_conductor. The old value defaulted to true, so\nfail rendering if it is set at all rather than silently ignoring an\noverride that disabled the conductor. The pod spec is unchanged apart\nfrom dropping containerPort 5672: the conductor listens on nothing, and\nonly the ClusterIP service below targeted it.\n\nThe chart rendered a ClusterIP service named tacker-conductor on that\nport, which had no working backend and which nothing else in the chart\nuses. Remove it along with manifests.service_conductor and the values\nonly it read (network.conductor and the nfv_orchestration conductor host\nand port). manifests.service_conductor gets no fail guard: ignoring a\nstale override of it changes nothing.\n\nRender a headless service as the StatefulSet\u0027s governing service, under\nthe same manifests.statefulset_conductor value, with no ports and no\nnot-ready addresses (the conductor has no readiness probe). This\ndeviates from the other charts, which name the governing service after\nthe StatefulSet: a service\u0027s clusterIP cannot be changed to None in\nplace, so a headless tacker-conductor would fail the upgrade of every\nexisting release. It is named tacker-conductor-headless instead, which\nlets Helm delete the old service and create the new one in the same\nupgrade.\n\nDefine pod.lifecycle.upgrades.statefulsets, which the chart did not\ncarry, so kubernetes_upgrades_statefulset renders an explicit\nupdateStrategy.\n\nAssisted-by: Claude Opus 5.5\nChange-Id: I965f669e52e074c5589a546b2df43f47d62fbff0\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/3c5b6d04b9ee3458031f07a8b5e170ef9c8b8aa4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/3c5b6d04b9ee3458031f07a8b5e170ef9c8b8aa4"}]},"branch":"refs/heads/master"},"7cbd436d9bd7bb3bc7e73f94cc4aa65e954b9881":{"kind":"REWORK","_number":2,"created":"2026-10-19 20:08:34.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/76/1011376/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-helm","ref":"refs/changes/76/1011376/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/2"}}},"commit":{"parents":[{"commit":"f8199f0b42e7d7d41ff8839e4b16842937f44419","subject":"fix(tacker): size the server and conductor containers","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/f8199f0b42e7d7d41ff8839e4b16842937f44419"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-01 01:13:07.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-19 20:08:27.000000000","tz":-300},"subject":"feat(tacker): run the conductor as a StatefulSet","message":"feat(tacker): run the conductor as a StatefulSet\n\noslo.messaging names the conductor\u0027s per-server \u003ctopic\u003e.\u003chost\u003e queues\nafter its host, which defaults to the hostname and under a Deployment is\nthe pod name, so they changed on every rollout. Each pod creates three\n(the conductor, conductor v2 and prometheus plugin topics). Now that the\ncharts default to quorum queues, which cannot be declared auto_delete,\nevery rollout left the previous pod\u0027s queues behind.\n\nReplace deployment-conductor.yaml with statefulset-conductor.yaml and\nrename manifests.deployment_conductor to\nmanifests.statefulset_conductor. The old value defaulted to true, so\nfail rendering if it is set at all rather than silently ignoring an\noverride that disabled the conductor. The pod spec is unchanged apart\nfrom dropping containerPort 5672: the conductor listens on nothing, and\nonly the ClusterIP service below targeted it.\n\nThe chart rendered a ClusterIP service named tacker-conductor on that\nport, which had no working backend and which nothing else in the chart\nuses. Remove it along with manifests.service_conductor and the values\nonly it read (network.conductor and the nfv_orchestration conductor host\nand port). manifests.service_conductor gets no fail guard: ignoring a\nstale override of it changes nothing.\n\nRender a headless service as the StatefulSet\u0027s governing service, under\nthe same manifests.statefulset_conductor value, with no ports and no\nnot-ready addresses (the conductor has no readiness probe). This\ndeviates from the other charts, which name the governing service after\nthe StatefulSet: a service\u0027s clusterIP cannot be changed to None in\nplace, so a headless tacker-conductor would fail the upgrade of every\nexisting release. It is named tacker-conductor-headless instead, which\nlets Helm delete the old service and create the new one in the same\nupgrade.\n\nDefine pod.lifecycle.upgrades.statefulsets, which the chart did not\ncarry, so kubernetes_upgrades_statefulset renders an explicit\nupdateStrategy.\n\nAssisted-by: Claude Opus 5.5\nChange-Id: I965f669e52e074c5589a546b2df43f47d62fbff0\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/7cbd436d9bd7bb3bc7e73f94cc4aa65e954b9881"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/7cbd436d9bd7bb3bc7e73f94cc4aa65e954b9881"}]},"branch":"refs/heads/master"},"da295398eb1d9a8f6594d00c9a2fe9c9c88a8c50":{"kind":"REWORK","_number":3,"created":"2026-10-20 21:11:16.000000000","uploader":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"ref":"refs/changes/76/1011376/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-helm","ref":"refs/changes/76/1011376/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-helm refs/changes/76/1011376/3"}}},"commit":{"parents":[{"commit":"d2b2059ceeaed0b31b9166cfbac8811f4c513eab","subject":"Merge \"feat(masakari): run the engine as a StatefulSet\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/d2b2059ceeaed0b31b9166cfbac8811f4c513eab"}]}],"author":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-01 01:13:07.000000000","tz":-300},"committer":{"name":"Doug Goldstein","email":"cardoe@cardoe.com","date":"2026-10-20 21:11:09.000000000","tz":-300},"subject":"feat(tacker): run the conductor as a StatefulSet","message":"feat(tacker): run the conductor as a StatefulSet\n\noslo.messaging names the conductor\u0027s per-server \u003ctopic\u003e.\u003chost\u003e queues\nafter its host, which defaults to the hostname and under a Deployment is\nthe pod name, so they changed on every rollout. Each pod creates three\n(the conductor, conductor v2 and prometheus plugin topics). Now that the\ncharts default to quorum queues, which cannot be declared auto_delete,\nevery rollout left the previous pod\u0027s queues behind.\n\nReplace deployment-conductor.yaml with statefulset-conductor.yaml and\nrename manifests.deployment_conductor to\nmanifests.statefulset_conductor. The old value defaulted to true, so\nfail rendering if it is set at all rather than silently ignoring an\noverride that disabled the conductor. The pod spec is unchanged apart\nfrom dropping containerPort 5672: the conductor listens on nothing, and\nonly the ClusterIP service below targeted it.\n\nThe chart rendered a ClusterIP service named tacker-conductor on that\nport, which had no working backend and which nothing else in the chart\nuses. Remove it along with manifests.service_conductor and the values\nonly it read (network.conductor and the nfv_orchestration conductor host\nand port). manifests.service_conductor gets no fail guard: ignoring a\nstale override of it changes nothing.\n\nRender a headless service as the StatefulSet\u0027s governing service, under\nthe same manifests.statefulset_conductor value, with no ports and no\nnot-ready addresses (the conductor has no readiness probe). This\ndeviates from the other charts, which name the governing service after\nthe StatefulSet: a service\u0027s clusterIP cannot be changed to None in\nplace, so a headless tacker-conductor would fail the upgrade of every\nexisting release. It is named tacker-conductor-headless instead, which\nlets Helm delete the old service and create the new one in the same\nupgrade.\n\nDefine pod.lifecycle.upgrades.statefulsets, which the chart did not\ncarry, so kubernetes_upgrades_statefulset renders an explicit\nupdateStrategy.\n\nAssisted-by: Claude Opus 5.5\nChange-Id: I965f669e52e074c5589a546b2df43f47d62fbff0\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/da295398eb1d9a8f6594d00c9a2fe9c9c88a8c50"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/da295398eb1d9a8f6594d00c9a2fe9c9c88a8c50"}]},"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":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"}}]}],"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":""}}}]}
