16:00:19 #startmeeting OpenStack Ansible Meeting 16:00:20 Meeting started Thu Jan 28 16:00:19 2016 UTC and is due to finish in 60 minutes. The chair is odyssey4me. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:22 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:00:24 The meeting name has been set to 'openstack_ansible_meeting' 16:00:34 #topic Agenda and rollcall 16:00:38 o/ 16:00:39 o/ 16:00:39 o/ 16:00:40 \/ 16:00:49 \o/ 16:00:56 o/ 16:00:58 o/ 16:01:12 word 16:01:23 0/ 16:02:45 \o 16:04:12 hughsaunders: sanders palabra 16:04:13 https://wiki.openstack.org/wiki/Meetings/openstack-ansible#Agenda_for_next_meeting 16:04:18 lol 16:04:22 :) thanks automagically 16:04:35 right, welcome everyone! 16:04:39 cloudnull: I looked that up on UD last time 16:04:49 NSFW 16:05:09 Today we're going to discuss https://etherpad.openstack.org/p/openstack-ansible-multi-os-support specifically to try and break down the work 16:05:25 we'll focus on that for the first 30 mins, then move on to other topics 16:05:28 https://blog.flameeyes.eu/2013/03/autotools-mythbuster-automagically-disabled-dependencies 16:05:31 o/ 16:05:36 o/ 16:05:38 that's what automagic means to me 16:06:12 odyssey4me: should we have a seperate etherpad for this pre-work? 16:07:07 prometheanfire I'd rather not - let's work on this for now and break it down more - then each stage can be broken out 16:07:17 ok 16:07:33 so, I think we should target non-voting gates 16:08:33 ok, let me give a quick brakdown of the stages I think the work can be broken down into 16:08:54 the first is simply doing enablement in the existing roles 16:09:20 ie still supporting only ubuntu, but changing the tasks and variables in such a way that the flow caters for other platforms 16:09:48 an example of how this can be done is in https://github.com/openstack/openstack-ansible/blob/master/tests/roles/bootstrap-host/tasks/main.yml 16:09:50 +1 16:10:03 right 16:10:23 I'd like to talk a little about pre-work even before osa work gets started 16:10:37 so, for example, the packages to install are separated into vars which are OS specific 16:10:55 eg: https://github.com/openstack/openstack-ansible/blob/master/tests/roles/bootstrap-host/tasks/main.yml#L23-L30 and https://github.com/openstack/openstack-ansible/blob/master/tests/roles/bootstrap-host/vars/ubuntu.yml 16:11:11 prometheanfire what sort of work do you mean? 16:11:13 I'm also for the idea of adding in a NV gate for a given OS that we want to support regardless if the project supports it at that time . we can then work on getting that test to pass. 16:11:47 its more load on the gate but sets a direction of the project for the given cycle 16:11:51 please use the etherpad to add items under the 'work breakdown' section 16:11:55 https://github.com/cloudnull/os-ansible-deployment/tree/master-rhel 16:12:02 odyssey4me: ok 16:12:18 note that prior art is already set in another section of the etherpad 16:12:27 disk-image-builder needs support for the given OS 16:12:40 along with the simple-init and growroot elements 16:12:49 and prior art is often outdated, so I really feel that it's useful for reference, but not necessarily something that should be copy-pasted 16:12:54 mattt: thx 16:13:25 glean needs support for your OS, which is an openstack-infra project 16:13:43 prometheanfire sure, but I think we need to be careful initially to leave that out of scope for the project - we should rather say that we can only add support for platforms which openstack-ci already has images for 16:13:57 ++ the master rhel stuff is a bit dated 16:14:12 if anyone wants to add additional images to openstack-ifra, that needs to be outside the scope of this work - at least to start with 16:14:26 most of the elements here need support for your OS https://github.com/openstack-infra/project-config/tree/master/nodepool/elements along with support for installing actual packages from https://github.com/openstack/requirements/blob/master/other-requirements.txt 16:15:00 odyssey4me: it's outside the scope of this work but I think it should be mentioned so that people know where they need to start 16:15:28 once all that prework is done I feel we should add a non-voting gate-job even if it's just periodic 16:16:22 we can add an experimental job which can be kicked off on demand 16:16:25 seperate from that, prep work can occur in OSA 16:16:39 it'll be non-voting, but will never kick off unless it's specifically requested 16:16:44 odyssey4me: that'd probably be best until it's somewhat workable 16:17:11 once it's 'stable' periodic or primary gate job would be nice 16:17:57 but that can be discussed at a later time 16:18:04 once it's stable, then we switch it to a per commit non-voting job for a two week cycle 16:18:10 I also think with the role separation we can add support for various OS 's on a per role basis 16:18:14 if it proves stable through that phase, we switch it to voting 16:18:24 odyssey4me: agreed 16:18:30 cloudnull++ 16:18:33 so we will be gating on every supported OS? is that the goal? 16:18:36 cloudnull: yep 16:18:37 which means we can add additional OS testing on the same per role basis 16:18:42 kind of feels like we have enough challenges gating against ubuntu only 16:18:44 I think a good place to start will be in the roles that are already separated 16:18:51 mattt: no i hope not 16:19:12 but i would like to see CentOS in the coming cycle 16:19:18 for the remainder of this half hour I feel like we should specificly list out the OSA work needed 16:19:36 cloudnull: i see value in centos, but i'm concerned when we start talking about fringe distros 16:19:38 mattt: I'd hope not too - IMO CentOS/RHEL is the broader target 16:19:39 mainly spliting out vars/roles, mostly/only in the host side for the first pass 16:19:44 cloudnull can you add that to the etherpad under 'platforms to target' ? 16:20:08 mattt: Yeah...I'd say if someone wants to try making PuppyLinux work, that's cool, but it's on them 16:20:36 prometheanfire can you please add next to each platform which already have openstack-ci images, and which don't 16:22:02 please add votes next to each platform indicating that you'd like to see it 16:22:07 odyssey4me: ok 16:22:09 the votes will determine the priority 16:22:39 I will say gentoo is the one I'm activly working on 16:22:52 I want mitaka to be the last version of openstack I package 16:23:03 odyssey4me: Maybe votes would be one you're willing to work on? 16:23:48 palendae I'd rather have votes based on actual need/desire for the platform. ie do you want this for the purpose of a use-case you have 16:23:59 ok 16:24:02 not necessary some deployers are simply interested in the supportability of a different distro which would be nice for them to test if they dont want to or have the capacilty to work on the specific code 16:24:18 prometheanfire: what OS specifically are you looking for support in diskimage-builder? 16:24:35 pabelanger: gentoo, see the patches linked in the etherpad 16:24:44 ah 16:24:54 lol, better to add your own +1 to the platfor, not removing other votes 16:24:56 I have basic support in already, but those patches are the rest 16:25:01 that way we can tell who wants what :p 16:25:23 Ah, I was the first offender there, my bad 16:25:37 ok - the voting can continue in time - the initial work actually doesn't relate directly to a platform 16:25:38 So evidently one person has voted +3 on centOS and Ubuntu ;) 16:25:57 if we do this right, hopefully each platform's differences will be minor 16:26:05 I wonder who the fedora person was :P 16:26:16 odyssey4me: agreed 16:26:29 and to be clear, we are targeting host side first and only for now 16:26:47 well, let's chat about approaches here 16:27:03 does -1 mean your are going to sabotage it? 16:27:07 one way we can break this down is to consider focusing on multi-os enablement everywhere 16:27:29 and another could be to do something like enablement for compute/storage/swift nodes and ignore the control plane 16:27:33 prometheanfire: that was me, i'm strongly against fringe distros :) 16:27:45 another is to only do host stuff and leave the containers alone 16:28:29 odyssey4me: at least at first I'd like to just target host (which include compute/cinder/swift as they are metal) 16:28:32 personally I kind-of think that we can do it everywhere, and a deployer can choose where to apply it 16:28:35 prometheanfire: I was fedora, but ¯\_(ツ)_/¯ 16:28:39 can trusty containers run on vivid/systemd ubuntu? 16:29:04 I don't think this will add that much overhead, assuming we have people interested in assisting where a patch doesn't work on a different platform 16:29:12 we can eventaully do it everywhere, supporting only host side is just about splitting up the work 16:29:36 How would the baremetal flag affect this choice? 16:29:51 oneswig: good question 16:29:58 prometheanfire sure, considering the currently broken out roles I think that it's largely going to start on the hosts anyway 16:31:09 oneswig yeah, I think this is going to create a bit of adventuring :) 16:31:09 oneswig: I think that's something we will have to solve ongoing 16:31:17 logan-: yes they can , however i'd when we introduce new OS support i'd like to see about keeping the container images the same 16:31:46 so cent7 == cent7 containers etc... 16:31:47 cloudnull sure, to start with at least 16:32:12 well, that's what we test with - if a deployer wants to mix and match then it's their choice 16:32:16 i would rather not have cent7 w/ trusty containers. 16:32:20 we have to limit our test matrix to be practical 16:32:35 oneswig: what do you mean? 16:33:02 ya 16:33:12 oneswig prometheanfire I think the onmetal flag effect means that we will effectively have to do the enablement on everything 16:33:14 where are containers sourced from again? 16:33:19 we can't really choose 16:33:20 IIRC you can deploy OS-A without containers, which puts all into the host system. In this mode there's no separation 16:33:26 odyssey4me: ya, probably 16:33:41 prometheanfire: lxc templates 16:34:08 prometheanfire I'm working on a patch to make the image build more generic, which will make this work easier 16:34:15 oneswig: yes . so i think if we introduce a new os all components need to support that os 16:34:48 ok, can we put some notes into the work breakdown about things we know will be different between OS's and OS versions 16:34:56 so should we have a more generic gate job that tests onmetal for everything? 16:34:59 eg: init vs systemd 16:35:04 package names 16:35:26 network interface management 16:35:52 oneswig: isn't that handled by iproute2? 16:36:17 Probably more like /etc/network/ vs others 16:36:26 Where config files go 16:36:27 we write to that? 16:36:33 and config file format 16:36:34 prometheanfire: not sure, I do some manual steps on systems for network config that are distro-specific 16:36:45 oneswig yeah, 'network configuration mechanisms' 16:37:40 I'm 3 weeks out of touch, wasn't this all in an etherpad? 16:37:53 oneswig https://etherpad.openstack.org/p/openstack-ansible-multi-os-support 16:37:53 oneswig: https://etherpad.openstack.org/p/openstack-ansible-multi-os-support 16:37:58 thx 16:38:00 we're recodring notes in there right now 16:38:19 That pad existed, we're doing a work session to flesh out more details 16:38:35 duh, really should arrive on time :-) 16:41:12 odyssey4me: so, for osa, first thing that needs done is spliting out 14.04 into OS specific roles 16:41:23 hello all 16:42:24 hey 16:42:27 o/ michaelgugino 16:42:57 sorry, I was stuck in a meeting. 16:43:16 meeting still in progress? 16:43:27 ya, still working on https://etherpad.openstack.org/p/openstack-ansible-multi-os-support 16:43:28 michaelgugino: https://etherpad.openstack.org/p/openstack-ansible-multi-os-support 16:44:24 prometheanfire I don't think there needs to be OS specific roles at all 16:44:42 roles was probably the wrong word :P 16:44:54 I think that we can use common roles, but do task inclusion splits for special tasks based on Ansible's knowledge of the target host 16:44:57 -1 for os specifc roles 16:45:14 ya, that's what I meant 16:45:41 odyssey4me: do we have time to loop back to the ansible roles I am working on and seeing if adding them to this team is a good fit? 16:45:45 If we set on Ansible 2.0 we get this http://docs.ansible.com/ansible/package_module.html 16:45:46 Not sure if its been mentioned but do we need to account for multiple OSes on the control host? 16:45:47 ok, so how do we break this down into small enough parts 16:46:05 pabelanger it looks like we'll be quite busy with this until the close of the meeting 16:46:05 oneswig: yay! 16:46:15 pabelanger can you add it to the next meeting's agenda please? 16:46:19 odyssey4me: sure 16:46:50 oneswig: Yeah - the trick is moving to ansible 2.0 along with openstack services AND OS versions 16:47:20 that's quite a trick 16:47:33 Indeed 16:47:37 thus endith the trick ! :) 16:47:40 oneswig palendae I'm not entirely a fan of trying to wedge Ansible 2 stuff into this cycle 16:47:48 oneswig: Nor am I 16:47:52 and I think that this work will probably be done in this cycle and the next 16:47:55 Er, odyssey4me 16:47:56 ansible 2 is a big effort, I would think. 16:48:07 But that'll be the hurdle no matter when it happens 16:48:12 so I'm keen to work on what we can with Ansible 1.9x in this cycle, then look an Ansible 2 stuff next cycle 16:48:16 I'd rather backport/reimplement the package module from ansible 2 and include it as a plugin, if necessary. 16:48:21 I'm not saying any of this should target this cycle :P 16:48:44 thanks to the efforts of jmccrory we're there i believe (or almost at least) to be ansible to compatible 16:48:48 Yeah - I'm not advocating ansible 2.0 right now. Just pointing out the migration will be concurrent with lots of other things 16:49:10 I'm not entirely sure that the Ansible 2 install module gives us all that much - this is a simple enough pattern to apply: https://github.com/openstack/openstack-ansible/blob/master/tests/roles/bootstrap-host/tasks/main.yml#L41-L46 16:49:31 palendae: I am running into some problems with 2.0, breakages in general. Just an FYI when porting upwards 16:49:39 pabelanger: Right 16:49:48 Anyway, that's all a digression 16:50:07 ok, so we can break down this work into per-role work, but also into the layers 16:50:26 i like per role, because that means we cna start gating those on different distros pretty much immediately 16:50:27 first we focus on simply changing our tasks so that they don't assume Ubuntu and apt everywhere 16:50:46 and yes, mattt, I think the work should start in the already broken out roles 16:50:49 odyssey4me: I added next steps down below 16:51:19 odyssey4me mattt +1 16:51:27 prometheanfire ah, under 'next steps. 16:51:38 going with the var file per os pattern? 16:51:38 yep 16:51:48 I'm trying to get a task list for myself 16:51:53 so I know what to work on 16:52:19 jmccrory we know it works - are there other options? 16:52:43 no, i think that looks like a good option 16:53:16 i believe we can do conditional includes of var files from the vars/main.yml 16:54:00 cloudnull: it is possibly but the code looked hairy last time I looked 16:54:34 can we allocate people to do the next steps on a specified role - I'm thinking that we can perhaps allow the freedom to choose any method that makes sense as a Spike, then compare when the test is in review? 16:54:38 if it works, then we wont have to use the var load module which comes with its own quirks 16:55:35 ie we have someone work on the galera role, and someone else on the rabbit role - then we compare notes and discuss how much we like the options/methods implemented? 16:55:46 cloudnull: true 16:55:50 I like that idea odyssey 16:55:57 odyssey4me: that sounds good 16:56:08 +1 16:56:12 michaelgugino will you have time to tackle one? 16:56:21 it seems like prometheanfire would like to tackle the other? 16:56:27 yes, I have time tomorrow and next week 16:56:39 any volunteers to tackle a third? the more variety we have, the better the spike 16:56:52 I'm working on DVR changes, and I'm waiting on some input from my network eng/neutron eng, so that's at a standstill for now. 16:56:55 I could do either, it would most likely be me working on it next week 16:57:01 though maybe over the weekend 16:57:46 and what work do we start with for this spike? 16:57:56 galera has a dependency on some other stuff 16:58:00 just the package installs, or do you think systemd support could be fit in? 16:58:01 so perhaps not the right place to start? 16:58:11 cloudnull: what is the base role that we would need to work? 16:58:27 maybe rabbitmq 16:58:35 i'm thinking apt_package_pinning etc. 16:59:25 maybe lxc-hosts 16:59:25 Hm 16:59:33 Maybe I should get my dependency graphs made 16:59:42 Where did I put those last time.. 16:59:51 thats a complex role but is very integral in supporting everything else 16:59:52 ok i think i misunderstood goal here 17:00:00 memcached_server looks easy enough 17:00:01 well, considering that the current focus is just to establish a pattern - the dependent roles will largely be irrelevant I think 17:00:10 i thought we were going to wedge another distro in immediately, but that's not correct 17:00:11 for systemd support work that won't be true 17:00:12 palendae: that would be nice for this 17:00:15 https://dl.dropboxusercontent.com/u/1887128/osa.png 17:00:28 cathy_: Error: Can't start another meeting, one is in progress. Use #endmeeting first. 17:00:30 That's a little dated, I will try to get a doc patch in that builds the dep list 17:00:38 ooh sorry cathy_ - we'll vacate 17:00:44 move to #openstack-ansible 17:00:45 cheers 17:00:46 odyssey4me: thanks! 17:00:47 #endmeeting