| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-sdks - 2019-12-05 | |||
| 16:12:18 | dtantsur | I think for many people 'core' may be nova+cinder+neutron+glance+keystone | |
| 16:12:23 | dtantsur | not things like ironic | |
| 16:12:30 | sshnaidm | gtema, openstack.compute.servers is actually as in SDK | |
| 16:12:42 | sshnaidm | and we may align with SDK here | |
| 16:12:46 | jistr | sshnaidm: hmm that does look good indeed | |
| 16:12:51 | gtema | I do not want to end up needing to do "ansible-galaxy collection install nova" | |
| 16:12:58 | gtema | and neutron and ... | |
| 16:13:07 | jistr | we'd force people to fetch multiple collections though... maybe not much of a problem | |
| 16:13:12 | jistr | but i wonder about code sharing | |
| 16:13:36 | ekultails | Would there be a way to have a meta collection that installs all relevant collections? | |
| 16:13:43 | pabelanger | I would recommend openstack.openstack as the collection then you call openstack.openstack.os_nova, or maybe even community.openstack.os_nova | |
| 16:13:44 | jistr | will openstack.<service> pattern complicate *writing* those collections in case we want to share code? | |
| 16:13:51 | dtantsur | we could avoid the problem with code sharing by putting EVERYTHING in openstacksdk | |
| 16:13:56 | sshnaidm | jistr, as we were talking previously there should be definitely common part, like auth for example | |
| 16:14:23 | pabelanger | opentack.openstacksdk.os_nova would work too | |
| 16:14:47 | dtantsur | are we keeping the os_ prefix? | |
| 16:14:50 | sshnaidm | openstack.compute, openstack.network, openstack.tripleo - can it work? | |
| 16:14:51 | pabelanger | but, i think you still want os_nova / os_neutron, otherwie, you will break a ton of playbooks | |
| 16:14:53 | gundalow | FYI you can use https://github.com/ansible-community/collection_migration with a scenario file to pull the contents out of ansible/ansible into the correct structure | |
| 16:14:54 | dtantsur | I guess it was only useful before namespacing? | |
| 16:15:09 | sshnaidm | I dont' think need os_ now, it's a dup | |
| 16:15:11 | gtema | while "openstacksdk" forever, what should it stand for? | |
| 16:15:17 | pabelanger | for ansible/ansible migration, they should all be migrated to single repo | |
| 16:15:18 | pabelanger | and namespace | |
| 16:15:23 | gtema | os_ should be definitely dropped | |
| 16:15:34 | gundalow | If you change the module names, you may break backwards compatibility between 2.9 and 2.10 unless you put in aliasing (symlink) | |
| 16:15:38 | pabelanger | gtema: that is a huge breaking change | |
| 16:15:39 | dtantsur | pabelanger: we're considering some breaking changes anyway, like unifying authentication | |
| 16:16:04 | dtantsur | gundalow: would plain os_nova (without openstack.<something>) work after the migration? | |
| 16:16:04 | pabelanger | if you do, openstack.sdk.os_nova, you could still reference os_nova in your playbook | |
| 16:16:13 | pabelanger | yes | |
| 16:16:15 | dtantsur | mmm, I see | |
| 16:16:19 | gtema | he? is the migration from ansible to collection not a breaking change by itself? | |
| 16:16:30 | dtantsur | it sounds like it's not THAT breaking | |
| 16:16:36 | gtema | you anyway need to change your playbooks | |
| 16:16:38 | dtantsur | or rather: it doesn't break the playbooks | |
| 16:16:43 | gtema | it does | |
| 16:16:43 | pabelanger | I'd say no, you can keep same playbooks for most part | |
| 16:16:57 | gundalow | gtema: There is the idea of a "Community version of Ansible" that will ship with all the collections that make up what's in Ansible 2.9 | |
| 16:17:04 | gtema | you need to refer to modules from collection or import collection | |
| 16:17:23 | dtantsur | I'd seriously regret if we couldn't unify the auth though | |
| 16:17:35 | dtantsur | (and s/os_ironic/os_baremetal/ ) | |
| 16:17:38 | sshnaidm | maybe we can keep migrated ones and develop their replacement aside with new names..? | |
| 16:17:38 | gtema | gundalow, but you anyway need to modify playbook | |
| 16:17:46 | pabelanger | IMO, this goal for migration out of ansible/ansible, would be to use migration tool from ansible-core, then keep naming schema of modules the same | |
| 16:17:56 | gtema | or "community version" will do some extra magic? | |
| 16:18:01 | pabelanger | then do deprecation process on os_nova, os_neutron | |
| 16:18:07 | gundalow | We may add some magic during Ansible 2.10 development that means if you are using the Ansible Community Distribution that you wouldn't need to change your playbooks - Though the exact details of this haven't been worked out uet | |
| 16:18:09 | gundalow | yet* | |
| 16:18:13 | pabelanger | sshnaidm: yah, that would be fine | |
| 16:18:31 | dtantsur | realistically, we should probably do what sshnaidm proposes | |
| 16:18:37 | jistr | +1 | |
| 16:18:46 | dtantsur | I'm not sure we're going to have enough cycles to simultaneously refactor things | |
| 16:19:00 | dtantsur | so maybe keep os_ prefix to designate old modules | |
| 16:19:02 | sshnaidm | we'll just advertise new names for a few versions and then will remove old ones I think | |
| 16:19:03 | dtantsur | and drop it for new ones | |
| 16:19:14 | sshnaidm | dtantsur, ya | |
| 16:19:15 | dtantsur | os_ironic_node is old, baremetal_node is new | |
| 16:19:18 | pabelanger | +1 | |
| 16:19:22 | gtema | perhaps better name them properly now and make alias | |
| 16:19:30 | gundalow | FYI Ansible's deprecation cycle has been 4 major versions, so two years | |
| 16:19:41 | dtantsur | gtema: not everything will be a mere rename | |
| 16:19:57 | dtantsur | gundalow: is it the same for collections? | |
| 16:19:58 | jistr | gtema: separating will allow developing new ones in a common way without worrying about breaking existing use | |
| 16:20:15 | dtantsur | gundalow: to generalize my question: is there an expected release cadence? | |
| 16:20:15 | gtema | I know we are talking about more than simple rename | |
| 16:20:18 | gundalow | dtantsur: unsure | |
| 16:20:22 | gtema | but if we do rename and alias | |
| 16:20:36 | gtema | we can develop some standard, follow it | |
| 16:20:38 | gundalow | dtantsur: at least twice a year (so new Ansible Engine releases can pick up the new contents) | |
| 16:20:49 | gundalow | I'd hope that over time we can get quicker at doing releases | |
| 16:20:51 | gtema | and be consistent in the new modules for those 4 cycles | |
| 16:20:57 | dtantsur | okay, so synchronized with ansible releases? | |
| 16:20:59 | pabelanger | I would go as far, until code is deleted in ansible/ansible (which date is up in the air), we continusoly run migration sync nightly, and make new collection repo read-only, then once ansible/ansible code is deleted, we unfreeze openstack collection | |
| 16:21:06 | gtema | otherwise we have a mix of different patterns | |
| 16:21:08 | pabelanger | this is our plan for ansible network team | |
| 16:21:32 | dtantsur | pabelanger: I'd prefer to freeze only the existing modules, but allow new development | |
| 16:21:37 | gundalow | So, for a moment ignoring refactoring. I don't think you want to break Playbooks that work in Ansible 2.9 | |
| 16:21:46 | sshnaidm | pabelanger, +1 to dtantsur | |
| 16:22:11 | sshnaidm | pabelanger, we'll have old ones for usage, but the main goal is new ones.. | |
| 16:22:22 | pabelanger | sshnaidm: dtantsur: that is fine, but keep in mind, if a nightly sync happens, like proposed bot, we want to avoid conflicts | |
| 16:22:36 | dtantsur | right, so make sure not to modify the same files | |
| 16:22:39 | pabelanger | for me, we need to keep old ones for 2 years | |
| 16:22:43 | pabelanger | even in a collection | |
| 16:22:52 | dtantsur | like, set up gerrit to outright reject changes to os_*.py until we unfreeze | |
| 16:22:57 | dtantsur | s/gerrit/zuul jobs/ | |
| 16:23:01 | gundalow | Once the collection is up and running we can `git rm` the files from ansible/ansible | |
| 16:23:08 | sshnaidm | pabelanger, I think we're good with that | |
| 16:23:30 | pabelanger | yah, once migration happens, if everything is sync'd we can push on git rm on ansible/ansible | |
| 16:23:33 | pabelanger | then freeze is over | |
| 16:23:42 | pabelanger | but, that sync should be a zuul jobs | |
| 16:23:57 | dtantsur | #agreed Import the existing modules as they are and freeze them. Keep syncing until ansible removes them from tree. | |
| 16:23:59 | dtantsur | right? | |
| 16:24:01 | pabelanger | I'm happy to share job for that, as we do it | |
| 16:24:09 | pabelanger | (ansible-network) | |
| 16:24:31 | sshnaidm | #action to collaborate with pabelanger to create sync zuul jobs | |
| 16:24:40 | gtema | for how long do we expect to have this freeze? | |
| 16:24:42 | sshnaidm | pabelanger, thanks, it'd be great | |
| 16:24:55 | sshnaidm | gtema, to keep old modules you mean? | |
| 16:24:58 | dtantsur | sshnaidm: #actions requires <who> | |