Bump DevStack to latest master and follow ML2 option rename - #35
Conversation
Update DEVSTACK_COMMIT for both the controller and the compute images
from a05d26eb to 9b0a0086, the current tip of openstack/devstack master.
This pulls in the latest nova/neutron along with the rest of the
components DevStack installs from source.
DevStack now writes project_network_types into ml2_conf.ini instead of
tenant_network_types ("Start using project_network_types for neutron
ML2", 03db96dc), following the neutron option rename where
tenant_network_types became a deprecated alias. The controller
post-config still set the deprecated key, so oslo.config would have
preferred DevStack's own project_network_types=geneve over our
tenant_network_types=vxlan, leaving project networks on a type the
openvswitch agent does not tunnel.
Set Q_ML2_TENANT_NETWORK_TYPE=vxlan in localrc so DevStack itself picks
vxlan (its default is geneve, meant for ML2/OVN) and rename the
post-config key to match. Verified with DevStack's own meta-config
parser that the rendered ml2_conf.ini keeps project_network_types=vxlan,
mechanism_drivers=openvswitch,l2population and tunnel_types=vxlan,gre.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013WvtSA1Jc1Fhuj65ZDwbkw
The lint job pulls hadolint/hadolint:latest, and a hadolint release picked up DL3064, "Potentially sensitive data should not be used in the `ARG` or `ENV` commands". It fires on `ENV OS_USERNAME=admin` and `ENV OS_PASSWORD=password` in both Dockerfiles, and hadolint exits 1 on warnings, so the lint job has been failing on main since 2026-07-31. Those two variables are the DevStack demo credentials, matching ADMIN_PASSWORD=password in local.conf. They are what makes the `docker compose exec controller openstack ...` usage in the README work out of the box on a development-only image, so ignore the rule the same way DL3008 already is rather than drop the variables. Reproduced with hadolint 2.15.1: both Dockerfiles report the same two DL3064 warnings and exit 1 beforehand, and exit 0 with DL3064 ignored. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013WvtSA1Jc1Fhuj65ZDwbkw
CI is not running: the workflow is disabledNo checks have appeared on this PR because the GitHub auto-disables scheduled workflows in repositories with no activity for 60 days. The last run of any kind was the nightly on 2026-08-17 (run #1309), and there have been none since. This needs a manual re-enable — Actions tab → The lint job was also broken, and is fixed hereWorth knowing before that run happens: the nightly on The lint job runs Those are
Reproduced locally with hadolint 2.15.1: both Dockerfiles emit those two warnings and exit 1 before the change, and exit 0 after it. Suggestion, not included here to keep the diff focused: pinning the lint image (e.g. Generated by Claude Code |
The lint job pulled hadolint/hadolint:latest, so a new hadolint release changed what CI enforces without any change here. That is how DL3064 turned the nightly red for 18 consecutive nights before anyone noticed. Pinning also makes CI match what the DL3064 ignore in the previous commit was verified against, which was hadolint 2.15.1. v2.15.1 currently resolves to the same image as latest, so this is a no-op for the checks that run today, and future hadolint releases become a deliberate bump rather than a surprise. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013WvtSA1Jc1Fhuj65ZDwbkw
CI is greenThe workflow has been re-enabled, and run 33148973944 passed on
Note that Enabling the workflow does not retroactively fire for a PR opened while it was disabled, so the run needed a new push. The hadolint pin in
Generated by Claude Code |
Summary
Update
DEVSTACK_COMMITin both images froma05d26ebto9b0a0086, the current tip ofopenstack/devstackmaster (96 commits). Since DevStack installs nova, neutron and the other components from the tip of their own master branches, this pulls in the latest upstream for all of them.One change in that range needs a matching change here.
The ML2 option rename
DevStack commit
03db96dc"Start using project_network_types for neutron ML2" now writesproject_network_typesintoml2_conf.iniinstead oftenant_network_types, following the neutron rename wheretenant_network_typesbecame adeprecated_namealias.controller/local.confstill set the deprecated key in its post-config. Since oslo.config prefers the current name when both are present in the same file, DevStack's ownproject_network_types=genevewould have won over ourtenant_network_types=vxlan— leaving project networks on geneve, which the openvswitch agent does not tunnel (tunnel_types=vxlan,gre).The fix is two lines:
Q_ML2_TENANT_NETWORK_TYPE=vxlaninlocalrc, so DevStack itself picks vxlan. Its default isgeneve, which is aimed at ML2/OVN — this repo uses ML2/OVS.project_network_types.Verification
Image builds and hadolint could not be run in the environment this was prepared in (the container registries' blob hosts are blocked by egress policy), so CI is the first full run. What was checked instead:
Rendered
ml2_conf.iniusing DevStack's owninc/meta-configparser at the new commit, replayingextract_localrc_sectionandmerge_config_fileexactly asstack.shdoes:The same replay against the pre-change
local.confproduces the broken result that motivated the fix:Also reviewed the rest of the 96-commit range for things touching this setup:
noble(24.04) is still inSUPPORTED_DISTROSinstack.sh.ovs_source/ovn_agent; this repo uses the packaged OVS withQ_AGENT=openvswitch.ENFORCE_NEW_DEFAULTS,KEYSTONE_ENFORCE_NEW_DEFAULTS);test.bashruns as project-scoped admin, which upstream CI exercises with these defaults.NOVA_CPU_CONFis still/etc/nova/nova-cpu.conf, sopre-commit.bashis unaffected.Generated by Claude Code