| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-sdks - 2019-12-12 | |||
| 16:24:45 | gundalow | mordred: yes, BOTMETA supports per file, there are examples, it's just that generally we logically group by directory | |
| 16:24:48 | mordred | gtema: we should probably test both ways | |
| 16:24:56 | mordred | gundalow: cool. | |
| 16:25:04 | mordred | so - let's assume a perfect world for a sec ... | |
| 16:25:11 | pabelanger | gtema: mordred: yes, testing both is safest, that is what ansible network does now | |
| 16:25:32 | mordred | if the botmeta thing works per file and if it exists and does the symlinks and works for pip nad dnf and friends ... | |
| 16:25:36 | dtantsur | gtema: just half past 5, c'mon! | |
| 16:25:42 | mordred | then it should be safe to rename the modules in the collection | |
| 16:25:48 | sshnaidm | ok, so back to the original question, should we keep old modules fully functional as before for not breaking current users? | |
| 16:25:50 | mordred | because we can do a name mapping in botmeta | |
| 16:25:51 | gtema | sure we need to test both, but exactly here we need to "rely" on assumption it works both ways without modifying playbook | |
| 16:25:58 | mordred | people getting the modules through symlinks will not be affected | |
| 16:26:03 | dtantsur | mordred: assuming our auth changes won't end up breaking? | |
| 16:26:08 | mordred | and people using collection explicitly will use colledction paths | |
| 16:26:15 | dtantsur | (and assuming we won't need other per-module breaking changes) | |
| 16:26:27 | mordred | dtantsur: well - it's sounding like there's less implicit breaking than we thought before | |
| 16:26:33 | gtema | let's do all breaking as new modules | |
| 16:26:43 | gtema | with a fresh design | |
| 16:26:44 | mordred | so maybe we should figure out what we want to do with auth and see if we can figure out a way to do it non-breaking | |
| 16:26:47 | dtantsur | gtema: the question was whether we need new modules | |
| 16:26:59 | gtema | sure we need | |
| 16:27:02 | mordred | gtema: I don't want two different designs - we don't have enough people working on this to support that :) | |
| 16:27:11 | pabelanger | +1 | |
| 16:27:12 | mordred | we *barely* have enough people to keep the ones we have going | |
| 16:27:20 | gtema | we currently do not have possibility to manage tags, and I do not really want to modify each module with tagging mess | |
| 16:27:27 | dtantsur | at the very least we need to think how to support all session AND adapter options | |
| 16:27:32 | mordred | yes | |
| 16:27:32 | dtantsur | I think we don't do it now | |
| 16:27:41 | mordred | well - we assume for complex options you'll use clouds.yaml | |
| 16:28:01 | mordred | dtantsur: and you can pass a full clouds.yaml yaml snippet to the cloud parameter of the module too | |
| 16:28:02 | sshnaidm | there are some modules like ironic_node that should be redesigned at all | |
| 16:28:18 | dtantsur | I'm talking simple: {auth_type: none, endpoint_override: https://bare.metal} | |
| 16:28:23 | mordred | that said- if we NEED to redesign a module and deprecate the old one - we should totally do that | |
| 16:28:31 | mordred | dtantsur: that should work by passing to cloud: | |
| 16:28:46 | dtantsur | mordred: in cloud.yaml - yes (well.. maybe) | |
| 16:28:51 | mordred | no - in the module | |
| 16:29:04 | mordred | you can pass _anything_ to cloud: that you can put in a clouds.yaml cloud entry | |
| 16:29:27 | sshnaidm | mordred, I'm afraid changes in openstack.py may require redesign in most of modules.. | |
| 16:29:28 | dtantsur | I remember I had some problem. I need to check. | |
| 16:29:41 | mordred | sshnaidm: they might - and we might need to do some things | |
| 16:30:00 | mordred | I think what I'm saying is that it sounds like ansible/ansible is providing mechanisms to make this not an inhernet breaking change | |
| 16:30:08 | mordred | so our ground cover for making additional breaking changes is lower | |
| 16:30:17 | mordred | so we should at least TRY to not immediately make breaking changes | |
| 16:30:29 | mordred | we might find something that needs to be changed and we can't figure out non-breaking | |
| 16:30:29 | sshnaidm | mordred, deprecating old modules gives you more freedom to break things, then trying to keep backward compatibility | |
| 16:30:36 | mordred | and we'll just need to figure out how to not screw our users | |
| 16:30:42 | pabelanger | yes, please for users, don't break things out of gate :) | |
| 16:30:46 | mordred | sshnaidm: it does. but right now we're just supposing | |
| 16:30:53 | mordred | we don't have an actual thing that must be done that must be breakingm | |
| 16:31:14 | mordred | I agree - we can deprecate, we can copy/modiify - do lots of things | |
| 16:31:16 | mordred | let's just do those | |
| 16:31:34 | mordred | and not immediately jump to "upstream is breaking everyone anyway so we're safe" | |
| 16:31:49 | gtema | ok for me | |
| 16:31:51 | mordred | in fact ... OOH | |
| 16:31:57 | pabelanger | +100 | |
| 16:32:12 | mordred | no - neverind- I thought I had a new idea | |
| 16:32:14 | mordred | :) | |
| 16:32:29 | sshnaidm | ok, so what are we agreed on currently? :) | |
| 16:32:40 | mordred | that everyone here is awesome :) | |
| 16:32:43 | gtema | not to break immediately | |
| 16:32:48 | odyssey4me | I expect we'll be wanting to deprecate the dynamic inventory, given that the plugin interface is better anyway? | |
| 16:32:51 | sshnaidm | we continue to develop modules with old names and trying not to break current users? | |
| 16:32:58 | sshnaidm | mordred, ^^ ? | |
| 16:33:11 | mordred | odyssey4me: that's already dprecated? people should be using the plugin and not the script already | |
| 16:33:25 | mordred | sshnaidm: I think ansible/ansible has a solution for name mapping | |
| 16:33:33 | gtema | sshnaidm not to break != continue with old names for new things | |
| 16:33:41 | mordred | so I think we *can* rename | |
| 16:33:41 | odyssey4me | mordred: one would hope - I guess we could then remove it from ansible/ansible and not put it into the collection | |
| 16:33:50 | mordred | we just have to put the name mapping into botmeta in ansible/ansible | |
| 16:34:08 | sshnaidm | it's akward to have same modules with different names, either I don't understand something.. | |
| 16:34:16 | mordred | odyssey4me: you raise a good question ... can the inventory _plugin_ go into the collection too? | |
| 16:34:22 | pabelanger | yes | |
| 16:34:28 | mordred | sshnaidm: let me try to explain from scratch with an example | |
| 16:34:30 | sshnaidm | mordred, can you bring an example of rename? | |
| 16:34:33 | mordred | let's take os_server | |
| 16:34:36 | gtema | technically everything can go into collection | |
| 16:34:54 | pabelanger | gtema: yup! | |
| 16:35:01 | mordred | we put os_server into our collection, let's call it openstack.api for now (we need to bikeshed on that - but roll with it for a sec) | |
| 16:35:31 | mordred | so then the canonical name of the module ios openstack.api.os_server | |
| 16:35:46 | pabelanger | yes | |
| 16:35:53 | mordred | now - in the ansible/ansible repo there is a yaml file, BOTMETA.yml - and in it we put in an entry like: | |
| 16:36:00 | mordred | openstack.api.os_server: os_server | |
| 16:36:34 | mordred | this will cause ansible, when it builds its distros for pip and whatnot to grab the collection and make a symlink from os_server to openstack.api.os_server | |
| 16:36:45 | mordred | so people who aren't paying attention will have no changes happen to that | |
| 16:36:48 | sshnaidm | yeah, but where is the rename? | |
| 16:36:52 | mordred | hang on | |
| 16:37:11 | mordred | since that is the mechanism, there is then nothing stopping us from renaming the module in our collection to openstack.api.server | |
| 16:37:18 | mordred | and making the mpapping be openstack.api.server: os_server | |
| 16:37:28 | mordred | people using fully qualitied are fine | |
| 16:37:33 | mordred | people using omnibus symlinks are fine | |
| 16:37:36 | mordred | everyone is fine | |
| 16:37:54 | pabelanger | so, if I was do to ansible-galaxy collection install openstack.api I could both do openstack.api.os_server: ... and os_server: ... from playbook | |
| 16:37:57 | mordred | and eventually, in the fullness of time, maybe the synlink mapping goes away | |
| 16:38:01 | mordred | pabelanger: yah | |
| 16:38:02 | pabelanger | without botmeta.yml | |
| 16:38:02 | sshnaidm | mordred, that exactly what I mean, you install os_server and something new like openstack.api.server and it's the same module exactly | |
| 16:38:22 | mordred | pabelanger: right - but that keeps us tied to the old names | |
| 16:38:31 | mordred | botmeta lets us rename in teh collection without screwing people | |
| 16:38:33 | pabelanger | yes, agree | |
| 16:38:54 | pabelanger | so, if we did rename in collection | |