)]}'
{"id":"openstack%2Fopenstack-helm~1006032","triplet_id":"openstack%2Fopenstack-helm~master~Ib063887a264ff0801c372a279f3aaad87f136646","project":"openstack/openstack-helm","branch":"master","attention_set":{"37148":{"account":{"_account_id":37148,"name":"Kayo Lourenço Gonçalves da Costa","display_name":"Kayo Costa","email":"kayo.goncalvesdacosta@windriver.com","username":"kayomj"},"last_update":"2026-09-17 16:52:21.000000000","reason":"\u003cGERRIT_ACCOUNT_3009\u003e replied on the change","reason_account":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"}}},"removed_from_attention_set":{},"hashtags":[],"change_id":"Ib063887a264ff0801c372a279f3aaad87f136646","subject":"Fix daemonset merge discarding empty overrides","status":"NEW","created":"2026-09-17 13:26:34.000000000","updated":"2026-09-18 01:47:46.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"cdb0bc8c8454951e4a18324978a67cac4f762d92","_number":1006032,"virtual_id_number":1006032,"owner":{"_account_id":37148,"name":"Kayo Lourenço Gonçalves da Costa","display_name":"Kayo Costa","email":"kayo.goncalvesdacosta@windriver.com","username":"kayomj"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},{"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-17 16:50:20.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":{"disliked":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"all":[{"value":-1,"date":"2026-09-18 01:47:46.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},{"value":1,"date":"2026-09-17 20:51:55.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"},{"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":"","value":-1,"default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},{"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"},{"_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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-17 16:50:20.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-09-17 16:52:21.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":"CC"},{"updated":"2026-09-17 20:51:55.000000000","updated_by":{"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"},"reviewer":{"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"},"state":"REVIEWER"},{"updated":"2026-09-18 01:47:46.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":"b9a9efa90bb3bd8b57c1b7a1c04e91ee5321deda","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37148,"name":"Kayo Lourenço Gonçalves da Costa","display_name":"Kayo Costa","email":"kayo.goncalvesdacosta@windriver.com","username":"kayomj"},"date":"2026-09-17 13:26:34.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"347a8b7aacb88412df639a3480bff36d828c2b19","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-17 16:50:20.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/58d33b2a543d48699207405ad022eed0\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4afc86eb19b34eb0a82f3abf5b0dcb58 : SUCCESS in 3m 23s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/da7c38d2e23b4a6ca4c278fd40a618c4 : SUCCESS in 3m 55s\n- openstack-helm-linter https://zuul.opendev.org/t/openstack/build/ce7f5ef92e7a46bd8b46598b511e4830 : SUCCESS in 3m 15s\n- openstack-helm-mariadb-crd-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/4e165efef21e4b7bbca995c6e1662ba8 : SUCCESS in 1h 48m 06s\n- openstack-helm-mariadb-operator-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/20548d9cab54460c806897accd130290 : SUCCESS in 1h 39m 26s\n- openstack-helm-rabbitmq-crd-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/09ae1012130d4c7280b365ee7e1d79d9 : SUCCESS in 1h 15m 35s\n- openstack-helm-rabbitmq-operator-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/d1b93094868d452da13ef6771c05ab08 : SUCCESS in 1h 16m 22s\n- openstack-helm-pre-commit https://zuul.opendev.org/t/openstack/build/f7bf44441e6b41c097f21e4e268d12c0 : SUCCESS in 2m 54s\n- openstack-helm-build-charts https://zuul.opendev.org/t/openstack/build/2138199294c14b1594bb418cf1f733a9 : SUCCESS in 42m 11s\n- openstack-helm-cinder-2025-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/98f6d3aeb4904a2db89bb67f2de52f94 : SUCCESS in 48m 21s\n- openstack-helm-compute-kit-2025-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/ab8a54f99b164dd4af561ab103ea1cca : SUCCESS in 1h 09m 59s\n- openstack-helm-cinder-2025-2-ubuntu_noble https://zuul.opendev.org/t/openstack/build/892db4da84034c2d8d37c25d27143748 : SUCCESS in 47m 38s\n- openstack-helm-compute-kit-2025-2-ubuntu_noble https://zuul.opendev.org/t/openstack/build/3ec91021ea5943fbb8279378bd9a0a36 : SUCCESS in 1h 18m 17s\n- openstack-helm-cinder-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/8996d6c81230422cbae0b1867eca4c9b : SUCCESS in 46m 09s\n- openstack-helm-compute-kit-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/f1c5d24f345441038d590eec45f6df3d : SUCCESS in 1h 02m 01s\n- openstack-helm-tls-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/d5e4de724e114639902540a7e44f6d76 : SUCCESS in 1h 41m 31s\n- openstack-helm-octavia-2026-1-ubuntu_noble https://zuul.opendev.org/t/openstack/build/ee789b36802140848c55e6a026d4b3ab : SUCCESS in 1h 25m 14s\n- openstack-helm-logging https://zuul.opendev.org/t/openstack/build/23c97d93e5734d7ea3c9d2df04b07494 : SUCCESS in 40m 10s\n- openstack-helm-monitoring https://zuul.opendev.org/t/openstack/build/d7d3c1c06603489b9f5b80c6aba09a85 : SUCCESS in 27m 04s","accounts_in_message":[],"_revision_number":1},{"id":"b027131e6ab37315709d8bbf9891d585981e875c","author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"date":"2026-09-17 16:52:21.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"ddf5a48e5163d29486bbdac0c7b6f58c7de19bd9","author":{"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"},"date":"2026-09-17 20:51:55.000000000","message":"Patch Set 1: Code-Review+1","accounts_in_message":[],"_revision_number":1},{"id":"cdb0bc8c8454951e4a18324978a67cac4f762d92","author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"date":"2026-09-18 01:47:46.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"c0e75ebd3f25cc31d8a4cc80278468c2507ca906","revisions":{"c0e75ebd3f25cc31d8a4cc80278468c2507ca906":{"kind":"REWORK","_number":1,"created":"2026-09-17 13:26:34.000000000","uploader":{"_account_id":37148,"name":"Kayo Lourenço Gonçalves da Costa","display_name":"Kayo Costa","email":"kayo.goncalvesdacosta@windriver.com","username":"kayomj"},"ref":"refs/changes/32/1006032/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-helm","ref":"refs/changes/32/1006032/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/32/1006032/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/32/1006032/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-helm refs/changes/32/1006032/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-helm refs/changes/32/1006032/1"}}},"commit":{"parents":[{"commit":"b86436b559032495b8a8d131878c5db98d377b87","subject":"Merge \"Retire the deployment scripts and dead tooling\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/b86436b559032495b8a8d131878c5db98d377b87"}]}],"author":{"name":"kgoncalv","email":"kayo.goncalvesdacosta@windriver.com","date":"2026-09-17 13:26:02.000000000","tz":-180},"committer":{"name":"kgoncalv","email":"kayo.goncalvesdacosta@windriver.com","date":"2026-09-17 13:26:32.000000000","tz":-180},"subject":"Fix daemonset merge discarding empty overrides","message":"Fix daemonset merge discarding empty overrides\n\nThe daemonset_overrides helper merges each host\u0027s or label\u0027s\nconfig override onto the chart\u0027s base config using Sprig\u0027s\n\"mergeOverwrite\", which is backed by Go\u0027s mergo library. Mergo\ntreats a zero-value (e.g. an empty string, empty map, 0, false)\nin the merge source as equivalent to \"not set\", and silently\nfalls back to the value already present in the merge target\ninstead. This makes it impossible to apply an intentional,\nauthoritative empty or zero override on top of a non-empty base\nvalue: the base value always wins, even when a host\u0027s override\nexplicitly and deliberately sets that field to empty.\n\nOne concrete case where this matters is a host whose data\ninterfaces are VXLAN-only. Such a host correctly has no\nprovider bridge to map, so its computed override for\nbridge_mappings is an empty string. Because of the mergo\nbehavior described above, that empty override is discarded and\nthe chart\u0027s non-empty base value is used instead, pointing the\nagent at a bridge that does not exist for that host.\n\nTo fix this, add a new template,\n\"helm-toolkit.utils.strip_overridden_keys\", that recursively\nwalks the base config and removes any key that the override\nalso defines, regardless of the value assigned to that key in\nthe override. Recursion only descends into keys that are still\nmaps on both sides, so unrelated sibling keys and nested\ndefaults that the override does not touch are preserved; only\nthe specific overridden leaf keys are removed from the base.\n\nThis new template is called immediately before each of the two\n\"mergeOverwrite\" calls in the per-host and per-label override\nloops of _daemonset_overrides.tpl, passing the per-host/per-label\noverride as the source and the base config copy as the target.\nWith the overridden keys removed from the base beforehand,\n\"mergeOverwrite\" has nothing to fall back to for those keys, so\nthe override is authoritative for every key it defines, including\nkeys whose value is empty or zero.\n\nChange-Id: Ib063887a264ff0801c372a279f3aaad87f136646\nSigned-off-by: kgoncalv \u003ckayo.goncalvesdacosta@windriver.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/c0e75ebd3f25cc31d8a4cc80278468c2507ca906"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-helm/commit/c0e75ebd3f25cc31d8a4cc80278468c2507ca906"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","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":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"}},{"label":"Workflow","status":"MAY"}]}],"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":"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":""}}}]}
