Remove Heat

Problem description

As it stands, Karbor uses Heat to restore the resources which had been protected before. Although it works well, some disadvantages are still very obvious. Firstly, Karbor just uses a fraction of functions which Heat supplies so that it seems too heavy to Karbor. Second, for developers of protection plugins, they prefer implementing the restoration of resources by protection plugin itself to Heat. Third, both Karbor and Heat should be deployed at the time, which will add more workload. Last, from the point of view of implementation, Heat stack runs after all the protection plugins’ hooks which breaks the hook definition of ‘on_complete’.

Use Cases

  • Implement restoration of resources by protection plugins themselves.

  • No longer deploy Heat.

Proposed change

There are two main changes. First one, the implementation of restore should be refactored for all protection plugins. At present, there are 4 kinds of plugins in Karbor and the new restore methods are described as below respectively.

  • volume plugin It will create a new volume with original backup volume.

  • image plugin It will create a new image and upload the original backup data to it.

  • network plugin It will create a new network with original backup network.

  • vm plugin It is a bit more complex, because it has several child resources, such as volume, ip. First, it should create a new vm. Second, add the child resources to it, such as attach the volumes, set the ip.

Another change is updating the deployment scripts which will no longer install Heat.



Data model impact


REST API impact


Security impact


Notifications impact


Other end user impact


Performance Impact

There should be no loss on performance, because it does same work as Heat actually.

Other deployer impact


Developer impact

The developers of protection plugins should know these changes.



Work Items

  • refactor all protection plugins

  • update the deployment scripts

  • update the document of developing protection plugin




Unit and fullstack tests in Karbor.

Documentation Impact

Documents about how to develop protection plugin should be updated also.