14:32:09 #startmeeting rolekit (2015-12-08) 14:32:09 Meeting started Tue Dec 8 14:32:09 2015 UTC. The chair is sgallagh. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:32:09 Useful Commands: #action #agreed #halp #info #idea #link #topic. 14:32:09 The meeting name has been set to 'rolekit_(2015-12-08)' 14:32:09 #meetingname rolekitweekly 14:32:09 #chair sgallagh twoerner nilsph 14:32:09 #topic init process 14:32:09 The meeting name has been set to 'rolekitweekly' 14:32:09 Current chairs: nilsph sgallagh twoerner 14:32:16 .hello twoerner 14:32:17 twoerner: twoerner 'Thomas Woerner' 14:32:27 .hello sgallagh 14:32:28 sgallagh: sgallagh 'Stephen Gallagher' 14:32:39 nils: You around? 14:32:47 (Also, stop changing nicks :-P) 14:32:48 .hello nphilipp 14:32:49 nils: nphilipp 'Nils Philippsen' 14:32:58 #chair nils 14:32:58 Current chairs: nils nilsph sgallagh twoerner 14:33:03 sgallagh: heh, I had to secure "my" nick once it was available :) 14:33:20 sorry for the delay, needed to grab something to drink 14:33:37 No worries 14:33:44 #topic Agenda 14:34:00 #info Agenda Item: Containerized Domain Controller role 14:34:03 other items? 14:34:34 not from my side 14:35:01 not from me 14:35:39 #topic Containerized Domain Controller role 14:36:40 So, for the last few working days, I've been looking at reworking the Domain Controller role to run off of the semi-official Docker container that upstream has out (built atop Fedora 23) 14:37:21 In the process, I've been somewhat reworking how the SystemdContainerUnit class works; I should have some groundwork patches out for review today or tomorrow 14:38:12 The advantage I see with this is that we (Fedora) should be less vulnerable to upgrades breaking our stack, since the FreeIPA image can be tested as a complete unit, rather than a summation of many packages. 14:39:10 It will also mean that we can maintain a repository of domain controller images based on upstream version, rather than necessarily what is the latest RPM in Fedora 14:39:34 (So a user can choose their migration schedule separately from their OS upgrade schedule) 14:41:46 nice 14:41:47 I think this will also provide a good way to actually implement the update() mechanism for this role 14:43:33 I'm expecting this to be ready for review before the Red Hat holiday shutdown 14:45:58 My work-in-progress is being kept at https://github.com/sgallagher/rolekit/tree/dc-container (regularly force-pushed) if anyone is interested in perusing it 14:46:21 So that's all I have on this topic for now. 14:46:29 #topic Holiday Vacation Plans 14:46:37 When are you folks planning to take time off? 14:48:51 twoerner, nils? 14:48:54 Probably only Christmas Eve and New Years Eve for me, thanks to German vacation laws I don't have to take time off when my wife is working. Time to work on some backlog between the holidays. I'll probably make up for it in early 2016. 14:48:58 I think I will be unavailable from 23rd/24th to 1st 14:49:46 hmm. that would be a good idea also.. 14:50:50 Yeah, I'm likely to take the 24th until the new year 14:51:30 OK, so all the bugs go to nils for December :-D 14:51:34 haha 14:52:06 #info sgallagh will be on vacation from Dec. 24th, returning Jan. 4th 14:52:11 that is a nice idea.-) 14:52:57 #info nils will be on vacation Dec. 24th and 25th and taking vacation in early 2016 14:53:56 for not yet defined values of "early", depends on some other folk 14:54:03 ok 14:54:29 I'm lucky in that my wife works in a school system, so her mandatory vacation matches shutdown :) 14:54:37 heh 14:54:52 that is nice 14:55:11 #topic Status Update 14:55:16 my wife works in the German healthcare system, so... 14:55:27 #info See Containerized Domain Controller role for sgallagh update 14:55:55 I submitted some reviews, the most notable is about rudimentary documentation for custom roles. 14:55:57 twoerner: Mind doing a #info on what you've done lately? 14:56:01 Curiously, it even worked. 14:56:11 err, that was supposed to be "twoerner, nils:" 14:56:23 okay I'll start making it formal 14:56:38 nils: What was curious? 14:56:46 #info started to work on issue#7 14:56:52 sgallagh: that it worked 14:56:55 :) 14:57:18 nils: Ambiguous statement: submitting the reviews worked or the custom roles worked? :) 14:57:24 I suspected some hidden pitfall after last time we talked about the topic 14:57:39 This is natural language, it's full of ambiguity :P 14:58:20 #info Added some documentation for adding custom roles, and fixes for some minor nits I found. 14:58:34 nils: Well, we know that dropping files in the right place works... we need documentation on what that file needs to contain and how it works. 14:58:41 And API docs for the common helper routines we write. 14:59:11 Thanks, nils. I'll finish the reviews on those today. 14:59:25 So it needs to go in the rolekit.roles XML/man page, right? 14:59:57 nils: I think it might actually be acceptable for it to be a Markdown document and not part of the man pages 15:00:04 okay. 15:00:10 The API stuff maybe belongs in the man pages 15:00:59 nils: OK, thanks. 15:01:06 twoerner: Could you elaborate a bit on the firewall work? 15:01:47 I started some minutes before the meeting.. nothing ready yet 15:02:23 I have some question though 15:02:27 questions 15:03:32 Sure, go ahead 15:03:47 the firewall requirements in _SETTINGS should still be visible in the initial form after deployment, right? 15:04:07 a new setting key will be needed for applied settings 15:05:16 and the firewall settings will only be made if custom_firewall is not set 15:05:28 twoerner: I'm not actually sure. 15:06:04 Realistically, the firewall in _SETTINGS should probably be like the packages: they're what's needed for the *deployment*, not necessarily the runtime. 15:06:21 we already have firewall-changes for the applied firewall changes in _SETTINGS 15:07:56 OK 15:08:13 I think maybe that the only part that needs to be visible is the firewall_changes. 15:08:37 Because it might be confusing to see both (especially if they differ) 15:09:14 but it also might be good to see if the default firewall settings are applied or not 15:10:06 something that is missing in the issue is that there will be some offset for the ports 15:10:13 if requested 15:11:09 twoerner: I'm trying to say that this should not be considered the "Default" 15:11:28 yes.. then we need a switch to enable this 15:11:45 That the value of that field actually shouldn't be visible *ever*. That it's only internal data. 15:11:58 And that the end-user should only ever see the actual changes 15:12:44 how should the user know the mapping of the ports? 15:13:19 if you are for example mapping several services (ftp, dns, ssh) to other ports 15:13:59 then the user should know which one is used for the services 15:14:19 s/which one/which/ 15:15:01 hmm 15:15:53 That's a hard question. 15:15:55 with a fixed offset it might be simpler - but if ports are low.. 15:16:17 Maybe we "cheat" and just say we only support arbitrary ports for services that only present a single port. 15:16:23 but if available ports are low.. 15:16:32 s/arbitrary ports/arbitrary port selection/ 15:16:32 wow 15:16:45 that is not working for lots of things 15:16:56 twoerner: Yeah :( 15:17:13 Well, maybe not 15:17:28 I mean, most services that require multiple ports are going to rely on well-known ports, aren't they? 15:18:15 this depends on the use case 15:18:47 if you are mapping the ports internally only to be able to have different roles talking to each other, then it might not be an issue 15:18:53 twoerner: OK, another simplifying assumption then: 15:19:57 We don't solve this generically for the roles. Instead, if a role wants to specify a specific port for a service, they have to have an explicit setting for it. 15:20:25 And then we just build a helper routine that opens the appropriate port and adjusts firewall_changes appropriately. 15:21:20 I would say, that this is similar to what we have right now 15:21:21 So the role creator has to call `add_port(port, zone=None)` 15:22:46 twoerner: Not exactly. At the very least, we should stop displaying the firewall and custom_firewall setting 15:22:57 And only show the actual effective changes afterwards. 15:23:28 ok 15:23:54 right now we only show the default for the firewall configuration, as these are applies 15:23:57 applied 15:24:24 Right... my thought is that this probably isn't useful information 15:24:25 and the applied firewall settings are hidden as they only show the changes that have been done 15:24:40 as these are the settings we need to revert 15:24:44 ye, but 15:25:11 what do we do with roles that require to open a port up, that is already open? 15:25:38 it is not opened up be the role, therefore it should not be closed by decommissioning 15:25:58 but it might be visible as open to the role 15:26:07 twoerner: OK, so maybe we have two values: firewall_current and firewall_changes 15:26:16 yes 15:26:16 The latter is hidden and used only for decommission 15:26:37 firewall_current may be a superset (but never a subset) of firewall_changes. 15:26:39 Sound sensible? 15:27:05 yes 15:27:20 Actually, maybe we can just reuse the older 'firewall' name instead of firewall_current. 15:27:38 And just display it as empty in the undeployed role settings 15:28:03 ok.. but please keep in mind that we need the old firewall settings to be able to provide the needed firewall settings to the user before deploy 15:28:20 twoerner: Sorry, why? 15:28:56 Or you mean that it would be telling the user ahead of time what is going to happen to the firewall, assuming no manual changes? 15:29:15 sgallagh: we have all requirements visible for all roles even if they are not deployed 15:29:16 yes 15:29:19 I'm not sure that's useful information from the API. Certainly worthwhile to have in the man pages. 15:29:39 But I don't feel strongly 15:29:46 but then we can also hide all other default settings 15:29:52 like services 15:29:54 packages 15:30:05 twoerner: That was actually going to be my next statement :) 15:30:14 really? 15:30:17 Yes 15:30:22 uhh 15:30:33 why? 15:30:34 We probably only need to inform users of the settings that we want them to twiddle 15:30:44 What we do internally isn't really relevant to them 15:31:41 Actually, 'services' is also not used anymore, so we should scrap that completely. 15:31:56 (Since we now wrap everything in the role-rolename-instancename.service file) 15:32:15 err, s/.service/.target/ 15:33:23 it lacks some transparency then in my opinion 15:33:34 "packages" actually just means the packages needed to do deployment (for example, the memcache role just needs docker and does the deployment with images after that) 15:33:58 That's useful information for the role implementation, but the end-user shouldn't care 15:33:59 yes 15:34:41 shouldn't is good, but it might be goo to know if there are several roles at some point doing similar things 15:34:52 twoerner: similar how/ 15:35:15 dns servers as an example.. named or another one 15:36:02 but if that is not important.. ok.. 15:36:58 twoerner: I'm dropping that firmly in the category of "the admin has to have a minimal level of knowledge of what they're deploying" 15:38:04 ok.. but how - if the information is not visible? 15:39:22 as a bad example: "dns", "dns1", "dns2" 15:39:51 twoerner: Well, their deployment is going to fail when we can't open the requested port 15:40:48 yes, but without getting information on the role before deploying it.. 15:41:07 "life is like a box of chocolate, you never know what you get" :-) 15:41:20 twoerner: I think it's a bit optimistic to assume that people are going to use the rolekit API to find out what port "DNS" uses 15:42:51 I am talking about removing the packet, service and firewall configuration settings form the defaults 15:43:33 with creating this information while deploying there will not be any information for roles that are not deployed 15:45:19 Actually, the package and service values at least should remain invisible *after* deployment as well, I think 15:45:41 'service' isn't a feature we use at all anymore. It's vestigial. 15:46:04 And packages are internal information that may not be actually relevant, particularly in container casess 15:46:16 ok 15:46:43 I mean, if all of our "packages" attributes just show "python3-docker", that's not giving anyone useful info :) 15:47:07 If you want to argue that we should also report the image or nulecule name back, we can add that 15:47:10 I could buy that 15:47:12 yes, not in the docker case.. but it might give information about the source of the docker images instead 15:48:29 just a but of transparency... 15:49:12 s/but/bit/ 15:49:22 ok.. let's stop this here 15:49:53 Yeah, I've got to run the Server SIG meeting in 10 minutes too 15:50:34 twoerner: For now, how about we just suppress this information and add it back later once we've shaken out how everything else works. 15:50:43 yay, I arrived in time for at least one meeting today 15:51:05 Technically two, as I haven't yet done #endmeeting on rolekit 15:51:12 ok, 15:51:37 twoerner: Basically, I view incomplete information as worse than none. 15:51:46 Or at least, misleading 15:52:24 twoerner: OK, let's call it a meeting. Thanks for the discussion. 15:53:04 thanks also 15:53:25 #endmeeting