Implements blueprint disable-classic-provisioning Change-Id: I8ceb0653a41c48dfa0b61f58ebf3fc95cf577eed
3.9 KiB
Disable classic provisioning in favor of IBP
https://blueprints.launchpad.net/fuel/+spec/disable-classic-provisioning
In case of classic provisioning fuel engineering team spends a lot of time and effort to support or/and add new features by maintaining simultaneously at least 2 linux distros (Ubuntu and Centos) with quite different native installation mechanisms with their own quirks and limitations.
An alternative way of provisioning - image-based provisioning (IBP, for short) was included in 6.0 under experimental status [1]. Being faster, more reliable and easier to support it has become the default choice for 6.1/7.0
Problem description
Classic provisioning should be removed in favor of IBP, so fuel devs can reduce the overhead and cost of maintaining the additional functionality.
Proposed change
The actual change disables classic provisioning, it doesn't substitute cobbler. The rest of related code will be kept. It means that user won't be able to provision a node by classic way. An error will returned if user tries to perform that.
Alternatives
Spend a lot of time on obsolete and rarely used piece of code which is getting more hard and painful to support if speaking in terms of amount of related won't be fixed bugs.
Data model impact
None
REST API impact
Cluster update method and its handler will be improved in order to disallow classic provisioning to be used for 7.0 or newer environments. If classic provisioning is disallowed, PUT will throw HTTP 405 error.
Upgrade impact
After upgrade end user will be able to provision a new node to existent environment using the way of provisioning which was chosen on the environment creation.
Otherwise, no impact.
Security impact
None
Notifications impact
Users should be informed that after upgrade classic provisioning has been disabled.
Other end user impact
End user will be able to provision a node only with IBP.
Performance Impact
None
Plugin impact
None
Other deployer impact
None
Developer impact
fuel-library: cobbler stuff like kickstart [2], preseed [3], snippets [4] and scripts [5] will become unsupported.
Infrastructure impact
CI jobs for testing classic provisioning is not needed for 7.0
Implementation
Assignee(s)
- Primary assignee
-
Alexandr Gordeev
- QA
-
Yegor Kotko
- Documentation
- Mandatory design review
-
Vladimir Kozhukalov
Work Items
- Remove provisioning related radio button from UI
- All classic provisioning related code in nailgun, astute, and fuel-library will not be touched for 7.0
- Improve cluster's update handler from REST API side
Dependencies
None
Testing
Test case to ensure that a new node could be provisioned via IBP only in 7.0 should be added.
Acceptance criteria
User must not be able to provision a node via classic provisioning in 7.0. Environments provisioned with classic provisioning for 5.x/6.x, should continue to use classic provisioning to add new nodes after upgrade to 7.0
Documentation Impact
Documentation should notify the fact of classic provisioning has been disabled.