18:03:41 <SotK> #startmeeting storyboard 18:03:41 <openstack> 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 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 18:03:44 <openstack> The meeting name has been set to 'storyboard' 18:04:07 <diablo_rojo> Hello! 18:04:16 <SotK> hi everyone! 18:04:31 <diablo_rojo> Happy New Year! 18:04:45 <SotK> happy new year :) 18:05:00 <fungi> samesies 18:05:15 <SotK> I'd link the agenda but its about 6 months old so it feels a bit pointless 18:05:19 <diablo_rojo> Lets skip the part where we all feel guilty and move on to more productive things. 18:05:29 <SotK> agreed 18:05:35 <diablo_rojo> Lol yeah. I did not update it. I opted for more caffeine instead. 18:05:47 <SotK> a good choice imo 18:05:58 <fungi> we can always choose to feel guilty in private later ;) 18:06:08 <diablo_rojo> I always do :) 18:06:24 <SotK> 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 <diablo_rojo> Sounds like a solid plan to me 18:06:42 <diablo_rojo> +1 18:06:46 <fungi> i'm all for that 18:07:09 <SotK> alright then 18:07:12 <SotK> #topic Planning 18:07:17 <SotK> that seems like a good heading 18:07:22 <diablo_rojo> I do love plans. 18:07:50 <fungi> 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 <fungi> so for me at least, that's the top storyboard-related priority 18:08:15 <SotK> yup, I think that feels like top priority for me too 18:08:21 <diablo_rojo> +2 18:08:35 <fungi> gets our continuous deployment continuous again, so folks in opendev can take advantage of more recent fixes which have merged 18:09:00 <fungi> and also unblocks me from making progress on setting up the artifact storage backend 18:09:10 <SotK> do we know what the concrete steps to get that switch done are? 18:09:11 <diablo_rojo> Yes to all of that. 18:09:18 <SotK> is it something I can help with somehow? 18:09:50 <fungi> 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 <fungi> #link https://opendev.org/opendev/system-config/src/branch/master/playbooks 18:10:58 <fungi> the various service-* playbooks in there 18:11:43 <fungi> service-zuul.yaml might be a good example 18:12:56 <fungi> the meat of the "zuul" role it refers to is here: 18:12:59 <fungi> #link https://opendev.org/opendev/system-config/src/branch/master/playbooks/roles/zuul/tasks/main.yaml 18:13:09 <diablo_rojo> so we need something like that for storyboard? 18:15:17 <fungi> zuul might be an unnecessary complicated example the closer i look at it 18:15:48 <diablo_rojo> There are a lot of parts :) 18:15:50 <fungi> 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 <SotK> 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 <fungi> likely 18:17:35 <SotK> (or just put the docker-compose stuff inside the main file, like the etherpad deployment seems to have I guess) 18:18:29 <fungi> etherpad isn't python-based but might be a cleaner example: 18:18:33 <fungi> #link https://opendev.org/opendev/system-config/src/branch/master/playbooks/roles/etherpad 18:19:17 <fungi> we do a docker-compose file for it in a template like this: 18:19:20 <fungi> #link https://opendev.org/opendev/system-config/src/branch/master/playbooks/roles/etherpad/templates/docker-compose.yaml.j2 18:19:43 <fungi> but could just be installed as a normal file if we don't need to parameterize zecrets 18:20:50 <fungi> the other major part i hinted at earlier is deployment testing 18:22:17 <fungi> #link https://opendev.org/opendev/system-config/src/branch/master/zuul.d/system-config-run.yaml 18:22:29 <diablo_rojo> Yeeeah.. 18:23:03 <fungi> 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 <fungi> 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 <fungi> 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 <fungi> you'll see the job runs our actual production deployment playbooks on them though 18:24:43 <diablo_rojo> I'm still following. 18:25:19 <diablo_rojo> 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 <fungi> basically, whatever we need to glue together the right docker images 18:26:19 <SotK> that's a really nice testing setup 18:26:44 <SotK> OK I think I understand what is needed 18:26:46 <fungi> 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 <fungi> so the etherpad one for example just checks that you can reach the api socket over loopback 18:27:32 <fungi> but we can do far more complex testing of a service, that's a very simple example 18:27:57 <fungi> 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 <fungi> basically exercise the deployment tooling itself 18:28:40 <diablo_rojo> Yeah okay. That makes sense. 18:28:41 <SotK> makes sense 18:29:09 <SotK> 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 <fungi> 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 <fungi> so if anybody else is interested in trying to make progress on it, that would be amazing 18:30:54 <fungi> 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 <fungi> we can also fairly easily hold a node from the test job and manually poke it to do more thorough exploration 18:31:34 <SotK> alright then, I'll make that my priority to work on then 18:31:45 <fungi> thanks! 18:32:06 <diablo_rojo_phon> Ugh. Flaky WiFi today. 18:32:21 <diablo_rojo_phon> If there's anything I can do to help SotK, let me know. 18:32:31 <SotK> will do 18:34:05 <SotK> 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 <SotK> #link https://docs.angularjs.org/misc/version-support-status 18:34:18 <diablo_rojo_phon> I can sign up to do an audit of open patches and see if anything needs updating. 18:34:22 <fungi> feel free to hit me up with questions or remind me what changes you've pushed for feedback too 18:34:26 <diablo_rojo_phon> Ah yes. What fun. 18:34:47 <SotK> tbh I'd guess that we're currently on an older version and out of support anyway 18:35:07 <diablo_rojo_phon> Yeah I would guess the same. 18:35:10 <fungi> i fully expect that to be the case 18:35:22 <diablo_rojo_phon> I know there are a lot of dependencies that need updating. 18:35:30 <diablo_rojo_phon> 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 <diablo_rojo_phon> Hahahahahaha 18:36:04 <fungi> probably so 18:36:09 <diablo_rojo_phon> I really hope not, but probably. 18:37:35 <diablo_rojo_phon> So we need to replace angular.js with something else? 18:37:49 <SotK> ideally yes 18:38:00 <SotK> which basically means rewriting the webclient afaict 18:38:26 <SotK> modern Angular (the ostensible replacement for AngularJS) is quite different 18:38:39 <diablo_rojo_phon> Ughhhh alright. Well I can start some research into alternatives. 18:38:54 <SotK> to the extent that if we were to be switching to it I'd rather just switch to a nicer framework 18:39:31 <SotK> I know (I think I know anyway) that zuul uses react for its webclient 18:39:34 <fungi> right, if it's a full on rewrite to begin with, then evaluating alternatives is prudent 18:40:13 <SotK> I'm not really familiar with react, though I've used it a bit 18:40:19 <diablo_rojo_phon> 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 <fungi> yeah, zuul is using react currently 18:40:37 <SotK> 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 <fungi> and react seems to rely on a js derivative language called jsx? 18:41:42 <SotK> indeed, I find it a bit distasteful but have been trying to teach myself to like it xD 18:41:50 <diablo_rojo_phon> I was just about to mention Vue lol 18:41:56 <SotK> I actually put together a prototype vue storyboard client last year to help me learn vue 18:42:11 <diablo_rojo_phon> Oh nice. 18:42:12 <SotK> which we could use as a starting point for something if we want to go that route 18:42:44 <fungi> 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 <SotK> there's an old and broken version of that prototype here: https://storyboard-vue.sotk.co.uk/ 18:43:03 <diablo_rojo_phon> Seems like a reasonable option. I'll add that to my notes. 18:43:07 <diablo_rojo_phon> Thanks! 18:43:20 <SotK> yeah I think that we can use this as an opportunity to address quite a few issues really 18:43:29 <fungi> 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 <fungi> heh 18:43:54 <diablo_rojo> Yay! I'm back. 18:43:56 <diablo_rojo> LOL 18:45:00 <diablo_rojo> Well I will take the research todo and present my findings next week? 18:45:04 <SotK> sounds good 18:45:10 <diablo_rojo> Coolio. 18:45:19 <SotK> I'll try to get that link updated with a working version of what I had 18:46:19 <diablo_rojo> Will wait to check that one out. 18:46:36 <diablo_rojo> I'll start with React and Angular. 18:47:07 <fungi> got a link handy for info on teh vue framework? 18:47:49 <diablo_rojo> https://vuejs.org/ 18:47:50 <diablo_rojo> ? 18:48:01 <diablo_rojo> https://vuejs.org/v2/guide/comparison.html 18:48:05 <fungi> perfect, thanks! 18:48:07 <diablo_rojo> might be more helpful 18:48:23 * SotK was just about to send that same link xD 18:48:41 <diablo_rojo> :D 18:49:57 <diablo_rojo> Cool. Then I guess we all have stuff to work on till next week. 18:50:02 <SotK> yup 18:50:08 <diablo_rojo> We have ten min left in the meeting. 18:50:10 <SotK> anyone have anything else they want to discuss? 18:50:24 <diablo_rojo> I don't think so. 18:51:18 <SotK> #endmeeting