New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discussion/Question: Adding new functionality for octavia resources #1239
Comments
It would be great to understand the current view on Microversion design from OpenStack developers. |
i'll try to reach out to them (at least the octavia ones) via IRC and/or a proper mailing list |
I had a chat in the
Based on that:
While the second approach seems to be more @ozerovandrei let me know what you think about it and which way seems the preferred one. Also let me know if any further investigation is required. |
Thanks for the research! I guess that the first way looks more preferable because of the less amount of required maintenance. |
Sorry for the delay. I'll prep a PR later this/next week to change the existing features and also add some documentation regarding this. Thanks a lot :) |
Closed with #1249 |
Hello,
This is more of a discussion/question issue to clarify some things i've noticed when adding new functionality for octavia resources. In general octavia has been adding quite some new functionality in new releases that is still missing from the provider.
Using neutronlbass for createOpts and updateOpts
Till now most resources in the Create and Update func have a helper func that creates and returns the createOpts and updateOpts but those are of type neutronlbaas. This has been ok till now but for quite some features new request fields are being added making this setup not really usable. For the resources that will handle new request fields I think just creating to helper funcs will be sufficient. Let me know if i'm missing something.
Handling microversions
Most of these features are microversion dependent., thus handling microversions properly and in a consistent way across resources is sort of needed.
I might be opening a pandora box now. I've read some of the documentation and issues in regards with microversions (openstack, gophercloud doc gophercloud issue ). There are already some helper func for microversions. I went (although not in depth) through the manilla and nova ones. Nova has a open issue. I'm not sure if these function can be re-used or help in general, and if gophercloud offers some utils for this.
From the openstack clouds i have access to (Stein/Train) and from docs there are some notes:
Until now, I was just setting the client microversion to the MinMicroversion required for that feature. If a resource had multiple microversion dependant fields then i just ordered them from lower to higher ensuring that the client microversion will have the highest required microversion. This approach isn't very clear though and does not help for the 2nd point i made above.
Any input/guidance is much appreciated
The text was updated successfully, but these errors were encountered: