 Okay, actually, I hope we have enough seats. Okay, so I'll just go ahead and get started. Oh, okay. Oh, is the camera not? We good, we good? Are we streaming? Oh, God. Okay. All right. There's seats up here if you need a seat. There's two seats left. So here today I'm gonna talk to you guys about Padme and desktop. Now, I made this proposal and the CFP review committee was like, hey, Mo, this sounds great. What does this have to do with Fedora? So I'm going to tell you what this has to do with Fedora. I've never given this talk before and it includes a demo that may not work because I'm having computer issues. So I just wanted to caveat with that too. So I'm Mo Duffy. I'm a UX designer at Red Hat. I also work on the Fedora design team and I work on the community design team. Yeah, so this is sort of my manifesto for Fedora. If you were in Matthew's session this morning, I'd asked him about strategy and stuff and this is sort of what I was getting at. So like in Fedora and I don't, can I walk to the screen? Am I on camera if I do that? We tend to sit in this spot, desktop user, right? Like it's our bread and butter. It's our largest user base, uses workstation or one of the desktops bins. But you can do so much more with Fedora as a technology. So this is, I have a blog post if you want to read it at some point, the QR code is there. But this is what I call the Fedora F model. And the idea is, yeah, plenty of people can just sit here, use Fedora as a desktop, be perfectly happy. They don't have to do anything else. But if you want to explore the latest and some of the OS bits that we're building and what you can do with it, you sort of proceed up the F. Maybe that's not a good idea. But we will proceed down the middle four. The orange thing, the orange thing. That is where this talk is going to talk about. The pink and purple one at the top is more oriented towards Internet of Things. We have Fedora IoT and Edge Stuff. I'm not gonna talk about that, but that definitely comes into play. I'm gonna show you on my desktop and that actually has a micro shift plugin. So you can use, you can deploy images to a micro shift and play with that. So I mean, we could fill in that a little bit more, but we're just gonna focus on this orange line and basically the use cases, developers who are using containers to write and then deploy their apps. So this is how it sort of all relates to Fedora. Does this make sense? And when I was talking to Matthew, I was saying, we should focus towards some of these kinds of use cases too, because then when we were doing the Fedora website redesign and I was talking to different Fedora users, a lot of them were like, I use Fedora Workstation and it's great, but what is Fedora Core OS? I don't get it. And it's hard to explain, but if we talk about Fedora and model it for people more as being this broader F than just this down here, I think we can kind of teach people and educate them and get them excited about it and understand what it is. Because I think we all understand quite well, it's onboarding people that is where we have the problem. Anyway, so I put in the talk description that this is beginner, so I see a bunch of you in here that I think are gonna be quite bored by this, but this is how I sort of explain to people what are containers. So you sort of move from bare metal, like a computer is a computer, like this is a computer, it's a physical thing and you run software on it, the apps at the top. So then you get into virtualization, right? So you have the operating system on your actual physical computer and then you have hypervisor on top of the hypervisor. It's basically let's make many fake computers and run them on one real computer. So that's virtualization. So containerization is let's create fake operating system installs but it's not even the full operating system, it's just components and I'm gonna lock it off using C groups and make it so one computer seems like many but it's not and it's totally fake. So the one way to call this is like abstracting into the space almost and another way is just making lots of fake stuff and just layering and layering and layering. So this is how I like to explain containers. So Podman is we ship Podman in Fedora. It is the main way that you work with containers in Fedora. Podman itself, if you're running it on a Windows or a Mac and see here we have the host operating system, Apple Emoji or Windows Emoji, it's based on virtualization because I think Apple and Windows, they don't support either Podman or just containers in general, containers are Linux, right? So they need virtualization to be able to run Linux, to be able to run these container engines. So the VM that provides Podman on Macs, it's CoreOS, on Windows, it's Fedora right now and that's because of a WSL issue but when we come out with Hyper-V support that will likely use Fedora CoreOS. But when somebody talks about using Podman and they talk about using Podman on Windows or Mac, they're a Fedora user. So just remember that, like again, what does this talk have to do with Fedora? Well, let's onboard Fedora users that use Mac and Windows, why not, right? You don't have to use Workstation to be a Fedora user. You don't have to use Linux on the desktop to be able to use Linux. So we should embrace these users and help them and bring them into our community. Anyway, so at the top here where I have the purple delineation and this shows, you know, Podman is native to Linux, containers are native to Linux, it's a simpler model but where you have the purple there, that's basically what Podman is. So the apps on the top are your individual containers and Podman supports everything you need to run them. So, oh, and I do have a little cultural note. The three seals and Podman are Stelkis, that is a Irish myth about seals that turn into women. Their names are Caitlyn, Margaret, and Rose. So, cultural relevancy. Okay, so now we'll talk a little bit more about Podman machine here, but actually I already said all that so I'm just gonna skip this slide. I've not given this presentation before so I'm not super smooth here. Okay, so now Podman desktop. Podman desktop is a developer oriented user interface that makes all this stuff approachable. Podman for many years, there was no GUI to work with it so you had to work with the command line and that's fine, that's great. You can script things, you can play around with things. Someone like me, I'm more visual, I'm less deep into the lower level tech. I still wanna play with containers and build apps and deploy them but I maybe don't wanna be sitting in the command line all the time. So, Podman desktop makes it very approachable. Podman desktop also just like Podman runs on Linux, Windows, and Mac. So, we also can get Fedora users basically via Podman desktop. So again, just relating it to Fedora there. Can you tell I was a little spicy about being told what does that have to do with Fedora? The other relationship here with Fedora and Podman desktop and Podman is Podman is run in our open QA for Fedora. And even though I don't think it's in one of the core packages but it's still considered a package that will stop a release if it's broken. It's really important that we have a functioning Podman when we do a release because so many things depend on Fedora CoreOS having functioning Podman. So, we're actually looking right now and I've been talking with Adam Williamson about adding some tests to the Podman tests in open QA to make sure that Podman desktop works because when Podman desktop has a problem, it might have a problem that finds a bug that just the standard testing that they do right now wouldn't catch, so. Okay, so now the next level of abstraction. So, these are the layers of abstraction that we talked about before. So, the next level, and yes, I would caveat, I'm not an expert, I'm still learning especially the Kubernetes stuff. So, Kubernetes is let's make a fake supercomputer. I don't know how accurate that is but that's how I think about it. And basically, you're just taking each one of those blocks where you have the host operating system, the container runtime, the containers and you're just multiplying them and you're calling each one a node. So, you can scale an app up or down based on demand. You get all sorts of different services from Kubernetes. You can cluster together different things but it's basically building a fake supercomputer of all fake computers that somewhere sit on hardware, you don't know where the hardware is, you don't think about the hardware. So, again, it's just another, you just think about going up a layer cake, right? It's sort of the thing on the top. Okay, so what does this Kubernetes thing have to do with Podman Desktop and Podman? The idea is you start with a container, you're building an app, you're running Podman Desktop locally, you're playing around, you might not even be building an app. My main use case for using Podman on Podman Desktop is running Penpot, which is a UI design tool and I like running it locally because I have all the files locally, I'm not relying on a hosting provider or anything, I own my materials, I really like that. So, I like to run it locally using Podman and it's not, I didn't write the app, I'm just running it. There's two ways when you start getting more complex apps, you might have multiple containers in an app, you might have a container for the front end, a container for the back end, container for the database. Docker has something called Docker Compose that lets you group containers together into larger applications, but it's not really compatible with Kubernetes. There's also what Podman does is it has the concept of it creates a pod using a format that is compatible with Kubernetes. So if you do things, like there's two options here, there's the blue box at the top and the purple box at the bottom. If you go the purple way, it's sort of easier to get to Kubernetes because it's already formatted that way. If you are working with an app that uses a Docker Compose and Penpot would be an example, they ship with a Docker Compose file. Podman and Podman Desktop can convert it to Kubernetes format, which you then can deploy to Kubernetes. And once you go into Kubernetes, you have different levels of things you can do. OpenShift, local, mini-cube, K3S, kind, these are examples of really scaled-down versions of Kubernetes that don't have most of the services you would have in a full-blown cluster, but they let you have a local Kubernetes environment that you can play around with to see how your application would work in that sort of environment. And then you have things like OpenShift, and of course, I have OpenShift on here for Red Hat. I mean, come on. But you can do things like manage services. You can push out to Red Hat OpenShift and be like, hey, Red Hat, I'm just working on this app. I don't want to do the system and thing. I don't want to do cluster admin. You keep it running and I'll pay you. So you can have that option. Just pay somebody to do that stuff, and I'm just focusing on the app. So once you build containers in a way that you can deploy it out, you get the benefits of being able to scale. You get the benefits of I have this awesome app. I want to focus on the app, the whole scaling and multiple locations. Like I just, I don't want to work on the complex stuff. I just want that provided to me as a service. If you run it on Kubernetes, you get that kind of stuff. And a lot of hosting providers are Kubernetes providers. So it's something that there's a rich marketplace that you can go and find a provider to do that. So that's sort of the whole ecosystem. And Podman Desktop has plugins that will let you push to Kubernetes. And that is the thing I'm going to attempt to demo, but to a local kind. So let me get to, okay. So, and it's funny. Podman and I think other container engines too has this thing where it comes up with a name. And I've been having trouble with my machine because of assorted issues. It came up with the name hopeful panini. So I, and it actually ended up working when it came up with that name. So I don't know what's up with that. But here, well, when you start Podman Desktop, you kind of get, I have the OpenShift local plugin loaded. So it talks about that. This is the Podman that I have. This is the dashboard. So I actually have a lot of things running on here. I can show you real quick, where is it? It's, I can go in. So this is a compose. So it's like a bunch of different containers that were generated by a compose. It's not potified because I tried to potify it and it was some network issue. And I just didn't want to play with it. But I can open up the front end container. And then this is, you can see a local host. I'm not cheating. I'm not cheating, right? This is actually running on the system using Podman Desktop. And I can go in like, I have the Fedora character library in here. And I can just sit here and work on Penpot. And it's all on my local machine. I do this a lot on trips like this because I can work on stuff when I'm on the plane. It's awesome. And then once I'm off the plane, I can upload it somewhere. It's very nice, but anyway. So I have that. But let's get back to our hopeful guy. So hopeful Panini, I'm gonna hit play. And that's gonna start the container. It's just like a, it worked. It's a very simple web thing. It works, yay, okay. Now, this is just a container. It's not a pod or anything like that. It's just a plane container. So what I'm gonna do is I'm gonna select it and we have a feature called Podify. And it takes the container and it generates cube YAML for it and it makes a pod. So I'm gonna hit here. It's gonna create a pod with this. I'll call it hopeful Panini pod. It's a nice alliteration. All right, now I have hopeful Panini pod. And you can see here, oh, sorry, I didn't delete my other demo stuff. That's all right. So you have hopeful Panini pod. And you can see it's running on Podman. If I go on this list, then I do hopeful. You'll see what it did is it took the original container and it stopped it and it made a copy of it and it put it inside a pod and it called it hopeful Panini podified. So now if I go to it and I open browser, yeah, it works, woohoo, okay. So now the last trick I'm gonna do, hopefully it'll work, is I am actually going to deploy it to Kubernetes. So let me just show you what I mean by Kubernetes here. So there's something called kind. It stands for KIND, or Kubernetes in Docker, but it's running on Podman right now. And it's basically a little, a very small version of Kubernetes that is running locally on my machine. And you can see where it's running here. So I'm gonna deploy to that. So I'm gonna take, again, I'm gonna type hopeful and I'm very hopeful this will work. So I'm gonna call it, yeah, hopeful Panini pod to kind. And it's on the KIND cluster, it's going to, all right, I'm gonna hit deploy. Is it working? Yeah, oh, it's already running, wee, okay. So then I'm gonna go to my list of pods and you can see where did it go. Is it this one? I think it's one of these, but I don't remember what I named it. But anyway, so you can see that it's running with the tag, it's running in the KIND cluster. And if I do, I think it's a cube control get pods, you can see that it's running, so just to verify. So yeah, that is just one example of what you can do with Panini Desktop. I have a bunch of stuff in here. The thing that I, one of the things I wanted to demo that unfortunately I broke, my blog is on Dreamhost and I'm not happy with them right now and it's a WordPress. So what I've been working on and I'm hoping to do a tutorial on it soon is I took, I basically containerized WordPress and I made it so it will generate a static site. So I'm gonna run a WordPress container locally and use the nice WordPress UI to write my blog and upload the images and all that stuff and then generate static HTML from it. And then I'm gonna have like a Git commit thing where like a post commit hook where it pushes out to a GitHub and do my blog that way as a static because like number one, WordPress gets hacked a lot. Number two, I'm not happy with Dreamhost and I don't like being stuck with them and it's a fun project but I did something to it and it broke and I can't remember how to fix it. But you can do little projects like that and that's one of the things that I have in here. And I'm trying, you can grab images like I can show pulling an image. Let's pull a really good one. I hear it's nice. You can just type Fedora, it'll look for it. It'll pull it down, it'll add it to your library. Yeah, I don't know. I guess what else, does anybody have questions? Was anybody hoping to hear something today that I didn't cover? What do you think about my big F? Somebody's gotta have opinions on the F. You just pronounced it. In this city, so the port's gonna move in. All right, so Q-U-A-Y is key as in K-E-Y. And Paul Cormier will dispute that fact but I will dispute it back. There's no Q in Irish. It's key, it's key. It's not quay, I-O, it's key. So tell all the Red Haters it's key, not quay. But how do you spell it as quailga? Because there's no Q. Oh, I don't know what it is in our square. So see, it's not really a Q. But it's a key. Yeah. Yeah, yeah. Tell Paul Cormier that. Paul and the founder of quay I-O keeps saying it's quay and it's key. Just pointing it out there. I love the F as well. Can we get another Fs for another parts of journey in Fedora like server? So where would you see server fitting in? So server, cloud, and all the other things. Right, where do you see them fitting in? What do you think? Definitely not on this F, at least not in the middle but on the upper one as well as I guess we can start with the server instead of desktop and go the same way. That makes sense, actually. Have a separate effort. But you gotta let it, you can't force the F. This wasn't originally an upside down L and then it became an F and it was like, but you have to, you can't force it, it's just got, anyway, sorry. Right, grow naturally. Thank you, Mel. Come on, somebody has opinions about this. Are we apathetic about it or are we agreeing with it? I'm not a developer, I'm a technical writer, but my podman, I have a text file with commands and little explanations, so I mean, it's certainly more helpful than that. Yeah, I'm a visual thinker, so I just find it nice to have all my stuff there. Yeah, I know. Because I'll do a little project and then I'll like not have time and then I'll come back to it and having it right there, it's very nice. Yeah, no, and your demo was great. I'm certainly gonna look it up now. It's, like I said, it's an order of times better than my text file of copy paste commands. I should put this up. We have podman-desktop.io and we also have podman.io. I do wanna mention that Ashlyn Knox, who also was one of the lead developers on the new fedorproject.org, did the work for podman.io as well and we followed a very similar process. And it's github.com slash containers slash podman-desktop, so if you want to join in, we're an open community, it's an open source project, we would love to have you. And if you have any feedback, we'd love to hear it. Any other questions? Ideas? Jokes? No? All right, here we go, Carson. This might be a little left field, but we'll see. So I don't use Kubernetes, but I do use a lot of podman at home to solve hostings. And obviously I'm just doing that by logging into the machine running podman. The deployment that you showed there, I really like that idea of being able to just push things from my machine that I'm working on to the rest of the house, but it's not Kubernetes, right? What are the other deployment options I might have? So I can't speak to the support we have right now for this in podman-desktop. However, there is a podman remote that you could use. So for example, you could set up a home server. This is what I was telling Matthew today, after his thing is like, we gotta do this and we gotta make this a thing. You can set up CoreOS on a system and it has podman on it. And you can do, from your local system, podman remote and push the containers to that system. Now I don't wanna say that we can definitely support it in podman-desktop yet. I think I saw somebody had a hack to do it, but it's definitely something I wanna try to get on the roadmap. But generally, just from the command line, you can do that. Okay, thank you. And I think it's a good middle ground, you know? And if you're doing some kind of home network thing, yeah, you don't need to do Kubernetes unless you're really hardcore. The hopes are having mine is not getting rebuilt. But yeah, there's definitely options. The other thing is if you did something like, we have something called Developer Sandbox, Red Hat Developer Sandbox, and it's free. It doesn't cost anything. It's an online Kubernetes cluster. It's not like super powered or anything. I mean, it's a free account. But you can deploy stuff to that too and podman-desktop has a plugin for that. So I could have demoed that today, I chose not to, because I don't know, I just wanted to do kind. But that is another option. If you just wanted to play with Kubernetes, but you weren't really sure, it's something that you don't have to deploy your own thing. Yeah, I wouldn't mind playing with Kubernetes a bit more. But in this case, my use case is, can I make it easy to manage the home stuff? Yeah. That doesn't work there, but it's so useful information. Yeah, yeah, no, that's a fantastic question. Thank you. We good? Time for one more? Yeah, time for one more. Yeah, this is actually more of a comment. And first of all, thank you. Great presentation, very informative. Just with the supercomputer thing? I don't mean to be like, you know, like... Supercomputer is a term, I know. Yeah. And it means things... I don't know, it just got stuck in my head, like maybe distributed operating system. Yes, you know what? That is much better. And if I give this talk again, I'm gonna use that phrase, because that's really what it is. Awesome. I love it. That was more of a comment. Okay, no, that's brilliant. You're welcome. All right, thanks everybody. I wanna take one more picture, too.