Allow to use Glance image tag to refer to desired Amphora image¶
Currently, Octavia allows to define the Glance image ID to be used to boot new Amphoras. This spec suggests another way to define the desired image, by using Glance tagging mechanism.
The need to hardcode image ID in the service configuration file has drawbacks.
Specifically, when an updated image is uploaded into Glance, the operator is required to orchestrate configuration file update on all Octavia nodes and then restart all Octavia workers to apply the change. It is both complex and error prone.
The spec suggests an alternative way to configure the desired Glance image to be used for Octavia: using Glance image tagging feature.
Glance allows to tag an image with any tag which is represented by a string value.
With the proposed change, Octavia operator will be able to tell Octavia to use an image with the specified tag. Then Octavia will talk to Glance to determine the exact image ID that is marked with the tag, before booting a new Amphora.
Alternatively, we could make Nova talk to Glance to determine the desired image ID based on the tag provided by Octavia. This approach is not supported by Nova community because they don’t want to impose the complexity into their code base.
Another alternative is to use image name instead of its ID. Nova is capable of fetching the right image from Glance by name as long as the name is unique. This is not optimal in case when the operator does not want to remove the old Amphora image right after a new image is uploaded (for example, if the operator wants to test the new image before cleaning up the old one).
Data model impact¶
REST API impact¶
Image tags should be managed by the same user that owns the images themselves.
Other end user impact¶
The proposed change should not break existing mechanism. To achieve that, the new mechanism will be guarded with a new configuration option that will store the desired Glance tag.
If the feature is used, Octavia will need to reach to Glance before booting a new Amphora. The performance impact is well isolated and is not expected to be significant.
Other deployer impact¶
The change couples Octavia with Glance. It should not be an issue since there are no use cases to use Octavia without Glance installed.
The new feature deprecates amp_image_id option. Operators that still use the old image referencing mechanism will be adviced to switch to the new option.
Eventually, the old mechanism will be removed from the tree.
- Primary assignee:
- ihrachys (Ihar Hrachyshka)
- introduce glanceclient integration into nova compute driver
- introduce new configuration option to store the glance tag
- introduce devstack plugin support to configure the feature
- provide documentation for the new feature
Unit tests will be written to cover the feature.
Octavia plugin will be switched to using the new glance image referencing mechanism. Tempest tests will be implemented to test the new feature.
New feature should be documented in operator visible guides.