Include the URL of your launchpad blueprint:
https://blueprints.launchpad.net/fuel/+spec/neutron-resource-cleanup
On controllers Neutron network resources such as namespaces, interfaces, OVS ports and processes are managed in two unrelated parts of code: Neutron agents and OCF scripts including q-agent-cleanup script. The goal is to move all responsibility to a single point - Neutron.
Right now resource cleanup is performed by external script provided by Fuel (q-agent-cleanup). The script lives in fuel-library repo and it may be changed to re-use code from Neutron. Ideally all cleanup code should belong to Neutron agents as they currently able to manage namespaces, network interfaces, OVS ports and processes.
The proposal in inspired by issues:
The proposed change is mostly related to code refactoring and optimization. It doesn’t suggest changes in the architecture. OCF scripts will remain the entry-point for resource clean-up, however the code will move to Neutron.
Initially we discussed the proposal to move the whole clean-up from OCF to Neutron agents. However there are cases where resources need to be cleared by external stuff.
None
None
None
None
None
None
Restart of agents should become faster when using native APIs instead of shell commands.
None
None
Patches into q-agent-cleanup will be tested with Neutron infra, thus making changes less risky.
None
Implementation
- Move q-agent-cleanup into Neutron tree
- Update Neutron package to install q-agent-cleanup shell utility
- Remove the old script from fuel-library tree
- Optimize resource cleanup to satisfy scale tests
None
Revisit disaster tests, add new if needed. The following cases should be covered: restart of agent, death of agent, banning agent on a particular node. The same scenarios should be ran manually at scale on large numbers (thousands) of networks and routers.
None
None