09:00:37 <chriadam|windows> #startmeeting CalDAV/CardDAV Test Server Planning 09:00:37 <merbot> Meeting started Mon Sep 19 09:00:37 2016 UTC. The chair is chriadam|windows. Information about MeetBot at http://wiki.merproject.org/wiki/Meetings. 09:00:37 <merbot> Useful Commands: #action #agreed #help #info #idea #link #topic. 09:00:46 <chriadam|windows> Hi dr_gogeta86, occirol, lbt 09:00:53 <chriadam|windows> I will stay out of the way as much as possible in this meeting 09:01:02 <chriadam|windows> since I don't know anything about system administration or the Mer infra ;-) 09:01:18 <chriadam|windows> I guess from my POV I would like to see: 09:01:33 <chriadam|windows> 1) concrete plan for setting up the first test server instance (preferably owncloud or nextcloud) within Mer Infra 09:01:46 <chriadam|windows> 2) a timeline for us to aim for (doesn't have to be concrete timeline, but best-effort ETA) 09:02:01 <chriadam|windows> lbt: I guess I'll hand over to you? 09:02:39 <chriadam|windows> I suppose the first step is to find out what you can provide on the Mer infra, and by when. And then we can ask dr_gogeta86 and occirol whether they can use those resources / VMs to set up what we need to do the caldav/carddav testing? 09:03:42 <lbt> in terms of infra we use kvm VMs 09:04:21 <lbt> typically I restrict access pretty heavily for obvious reasons 09:04:41 <occirol> seems fair :) 09:04:47 <lbt> so shell access and suchlike to most infra is just not available - never mind root :) 09:05:19 <lbt> however I think we can set up a more isolated system for this kind of thing 09:05:55 <lbt> I'd want to use a different VPN to connect these machines together and then setup a gateway/firewall for monitoring and potentially remote control 09:06:41 <lbt> ie so the community machines wouldn't be able to reach into the mer infra but we could deploy eg a web api to reach out to the community machines to control them 09:07:06 <chriadam|windows> sounds sensible. are there turnkey OSS solutions to do that sort of thing? 09:07:11 <chriadam|windows> or is it going to be painful to set up? 09:07:48 <lbt> we already have a vpn for all the infra so I 'just' need to setup a new one and then do some iptables on a router/firewall 09:08:18 <larstiq> the point is to get a publically reachable server? 09:08:26 <lbt> larstiq: yes 09:08:30 <larstiq> k 09:08:39 <lbt> and one which can have some kind of reset done on it 09:08:56 <lbt> and, to some degree, share the admin of the service 09:09:07 <larstiq> right 09:09:54 <lbt> so a community guy would manage the owncloud system and probably have root access (ideally just a user but ...) to do updates, DB setup etc 09:10:14 <lbt> they'd certainly have admin access but I'd expect shell to be needed too 09:10:29 <lbt> this model would replicate for every sync service 09:10:55 <lbt> as I say, we use kvm at the moment to spawn VMs 09:11:02 <larstiq> it's a bit hard to say at this point what kind of access is needed after setting it up 09:11:03 <lbt> other solutions include docker 09:11:07 <r0kk3rz> you can mod some vagrant scripts to use kvm for reproducable/updatable vm images 09:11:09 <larstiq> as an example of that: https://github.com/tomav/docker-mailserver 09:11:10 <lbt> larstiq: agreed 09:11:29 <r0kk3rz> which is probably a better idea than using docket 09:11:32 <r0kk3rz> *docker 09:11:55 <lbt> I'm thinking that we should probably aim to have resetable services rather than resetting VMs 09:11:59 <lbt> it feels more sane ? 09:12:01 <chriadam|windows> occirol: from your experience with apache+owncloud services, do you have any comments on what sort of access is required in these vms? 09:12:02 <larstiq> lbt: yeah 09:12:45 <larstiq> r0kk3rz: I'd like to discuss your viewpoints on vagrant, later today? 09:12:49 <lbt> larstiq: do you think this is a good solution for docker-isation? 09:12:55 * larstiq knows of it but not much experience 09:12:56 <lbt> candidate even 09:13:11 <larstiq> lbt: in my personal opinion, yes 09:13:31 <lbt> the main thing I can see is pre-population with a known set of data 09:13:44 <lbt> and I'd *love* to see this as a non-privileged service 09:13:50 * larstiq nods 09:14:16 <lbt> there are IP issues 09:14:18 <larstiq> lbt: both easily doable I think 09:14:29 <larstiq> network, or intellectual property? 09:14:32 <lbt> haha 09:14:32 <r0kk3rz> larstiq: yeah if you want, ive not really used it for anything but it seems like a good thing 09:14:33 <lbt> nw 09:14:47 <occirol> chriadam|windows: well, setting up apache, owncloud, etc would require a certain level of access to the VMs: installing packages, configuring apache files, and a db access 09:15:07 <r0kk3rz> the whole point of it is generating reproducable environments without causing a maintenance nightmare 09:15:08 <lbt> r0kk3rz: occirol: dr_gogeta86.... experience with docker ? 09:15:19 <larstiq> owncloud provides https://hub.docker.com/_/owncloud/ 09:15:33 <lbt> occirol: yeah - that's what I'd like to see inside the docker image 09:15:47 <occirol> lbt: nop, no experience yet 09:15:52 <r0kk3rz> lbt: i did read a really good docker rant, i should find it 09:16:06 <larstiq> r0kk3rz: ooh, reminds me I have nice one for that too 09:16:33 <larstiq> r0kk3rz: https://circleci.com/blog/its-the-future/ 09:17:17 <r0kk3rz> but if you're just going to use the provided docker things verbatim its probably not so bad 09:17:22 <lbt> docker is a well known name - I'm happy to look at other solutions but we need to be reasonable - whatever tech we use we must have the skills and they must commit to working on this 09:18:05 <larstiq> sure 09:18:13 * lbt asks chriadam|windows -- can we use IPv6 here? 09:18:34 <dr_gogeta86> รจ1 09:18:37 <dr_gogeta86> back on track 09:18:50 <chriadam|windows> shouldn't matter so long as it has an externally resolvable host name 09:18:51 <chriadam|windows> I think 09:18:56 <dr_gogeta86> i wanna focus on what we need 09:19:01 <lbt> or would you need v4 ? ... I'm thinking that we'd need to share a very limited number of v4 addresses to all these services (like 1-4) 09:19:01 <dr_gogeta86> like a matrix 09:19:19 <dr_gogeta86> lbt we can expose those services behind a reverse proxy 09:19:22 <lbt> chriadam|windows: yeah - if we can use an aliasing reverse-proxy - but that does bring it's own issues :D 09:19:22 <dr_gogeta86> without problems 09:19:33 <dr_gogeta86> lbt like ? 09:19:42 <lbt> dr_gogeta86: well - try doing streaming of large files :) 09:19:51 <lbt> eg git 09:19:54 <dr_gogeta86> of course 09:19:59 <lbt> or obs logs 09:20:04 <dr_gogeta86> but for caldav purpose 09:20:05 <lbt> or http push 09:20:19 <lbt> yeah - I'm just mentioning that some stuff could hurt 09:20:22 <chriadam|windows> caldav/carddav "should" only need to support simple GET/POST/PUT 09:20:35 <chriadam|windows> etc 09:20:54 <dr_gogeta86> is pretty simple imho 09:20:57 <lbt> *nod* ... but owncloud gui and ajax and clever bugger stuff 09:21:08 <occirol> adding a reverse proxy *could* bring some problems 09:21:37 <lbt> occirol: yeah - just mentioning it - I use that approach for *all* mer services so I know it hurts occasionally 09:21:44 <lbt> otoh I like it :) 09:21:54 <occirol> we have not to forget that it will used for testing purposes, so we need to avoid as much as possible "interferences", imho 09:22:09 <occirol> lbt: I like it too :) 09:22:19 <lbt> occirol: yes. 09:22:35 <lbt> even weird stuff like chunking or content negotiation 09:23:28 <lbt> so .. back to the virtualisation ? 09:23:47 <occirol> so, we are talking about how many services right now ? 3 (owncloud, nextcloud, radicale) ? 09:24:04 <lbt> occirol: lets aim for 10+ eventually 09:24:11 <lbt> also different versions 09:24:32 <chriadam|windows> eventually 09:24:38 <lbt> also we need to consider that a test needs a dedicated instance doesn't it ? 09:24:48 <chriadam|windows> well, not necessarily. 09:24:51 <lbt> what happens if 2 users run a transactional test at once? 09:25:00 <lbt> ie add/modify/delete a contact 09:25:05 <lbt> same test contact 09:25:05 <chriadam|windows> they'll fail. but I'm not seeing these as CI / automated at this stage 09:25:20 <chriadam|windows> it's more like "developer can run a suite of tests, and get results" 09:25:44 <lbt> yeah - I'd like to just consider this for the future 09:25:48 <chriadam|windows> sure 09:26:17 <lbt> ie it would be nice to have a 'give me a hostname to a "personal" caldav server' 09:26:58 <lbt> it's not too hard as long as we realise it's a requirement 09:28:03 <chriadam|windows> right, it depends on the effort required, I guess. I mean, it would be a 10x improvement to have just a single caldav server which I have full control over (e.g. resetable, which I can build some system tests against) 09:28:29 <lbt> chriadam|windows: yeah - that should fall out as stage 1 09:28:44 <lbt> and I'd avoid doing anything fancy so as not to delay it 09:29:10 <lbt> just some personal thoughts on naming and auto-adding vhosts to the rev proxy 09:29:36 <dr_gogeta86> there was also clever mapping scheme 09:29:40 <lbt> hmm and if we use letsencrypt then throwaway certs... 09:29:43 <dr_gogeta86> like map files 09:29:48 <lbt> dr_gogeta86: ? 09:29:59 <lbt> ah rev proxy 09:30:01 <lbt> *nod* 09:30:24 <lbt> larstiq: r0kk3rz: so ... docker ... any more discussion on that? 09:30:37 <lbt> any serious alternatives? 09:30:39 <dr_gogeta86> i don't think so 09:30:44 <larstiq> lbt: as far as I'm concerned I can start on that as soon as you have a vm and a vpn going 09:31:03 <dr_gogeta86> the advantage of Docker is the reproducible env 09:31:06 <lbt> could I run up a single VM and put docker on it and have many user accounts and have them all manage docker images ? 09:31:09 <dr_gogeta86> I' can work with it locally 09:31:29 <larstiq> lbt: yes 09:31:50 <lbt> so that really sounds like a jfdi for docker then :) 09:31:51 <larstiq> lbt: need to take some care perhaps with clashing ports usage, but with a proxy that becomes trivial 09:31:57 <lbt> *nod* 09:32:32 * lbt is thinking of an automated on-demand image deployment at some point 09:32:33 <dr_gogeta86> lbt first we need the image tailored 09:32:39 <lbt> yep 09:33:05 <dr_gogeta86> We need at least container for different owncloud versions out there 09:33:13 <dr_gogeta86> from 7 to 9 ( nextcloud ) 09:33:18 <lbt> what OS on the VM ... Debian OK ? (please) 09:33:29 <dr_gogeta86> better without systemd 09:33:33 <dr_gogeta86> :-D 09:33:37 <lbt> really? 09:33:46 <r0kk3rz> systemd is fine :P 09:33:50 <dr_gogeta86> systemd inside container can be a pain in the but 09:33:51 <lbt> I can believe that from a cgroups PoV 09:33:56 <larstiq> dr_gogeta86: we can start with https://github.com/docker-library/owncloud as a base 09:34:16 <larstiq> dr_gogeta86: but outside systemd is fine 09:34:21 <dr_gogeta86> sure 09:34:35 <dr_gogeta86> but i think to another problem for people like chriadam|windows 09:34:36 <larstiq> lbt: Debian on the VM please :) 09:34:43 <dr_gogeta86> a simple way to check logs 09:34:45 <lbt> good 09:34:51 <dr_gogeta86> and enter into the machne 09:34:55 <larstiq> dr_gogeta86: right 09:35:13 <dr_gogeta86> we are going to build an infra for developers 09:35:19 <dr_gogeta86> not for sysadmins 09:35:20 <larstiq> dr_gogeta86: do you have a solution or do we need to think about that a bit? 09:35:25 <dr_gogeta86> keep in minnd 09:35:27 <dr_gogeta86> *mind 09:35:27 * larstiq nods 09:35:36 <dr_gogeta86> i need to check those docker files 09:35:51 <r0kk3rz> there are docker organisers like kubernetes 09:35:54 <dr_gogeta86> usually i do it myself 09:36:31 <dr_gogeta86> r0kk3rz, temptation is hard but KISS 09:36:55 <lbt> r0kk3rz: it feels to me like we first need our team to develop docker images 09:37:16 <larstiq> worst comes to worst there is `tail -F /var/lib/docker/containers/**/*.log` ;) 09:37:18 <lbt> then we look at image deployment solutions 09:37:20 <dr_gogeta86> docker comes with theis logs 09:37:25 <dr_gogeta86> chriadam|windows, got a testbed plans ? 09:37:25 <lbt> does kubernetes fall into the deployment side ? 09:37:25 <larstiq> r0kk3rz: that's overkill here 09:37:27 <dr_gogeta86> abranson_, too 09:37:37 <dr_gogeta86> larstiq, not at certain point 09:37:37 <lbt> 'cos I'm OK with manual-ish deployment in phase 1 09:37:37 <larstiq> lbt: yes, but not going to need that at the start 09:37:55 <lbt> good 09:37:56 <lbt> chriadam|windows: will be happy 09:37:56 <chriadam|windows> dr_gogeta86: to begin with, the tests will be simple (e.g., trigger a sync, inspect db, ensure content is expected) 09:38:01 <lbt> chriadam|windows: and get logs if it's not 09:38:16 <lbt> but that should be part of the image really 09:38:19 <dr_gogeta86> from bugzilla pov ... got reports from which caldav servers ? 09:38:35 <larstiq> lbt: let's jfdi 09:38:41 <lbt> ROFL 09:38:47 <lbt> was about to say that 09:39:34 <chriadam|windows> ok, so, concretely, what's the plan? 09:39:37 <lbt> so setup a VM with Debian and give it ports 80/443 on an external IP ... more on demand 09:39:47 <r0kk3rz> larstiq: yes, i said 'like' :P turns out theres a few simpler ones that just have a webui of whats running 09:40:13 <lbt> larstiq: install docker from debian packages or ? 09:40:13 <dr_gogeta86> lbt, lgtm 09:40:17 <larstiq> lbt: depends on version 09:40:19 <larstiq> lbt: we can figure that out offline 09:40:29 <lbt> r0kk3rz: can you setup a docker image as a user with such a thing ? 09:40:29 <lbt> larstiq: +1 09:40:29 <dr_gogeta86> we don't need fancy things for now 09:40:42 <dr_gogeta86> lbt go head for debian/devuan 09:41:17 <larstiq> r0kk3rz: first let's just get 1 owncloud instance up. Then it's just "is it running yes/no" ;) 09:41:20 <lbt> r0kk3rz: because I'm happy if you experiment and demo docker managers within your docker images 09:41:36 <lbt> but yeah - as a team we focus on what larstiq just said :) 09:41:39 <larstiq> lbt: docker/docker-compose are really plenty at the start 09:42:07 * lbt is looking forward to playing with this tech too 09:42:26 <lbt> OK .. I'm good I can set this up over the next couple of days 09:42:49 <lbt> I want to put up a new VPN and a firewall/router 09:43:03 <lbt> I'll play with LDAP accounts 09:43:21 <lbt> I'll post requirements for shell ssh keys etc too 09:43:22 <dr_gogeta86> i hope not openvpn 09:43:36 <lbt> we won't be exposing it 09:43:44 <lbt> this is a management VPN 09:43:58 <lbt> (and it's tinc for now - OVS soon probably) 09:44:20 <lbt> ssh shell access via a port (probably 2222) 09:44:47 <lbt> some minor ssh key management requirement stuff too 09:45:25 <lbt> so ... are we done ? 09:45:31 <chriadam|windows> just so sum up: 09:45:48 <chriadam|windows> 1) lbt will create the VM and install docker in it, get LDAP accounts set up, and give details to dr_gogeta86 and occirol 09:46:01 <chriadam|windows> 2) dr_gogeta86 and occirol will then ... get a docker image up and running with OwnCloud on it? 09:46:09 <chriadam|windows> 3) someone will let me know when that's done and how to use it 09:46:11 <chriadam|windows> ? 09:46:12 * LarstiQ inserts his name in there somewhere 09:46:22 <chriadam|windows> LarstiQ: does stuff I don't understand to make it work ;-) 09:46:31 * lbt will share setup with LarstiQ 09:46:59 <chriadam|windows> dr_gogeta86: occirol: ok, I will ping you guys this time next week to see what our status is 09:47:03 <chriadam|windows> if that makes sense to everyone? 09:47:08 <dr_gogeta86> ok for me 09:47:51 <lbt> chriadam|windows: another meeting this time next week ? 09:47:57 <chriadam|windows> it might take a couple of weeks for lbt + LarstiQ to get the VM etc setup done - depends on what crises occur in Jolla ;-) 09:48:09 <chriadam|windows> but if we weekly track progress, that might be helpful / keep everyone on same page 09:48:19 <lbt> *nod* ... I'm happy to do weekly updates.... yeah 09:48:19 <chriadam|windows> lbt: I think so, would be good, if everyone is ok with it 09:48:26 <chriadam|windows> great 09:48:31 <chriadam|windows> ok, thanks everuone - much appreciated! 09:48:36 <chriadam|windows> ending meeting in 5... 09:48:37 <occirol> ok, I think :) 09:48:47 <chriadam|windows> 3 09:48:50 <chriadam|windows> 2 09:48:51 <chriadam|windows> 1 09:48:53 <chriadam|windows> #endmeeting