[openstack-ansible] Installing Third-Party drivers into the Cinder-Volume container during playbook execution
Hello, I asked this into IRC but I thought this might be a more appropriate place to ask considering the IRC channel usage over the weekend. If I wanted to deploy a third party driver along with my Cinder-Volume container, is there a built-in mechanism for doing so? (I am specifically wanting to use: https://github.com/iXsystems/cinder) I am able to configure a cinder-backend in the "openstack_user_config.yml" file which works perfectly if I let it fail during the first run, then copy the driver into the containers and run "os-cinder-install.yml" a second time. I've found that you guys have built similar stuff into the system (e.g. Horizon custom Theme installation via .tgz) and was curious if there is a similar mechanism for Cinder Drivers that may be undocumented. http://paste.openstack.org/show/752132/ This is an example of my working config, which relies on the driver being copied into the /openstack/venvs/cinder-19.x.x.x/lib/python2.7/site-packages/cinder/volume/drivers/ixsystems/ folder. Thanks in advance!
On Tue, May 28, 2019, at 04:10, Henry Bonath wrote:
Hello, I asked this into IRC but I thought this might be a more appropriate place to ask considering the IRC channel usage over the weekend.
If I wanted to deploy a third party driver along with my Cinder-Volume container, is there a built-in mechanism for doing so? (I am specifically wanting to use: https://github.com/iXsystems/cinder)
I am able to configure a cinder-backend in the "openstack_user_config.yml" file which works perfectly if I let it fail during the first run, then copy the driver into the containers and run "os-cinder-install.yml" a second time.
I've found that you guys have built similar stuff into the system (e.g. Horizon custom Theme installation via .tgz) and was curious if there is a similar mechanism for Cinder Drivers that may be undocumented.
http://paste.openstack.org/show/752132/ This is an example of my working config, which relies on the driver being copied into the /openstack/venvs/cinder-19.x.x.x/lib/python2.7/site-packages/cinder/volume/drivers/ixsystems/ folder.
Thanks in advance!
I suppose the community would be okay to have this in tree, so no need for a third party system here (and no need to maintain this on your own, separately). However... if it's just about copying the content of this repo, did you think of packaging this, and publish it to pypi ? This way you could just pip install the necessary package into your cinder venv... Regards, Jean-Philippe Evrard (evrardjp)
I think the idea here, at least for me, would be to have it rolled into the deployment automatically - in a similar fashion to how horizon themes are deployed within Openstack-Ansible. Obviously having this specific driver in the tree would solve my specific issue, but I don't know how many more third party Cinder drivers which are not packaged into the tree people are deploying these days. My question for the community is simply finding out if this mechanism exists already. On Thu, May 30, 2019 at 11:11 AM Jean-Philippe Evrard <jean-philippe@evrard.me> wrote:
On Tue, May 28, 2019, at 04:10, Henry Bonath wrote:
Hello, I asked this into IRC but I thought this might be a more appropriate place to ask considering the IRC channel usage over the weekend.
If I wanted to deploy a third party driver along with my Cinder-Volume container, is there a built-in mechanism for doing so? (I am specifically wanting to use: https://github.com/iXsystems/cinder)
I am able to configure a cinder-backend in the "openstack_user_config.yml" file which works perfectly if I let it fail during the first run, then copy the driver into the containers and run "os-cinder-install.yml" a second time.
I've found that you guys have built similar stuff into the system (e.g. Horizon custom Theme installation via .tgz) and was curious if there is a similar mechanism for Cinder Drivers that may be undocumented.
http://paste.openstack.org/show/752132/ This is an example of my working config, which relies on the driver being copied into the /openstack/venvs/cinder-19.x.x.x/lib/python2.7/site-packages/cinder/volume/drivers/ixsystems/ folder.
Thanks in advance!
I suppose the community would be okay to have this in tree, so no need for a third party system here (and no need to maintain this on your own, separately). However... if it's just about copying the content of this repo, did you think of packaging this, and publish it to pypi ? This way you could just pip install the necessary package into your cinder venv...
Regards, Jean-Philippe Evrard (evrardjp)
The quick answer - no, currently such option is not present for the cinder role. And by far the only way to install some custom things with cinder now is to provide a list of cinder_user_pip_packages[1], so that's why packaging driver into pypi might be an option for distribution of custom drivers. [1] https://opendev.org/openstack/openstack-ansible-os_cinder/src/branch/master/... 03.06.2019, 06:59, "Henry Bonath" <henry@thebonaths.com>:
I think the idea here, at least for me, would be to have it rolled into the deployment automatically - in a similar fashion to how horizon themes are deployed within Openstack-Ansible. Obviously having this specific driver in the tree would solve my specific issue, but I don't know how many more third party Cinder drivers which are not packaged into the tree people are deploying these days.
My question for the community is simply finding out if this mechanism exists already.
On Thu, May 30, 2019 at 11:11 AM Jean-Philippe Evrard <jean-philippe@evrard.me> wrote:
On Tue, May 28, 2019, at 04:10, Henry Bonath wrote: > Hello, I asked this into IRC but I thought this might be a more > appropriate place to ask considering the IRC channel usage over the > weekend. > > If I wanted to deploy a third party driver along with my Cinder-Volume > container, is there a built-in mechanism for doing so? (I am > specifically wanting to use: https://github.com/iXsystems/cinder) > > I am able to configure a cinder-backend in the > "openstack_user_config.yml" file which works perfectly if I let it > fail during the first run, then copy the driver into the containers > and run "os-cinder-install.yml" a second time. > > I've found that you guys have built similar stuff into the system > (e.g. Horizon custom Theme installation via .tgz) and was curious if > there is a similar mechanism for Cinder Drivers that may be > undocumented. > > http://paste.openstack.org/show/752132/ > This is an example of my working config, which relies on the driver > being copied into the > /openstack/venvs/cinder-19.x.x.x/lib/python2.7/site-packages/cinder/volume/drivers/ixsystems/ > folder. > > Thanks in advance! > >
I suppose the community would be okay to have this in tree, so no need for a third party system here (and no need to maintain this on your own, separately). However... if it's just about copying the content of this repo, did you think of packaging this, and publish it to pypi ? This way you could just pip install the necessary package into your cinder venv...
Regards, Jean-Philippe Evrard (evrardjp)
-- Kind Regards, Dmitriy Rabotyagov
Dmitriy, Thank you for answering my question. That's good to know that we can deploy additional pip packages within the container, I'll look into what it takes to package the driver in pypi and start moving in this direction. On Mon, Jun 3, 2019 at 7:25 AM Dmitriy Rabotyagov <noonedeadpunk@ya.ru> wrote:
The quick answer - no, currently such option is not present for the cinder role. And by far the only way to install some custom things with cinder now is to provide a list of cinder_user_pip_packages[1], so that's why packaging driver into pypi might be an option for distribution of custom drivers.
[1] https://opendev.org/openstack/openstack-ansible-os_cinder/src/branch/master/...
03.06.2019, 06:59, "Henry Bonath" <henry@thebonaths.com>:
I think the idea here, at least for me, would be to have it rolled into the deployment automatically - in a similar fashion to how horizon themes are deployed within Openstack-Ansible. Obviously having this specific driver in the tree would solve my specific issue, but I don't know how many more third party Cinder drivers which are not packaged into the tree people are deploying these days.
My question for the community is simply finding out if this mechanism exists already.
On Thu, May 30, 2019 at 11:11 AM Jean-Philippe Evrard <jean-philippe@evrard.me> wrote:
On Tue, May 28, 2019, at 04:10, Henry Bonath wrote:
Hello, I asked this into IRC but I thought this might be a more appropriate place to ask considering the IRC channel usage over the weekend.
If I wanted to deploy a third party driver along with my Cinder-Volume container, is there a built-in mechanism for doing so? (I am specifically wanting to use: https://github.com/iXsystems/cinder)
I am able to configure a cinder-backend in the "openstack_user_config.yml" file which works perfectly if I let it fail during the first run, then copy the driver into the containers and run "os-cinder-install.yml" a second time.
I've found that you guys have built similar stuff into the system (e.g. Horizon custom Theme installation via .tgz) and was curious if there is a similar mechanism for Cinder Drivers that may be undocumented.
http://paste.openstack.org/show/752132/ This is an example of my working config, which relies on the driver being copied into the /openstack/venvs/cinder-19.x.x.x/lib/python2.7/site-packages/cinder/volume/drivers/ixsystems/ folder.
Thanks in advance!
I suppose the community would be okay to have this in tree, so no need for a third party system here (and no need to maintain this on your own, separately). However... if it's just about copying the content of this repo, did you think of packaging this, and publish it to pypi ? This way you could just pip install the necessary package into your cinder venv...
Regards, Jean-Philippe Evrard (evrardjp)
-- Kind Regards, Dmitriy Rabotyagov
On Mon, Jun 3, 2019, at 05:45, Henry Bonath wrote:
I think the idea here, at least for me, would be to have it rolled into the deployment automatically - in a similar fashion to how horizon themes are deployed within Openstack-Ansible. Obviously having this specific driver in the tree would solve my specific issue, but I don't know how many more third party Cinder drivers which are not packaged into the tree people are deploying these days.
My question for the community is simply finding out if this mechanism exists already.
As you might have seen, we have documentation in the cinder role that points to different third party cinder drivers [1]. That's why i think it would be fine to have your specific code integrated into the cinder role. There is a precedent there. This way you would have it part of the deployment automatically. On the technical aspect of the matter, I believe it would be better to package that code into a python package though, so you can install and use it directly. It will reduce the maintainance burden in the long run, and would be easier to test in CI: The OpenStack infrastructure have a cache (or mirror?) of PyPI, and we don't have a mirror of this code. Regards, Jean-Philippe Evrard (evrardjp) [1]: https://docs.openstack.org/openstack-ansible-os_cinder/latest/
participants (3)
-
Dmitriy Rabotyagov
-
Henry Bonath
-
Jean-Philippe Evrard