Earlier  
Posted Nick Remark
#openstack-sdks - 2019-12-05
16:09:11 gundalow What else could go under `openstack.`?
16:09:21 dtantsur gundalow: we can have a collection per service
16:09:26 gundalow (forgive me, I'm not familiar with all the parts of OpenStack)
16:09:29 dtantsur although it will probably complicate everything
16:09:44 jistr yea i also thing that would complicate it...
16:09:50 dtantsur gtema: we no longer have an official concept of core modules
16:09:58 gtema I don not think collection per service make sense, more a one collection with "core" modules, and perhaps additional ones for some "extra-weird" stuff
16:10:00 dtantsur we could have openstack.openstack and openstack.unofficial
16:10:18 sshnaidm what is "core" modules?
16:10:25 dtantsur let's avoid the term "core", it's a different thing for everyone
16:10:26 jistr gtema, dtantsur: +1 i think that scenario might come up perhaps
16:10:27 gtema well, everything what we have now
16:10:51 gtema and i.e. for some weird provisioning of triple-o infra - there might be openstack.tripleo
16:10:56 sshnaidm everything we have is kinda casual..
16:11:06 sshnaidm it's just what people could made quickly
16:11:40 sshnaidm and I think it will look very different in the end
16:11:40 jistr gtema: +1. So for the ones that are getting imported from Ansible, i'd go openstack.openstack or openstack.core or something like that
16:11:57 gtema yeah, but I think openstack.core.server looks better than openstack.openstack.server or openstack.compute.server
16:12:09 sshnaidm I'd vote for openstack.[service/project] names
16:12:11 pabelanger o/
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..

Earlier   Later