16:30:01 #startmeeting fedora_coreos_meeting 16:30:01 Meeting started Wed Apr 17 16:30:01 2019 UTC. 16:30:01 This meeting is logged and archived in a public location. 16:30:01 The chair is bgilbert. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:30:01 Useful Commands: #action #agreed #halp #info #idea #link #topic. 16:30:01 The meeting name has been set to 'fedora_coreos_meeting' 16:30:06 #topic roll call 16:30:08 geoff-: Geoff Levand 16:30:15 .hello2 16:30:16 slowrie: slowrie 'Stephen Lowrie' 16:30:18 .hello lucab 16:30:19 kaeso: lucab 'Luca Bruno' 16:30:31 .hello2 16:30:32 jlebon: jlebon 'None' 16:31:27 .hello2 16:31:28 jligon: jligon 'Jeff Ligon' 16:31:30 .hello2 16:31:31 bgilbert: bgilbert 'Benjamin Gilbert' 16:32:19 .hello2 16:32:20 yzhang: yzhang 'Yu Qi Zhang' 16:32:52 .hello2 16:32:53 rfairley: rfairley 'None' 16:32:56 .hello mnguyen 16:33:00 mnguyen_: mnguyen 'Michael Nguyen' 16:33:22 .hello sinnykumari 16:33:23 ksinny: sinnykumari 'Sinny Kumari' 16:34:05 #chair geoff- slowrie kaeso jlebon jligon yzhang rfairley mnguyen_ ksinny 16:34:05 Current chairs: bgilbert geoff- jlebon jligon kaeso ksinny mnguyen_ rfairley slowrie yzhang 16:34:21 #info please add items to the meeting agenda at https://public.etherpad-mozilla.org/p/20190417-FCOS-Meeting 16:34:35 #topic Action items from last meeting 16:34:42 * jlebon to investigate packit 16:34:46 * ksinny to request pool tag(s) once stream implementation PR is finalized 16:34:50 * bgilbert to create coreos/airlock 16:35:03 #info bgilbert created https://github.com/coreos/airlock 16:35:38 #info ksinny will request for tags after this meeting 16:36:02 #action ksinny to request pool tags 16:36:34 re. packit: i opened up https://github.com/packit-service/packit/pull/265 to tell upstream we're interested in being early adopters 16:36:40 i also opened https://github.com/packit-service/packit/issues/264 to discuss our use-case 16:37:12 .hello redbeard 16:37:13 red_beard: redbeard 'Brian 'redbeard' Harrington' 16:37:15 TL;DR is that Packit is not quite ready yet, but it should do what we want it to do in the future 16:37:52 #info jlebon engaging with Packit upstream 16:37:55 #chair red_beard 16:37:56 Current chairs: bgilbert geoff- jlebon jligon kaeso ksinny mnguyen_ red_beard rfairley slowrie yzhang 16:38:17 #topic Finalize artifact storage strategy 16:38:18 #link https://github.com/coreos/fedora-coreos-tracker/issues/169 16:38:52 jlebon, want to summarize? 16:39:01 we had a productive mtg with releng this morning about this 16:39:46 consensus is for an S3 bucket for FCOS artifacts that we can use 16:40:28 there are still things to be figured out in the periphery, e.g. related to the OSTree commits, and how to actually expose the bucket to clients 16:41:08 one suggestion was a CNAME from $subdomain.coreos.fedoraproject.org, though we're also discussing a redirector 16:41:33 but at least getting an S3 bucket will unblock us in the short term 16:41:39 https://pagure.io/fedora-infrastructure/issue/7719 16:42:55 bgilbert: i'm not sure if you wanted to dive into any specific bit in particular 16:43:13 nope, that was it 16:43:15 jlebon: related to that can we make sure that if we need to have multiple files related to a single "oem" (e.g. a kernel and separate initram fs) that we correlate them in the meta.json file or something similar? 16:43:47 red_beard: we're going to have a JSON endpoint that points people to the correct artifacts to use 16:43:48 as a part of the general storage strategy for how we push builds out? this makes it so that if i wanted to sync a single platform i can easily query that out 16:44:04 :thumbs_up: 16:44:13 my preference is for the bucket not to be listable at all, though we may not be able to go that far 16:44:21 red_beard: check out the images[] array in http://artifacts.ci.centos.org/fedora-coreos/prod/builds/latest/meta.json 16:44:49 well, that's why i ask. i saw meta.json and the concern about the bucket being listable 16:45:20 red_beard: https://github.com/coreos/fedora-coreos-tracker/issues/98 gives a good sense of my thinking there 16:45:29 that way meta.json can be used to only expose the needed assets while making it easier to sync (something that was a PITA since the get-go) 16:45:34 I don't think meta.json is the right level of abstraction for users 16:45:40 jlebon: yeah, though it isn't exactly aligned with what he's asking. Installer files are grouped by filename only. 16:45:56 perfect. i'll shut up and review #98 16:46:09 red_beard, kaeso: gotcha :) 16:47:11 thanks for the update jlebon! 16:47:33 red_beard: +1, ping me if you still have concerns 16:47:39 #topic Implement tooling for release streams 16:47:48 #link https://github.com/coreos/fedora-coreos-tracker/issues/137 16:47:55 #link https://github.com/coreos/fedora-coreos-tracker/blob/master/stream-tooling.md 16:48:31 I went ahead and merged the doc, but we can still update it if there are concerns 16:48:46 I'll attempt to summarize: 16:49:03 we'll have the production streams that are already in the design (stable, testing, next) 16:49:43 we'll have development streams, testing-devel and next-devel. those will be nightly snapshot builds. they're equivalent to Container Linux's "master" branch: development snapshots of what will become the next testing/next release 16:49:53 there's no stable-devel because that's called "testing" :-) 16:50:19 we'll have mechanical streams, which are robotic snapshots of rawhide/bodhi-updates/etc. 16:50:38 the development and mechanical streams will be in a separate ostree repo from prod to avoid confusion 16:50:52 and each stream will correspond to an ostree ref and a Git branch 16:51:17 that is, a Git branch of some repo, perhaps fedora-coreos-config. we won't branch _everything_ 16:51:45 that repo will store lockfiles pinning the exact package NEVRs that went into the build 16:52:12 and there will be various automation to help maintain the lockfiles and treefiles. e.g., the lockfiles in the mechanical branches will be automatically maintained. 16:52:52 NEVRs pinned in the dev and prod streams will automatically be tagged into a new "coreos-pool" koji tag 16:53:23 so we can control our own garbage-collection lifecycle. when we do an official release, we'll also tag into a second koji tag with a longer retention period. 16:53:47 I think those are the highlights. questions/concerns? 16:54:32 bgilbert: what does "annex" is "ostree repo" context mean there? 16:55:18 I mean is it just an arbitrary name/label or are some technical details that I don't know? 16:55:20 it's the name I picked for the second ostree repo for non-prod streams 16:55:21 bgilbert: would be nice to keep the development branch in the same repo so that the testing-devel -> testing push is more obvious (and same for next-devel/next) 16:55:45 kaeso: arbitrary label 16:55:51 jlebon: same git repo or same ostree repo? 16:55:53 bgilbert: ack, I guessed so but was unsure 16:56:02 bgilbert: same git repo 16:56:27 yup, I was assuming all the streams use the same git repo 16:56:32 I guess that didn't actually make it into the doc 16:56:50 well, it sorta did 16:56:58 first paragraph of https://github.com/coreos/fedora-coreos-tracker/blob/master/stream-tooling.md#how-will-the-package-list-be-maintained 16:57:06 ohh whoops, i misread "separate ostree repo" up there with "separate git repo" :) 16:57:15 jlebon: +1 16:57:42 I'm increasingly concerned about the complexity of the next stream 16:58:07 it switches upstreams between branched and testing, and kernels between its upstream and rawhide 16:58:20 bgilbert: it sounds like we don't anymore anything like `repo` to maintain multiple repos in sync, correct? 16:58:30 and that'll ripple down into, at least, some of the automatic mirroring between Git branches 16:59:27 I think that complexity is actually necessary to get us the bake time we need, but I wanted to at least point it out 16:59:44 kaeso: I think that's correct? 17:00:04 kaeso: coreos-assembler and fedora-coreos-config should probably still be mostly in sync 17:00:15 kaeso: and the streams repo, if different 17:00:17 bgilbert: do mechanical streams function have automatic updates? 17:01:11 slowrie: good point, we haven't talked about Cincinnati for non-prod streams 17:01:40 kaeso: but I wasn't thinking we'd actually use a sync tool like `repo` 17:02:14 slowrie: mechanical streams should almost certainly have Cincinnati disabled 17:02:23 yeah, i think the crucial bits are coreos-assembler and fedora-coreos-config. hopefully, there's nothing else to sync 17:02:30 they're completely uncurated. you can sync them with rpm-ostree directly 17:03:03 the development streams... likewise, I think? 17:03:25 bgilbert: agreed, just wanted to make sure that was the expectation otherwise any rawhide based streams could potentially be very problematic 17:03:26 except that then we're not really testing Cincinnati upgrades outside of official releases 17:03:30 slowrie: yeah 17:04:00 we can either turn-off cincinnati client-side for those streams, or just not source those releases into cincinnati update-graph 17:04:25 for the record, CL development builds can't update themselves at all 17:04:34 jlebon: coreos-assembler should come from a container image, though 17:05:31 bgilbert: I don't know the details for CL dev, how do we disable auto-updates there? url/channel setting? 17:06:18 developer channel. they check into CoreUpdate, but CoreUpdate has updates disabled on that channel 17:06:43 anything else on this topic? 17:06:57 kaeso: yeah. i think we can (1) mark the cosa git commit we used in CI when pushing, then (2) have a corresponding tag in the cosa imagestream in OCP with which to do the build? 17:08:03 bgilbert: I see. I'd rather disable them client-side to even avoid hitting the cincinnati server 17:08:14 kaeso: +1 17:08:32 we need to do that anyway to prevent rpm-ostree from bailing out when users try to update directly 17:08:39 kaeso: so basically, we always run a prod build with the same exact cosa that built its devel and passed CI 17:09:13 jlebon: +1 17:09:20 #topic Implement tooling for release streams 17:09:24 #link https://github.com/coreos/fedora-coreos-tracker/issues/137 17:09:41 #undo 17:09:41 Removing item from minutes: 17:09:43 #undo 17:09:43 Removing item from minutes: 17:09:51 #topic Produce live PXE images 17:09:56 #link https://github.com/coreos/fedora-coreos-tracker/issues/105 17:10:30 I wanted to raise this here because of a recent OOB discussion about use cases 17:10:48 summarized here: 17:10:48 #link https://github.com/coreos/fedora-coreos-tracker/issues/105#issuecomment-481967168 17:10:59 Container Linux has several PXE use cases 17:11:01 some of which are obscure 17:11:21 the usual one is PXE to a live system, running CL from RAM 17:11:48 that approach can be used to run the installer, or to actually run the OS in production 17:11:51 FYI, funny enough i'm writing up some of these in my response to issues/#98 17:12:09 specifically about running live + diskless 17:12:20 red_beard: we absolutely want to support the live + diskless case 17:12:47 that case implies running Ignition on every boot, because every boot is fresh 17:13:19 the OS _cannot_ update itself in this case; it simply reboots (via some sort of out-of-band scheduling) and the PXE server hands out a new OS image 17:13:38 but there is also a second case: 17:13:41 yup, that's what i'm calling out (which is why the OEM metadata is critical) 17:14:15 red_beard: +1, please go ahead and post your comment so we make sure we have it recorded :-) 17:14:52 in CL, /etc and /var are both on the root partition (by default), but the OS is in /usr 17:15:03 and we allow live PXE + persistent root. 17:15:31 so your configuration is persistent, but OS upgrades still happen out-of-band, as in the diskless case. 17:15:56 in this configuration, Ignition may or may not run every boot, depending on how clever the PXE server is. 17:16:05 (generally it will run every boot) 17:16:37 the proposal for FCOS is to defer, or skip, supporting the second case. 17:17:02 you'd still be able to have live PXE + persistent data volumes, e.g. /var 17:17:35 but not a persistent root, and in particular, not a persistent /etc. and thus, you'd need to run Ignition on every boot, since there'd be no other way to populate /etc. 17:18:20 the proximate reason for deferring this functionality is that, without OS-managed updates, we'd have to specially handle the rpm-ostree three-way merge of /etc on updates 17:18:38 that wasn't a problem in CL because we never updated the user's /etc once it was created 17:19:17 there are ways to do this, of course. but a) we'd like to manage complexity for the preview release, and b) it's not clear how many people use live PXE + persistent root on CL. 17:19:23 so it may turn out not to be an important use case. 17:19:57 tl;dr: anyone who needs live PXE + persistent root in FCOS, please speak up 17:19:59 here or in the ticket 17:20:14 red_beard: is your diskless scenario completely diskless? 17:21:42 for one of our former customers it was. In another case they would generate a LUKS key at boot time, setup /var/lib/docker as an encrypted volume, but then intentionally not persist the key 17:21:50 that way they could avoid scrubbing on reboot 17:22:11 nice 17:22:26 saved on SSD write cycles and speed up reprovisioning 17:23:31 red_beard: ack, seems fine. What was the other concern on platform metadata? 17:25:27 it was around being able to discover all of the components for an OEM 17:25:42 (i'm still writing my novella and cross-citing prior art) 17:25:43 :D 17:25:46 red_beard: +1 17:25:58 #info we're planning not to initially support live PXE with a persistent root partition in FCOS. if you use this functionality on CL, please speak up in https://github.com/coreos/fedora-coreos-tracker/issues/105 17:26:18 #topic Open Floor 17:28:02 anyone? 17:28:57 i got nothing today 17:29:45 #info Requested for coreos-pool and coreos-release tag https://pagure.io/releng/issue/8294 17:30:07 ksinny++ 17:30:09 bgilbert: Karma for sinnykumari changed to 11 (for the current release cycle): https://badges.fedoraproject.org/tags/cookie/any 17:30:22 ksinny++ 17:30:23 jlebon: Karma for sinnykumari changed to 12 (for the current release cycle): https://badges.fedoraproject.org/tags/cookie/any 17:30:37 cool 17:30:39 thanks for coming, all! 17:30:41 #endmeeting