[RFE] Move configdrive to an auxiliary table

Bug #2046428 reported by Dmitry Tantsur
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Triaged
Wishlist
Unassigned

Bug Description

Config drive can be a large base64 encoded blob of information. Given the current maximum size of 64M, the text version can be up to ~85M in size. In deployments without Swift, all this enormous amount of information is stored inside instance_info and thus loaded/saved on every database operation with the node during deployment. Fortunately, being a secret, it's not passed through API by default, but it does get passed through the RPC bus every time the node is loaded.

In reality, the configdrive is only written and loaded once per deployment. We can save a lot of database and RPC traffic by not having it as part of the Nodes table.

Let us create a new model ConfigDrive with only two fields: node_id (primary key, foreign key to nodes) and data (large text, JSON encoded). As with other subresources, it will be loaded by a TaskManager on demand. For backward compatibility, the reading code will also check instance_info.

TBD: strictly speaking, this is an API-visible change, even if the only thing that disappear for most consumers is 6 star symbols hiding the configdrive. Should we microversion around it?

Dmitry Tantsur (divius)
description: updated
tags: added: rfe-approved
removed: rfe
Dmitry Tantsur (divius)
tags: added: low-hanging-fruit
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.