18:03:41 #startmeeting storyboard 18:03:41 Meeting started Thu Jan 14 18:03:41 2021 UTC and is due to finish in 60 minutes. The chair is SotK. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:03:42 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 18:03:44 The meeting name has been set to 'storyboard' 18:04:07 Hello! 18:04:16 hi everyone! 18:04:31 Happy New Year! 18:04:45 happy new year :) 18:05:00 samesies 18:05:15 I'd link the agenda but its about 6 months old so it feels a bit pointless 18:05:19 Lets skip the part where we all feel guilty and move on to more productive things. 18:05:29 agreed 18:05:35 Lol yeah. I did not update it. I opted for more caffeine instead. 18:05:47 a good choice imo 18:05:58 we can always choose to feel guilty in private later ;) 18:06:08 I always do :) 18:06:24 I quite fancy a meeting where we think about what we want to actually get done in the coming months and start with a fresh agenda next time, unless folk have other ideas 18:06:40 Sounds like a solid plan to me 18:06:42 +1 18:06:46 i'm all for that 18:07:09 alright then 18:07:12 #topic Planning 18:07:17 that seems like a good heading 18:07:22 I do love plans. 18:07:50 i have quite a few things queued up, which all depend on opendev switching the storyboard.o.o deployment to using the container images we've been publishing 18:08:06 so for me at least, that's the top storyboard-related priority 18:08:15 yup, I think that feels like top priority for me too 18:08:21 +2 18:08:35 gets our continuous deployment continuous again, so folks in opendev can take advantage of more recent fixes which have merged 18:09:00 and also unblocks me from making progress on setting up the artifact storage backend 18:09:10 do we know what the concrete steps to get that switch done are? 18:09:11 Yes to all of that. 18:09:18 is it something I can help with somehow? 18:09:50 we do it all at this point with stuff in the system-config repo, including like-production test deployments in zuul jobs 18:10:00 * fungi looks for a good example 18:10:44 #link https://opendev.org/opendev/system-config/src/branch/master/playbooks 18:10:58 the various service-* playbooks in there 18:11:43 service-zuul.yaml might be a good example 18:12:56 the meat of the "zuul" role it refers to is here: 18:12:59 #link https://opendev.org/opendev/system-config/src/branch/master/playbooks/roles/zuul/tasks/main.yaml 18:13:09 so we need something like that for storyboard? 18:15:17 zuul might be an unnecessary complicated example the closer i look at it 18:15:48 There are a lot of parts :) 18:15:50 part of the challenge is that we have a mix of some services which we deploy from containers we build our own forked versions of images for, and some where we consume externally-supplied images 18:16:15 it makes some sense I think, presumably we'll need start and stop tasks like those in https://opendev.org/opendev/system-config/src/branch/master/playbooks/roles/zuul-scheduler/tasks too? 18:17:23 likely 18:17:35 (or just put the docker-compose stuff inside the main file, like the etherpad deployment seems to have I guess) 18:18:29 etherpad isn't python-based but might be a cleaner example: 18:18:33 #link https://opendev.org/opendev/system-config/src/branch/master/playbooks/roles/etherpad 18:19:17 we do a docker-compose file for it in a template like this: 18:19:20 #link https://opendev.org/opendev/system-config/src/branch/master/playbooks/roles/etherpad/templates/docker-compose.yaml.j2 18:19:43 but could just be installed as a normal file if we don't need to parameterize zecrets 18:20:50 the other major part i hinted at earlier is deployment testing 18:22:17 #link https://opendev.org/opendev/system-config/src/branch/master/zuul.d/system-config-run.yaml 18:22:29 Yeeeah.. 18:23:03 if you scroll down to the system-config-run-etherpad job for example, that is a production-like deployment test which exercises all of the deployment tooling for a service 18:23:42 it gives the job two nodes, one of which is our deployment bastion (bridge.o.o) and the other of which is a server to set up as an etherpad instance (etherpad01.o.o) 18:24:13 these aren't our actual production servers, they're just ephemeral job nodes set up similarly at job runtime for testing purposes 18:24:42 you'll see the job runs our actual production deployment playbooks on them though 18:24:43 I'm still following. 18:25:19 So its the playbooks for like service-etherpad and defining the ansible roles we don't have/need to write for storyboard? 18:26:07 basically, whatever we need to glue together the right docker images 18:26:19 that's a really nice testing setup 18:26:44 OK I think I understand what is needed 18:26:46 the other key bit for the testing is the testinfra scripts, which basically exercise their respective services: https://opendev.org/opendev/system-config/src/branch/master/testinfra 18:27:15 so the etherpad one for example just checks that you can reach the api socket over loopback 18:27:32 but we can do far more complex testing of a service, that's a very simple example 18:27:57 anyway, the goal is not to test the software itself, but to test that it was able to deploy and start up correctly 18:28:11 basically exercise the deployment tooling itself 18:28:40 Yeah okay. That makes sense. 18:28:41 makes sense 18:29:09 are you likely to have time to get to this soon, or shall I do some work on it over the next few weeks? 18:29:47 it's really hard to say. i'm often sucked into trying to deal with emergencies (like right now afs is on fire), and that's rarely predictable 18:30:13 so if anybody else is interested in trying to make progress on it, that would be amazing 18:30:54 the up-side to this new deployment+testing model is that you can basically end-to-end test that the proposed deployment will work before we ever stand up a production server for it 18:31:16 we can also fairly easily hold a node from the test job and manually poke it to do more thorough exploration 18:31:34 alright then, I'll make that my priority to work on then 18:31:45 thanks! 18:32:06 Ugh. Flaky WiFi today. 18:32:21 If there's anything I can do to help SotK, let me know. 18:32:31 will do 18:34:05 I think after that's sorted and we've got the blocked stuff moving again, I think the next priority needs to be addressing the impending death of AngularJS 18:34:07 #link https://docs.angularjs.org/misc/version-support-status 18:34:18 I can sign up to do an audit of open patches and see if anything needs updating. 18:34:22 feel free to hit me up with questions or remind me what changes you've pushed for feedback too 18:34:26 Ah yes. What fun. 18:34:47 tbh I'd guess that we're currently on an older version and out of support anyway 18:35:07 Yeah I would guess the same. 18:35:10 i fully expect that to be the case 18:35:22 I know there are a lot of dependencies that need updating. 18:35:30 We had a list of them if I recall. 18:35:52 * SotK expects that list would now contain our entire dependency list 18:35:59 Hahahahahaha 18:36:04 probably so 18:36:09 I really hope not, but probably. 18:37:35 So we need to replace angular.js with something else? 18:37:49 ideally yes 18:38:00 which basically means rewriting the webclient afaict 18:38:26 modern Angular (the ostensible replacement for AngularJS) is quite different 18:38:39 Ughhhh alright. Well I can start some research into alternatives. 18:38:54 to the extent that if we were to be switching to it I'd rather just switch to a nicer framework 18:39:31 I know (I think I know anyway) that zuul uses react for its webclient 18:39:34 right, if it's a full on rewrite to begin with, then evaluating alternatives is prudent 18:40:13 I'm not really familiar with react, though I've used it a bit 18:40:19 Yeah I figured I would look into those two and see what else we have. I can probably put together an etherpad. 18:40:25 yeah, zuul is using react currently 18:40:37 I've used Vue a reasonable amount and am currently using it actively in my day job, so that would be my broad preference 18:41:00 and react seems to rely on a js derivative language called jsx? 18:41:42 indeed, I find it a bit distasteful but have been trying to teach myself to like it xD 18:41:50 I was just about to mention Vue lol 18:41:56 I actually put together a prototype vue storyboard client last year to help me learn vue 18:42:11 Oh nice. 18:42:12 which we could use as a starting point for something if we want to go that route 18:42:44 also probably a good opportunity to fix some places where we ended up with business logic in the client rather than behind api methods 18:43:00 there's an old and broken version of that prototype here: https://storyboard-vue.sotk.co.uk/ 18:43:03 Seems like a reasonable option. I'll add that to my notes. 18:43:07 Thanks! 18:43:20 yeah I think that we can use this as an opportunity to address quite a few issues really 18:43:29 particularly the current search implementation seems liek it does more client-side than it should 18:43:31 * SotK looks pointedly at searching 18:43:39 heh 18:43:54 Yay! I'm back. 18:43:56 LOL 18:45:00 Well I will take the research todo and present my findings next week? 18:45:04 sounds good 18:45:10 Coolio. 18:45:19 I'll try to get that link updated with a working version of what I had 18:46:19 Will wait to check that one out. 18:46:36 I'll start with React and Angular. 18:47:07 got a link handy for info on teh vue framework? 18:47:49 https://vuejs.org/ 18:47:50 ? 18:48:01 https://vuejs.org/v2/guide/comparison.html 18:48:05 perfect, thanks! 18:48:07 might be more helpful 18:48:23 * SotK was just about to send that same link xD 18:48:41 :D 18:49:57 Cool. Then I guess we all have stuff to work on till next week. 18:50:02 yup 18:50:08 We have ten min left in the meeting. 18:50:10 anyone have anything else they want to discuss? 18:50:24 I don't think so. 18:51:18 #endmeeting