 So I'd like to now bring Topher Bullock out. He's a staff software engineer at Pivotal. He works on concourse. Everybody familiar with concourse? Yeah. All right, so he works with concourse, so come on out. Thank you for coming. Thank you for coming. So why don't we let you get all set up and plugged in? And while he's doing that, all right, this is the real test. So what is it that you came to show everybody today? So yeah, I guess something I really wanted to call it. I made all caps notes about things that Abby said in the keynote yesterday. And it really leads well into what I'm going to talk about. So at the Congress team, we've really been having this renewed focus on how we think about people use and deploy concourse. And one of those big buzzwords was interoperability. And we're all about that. A recent blog post from Alex really focuses on how we're renewing our focus on looking at all the different ways that people deploy concourse and being interoperable with all of those. We're a CI tool. People use us in many different ways. As we heard, lots of people in the CF community are really into concourse. And there's also lots of people who don't use CF who are running concourse on Kubernetes. And now Cloud Foundry has CFCR. It's got its own, you know, blessed Kubernetes. So we've really taken a hard look at those folks out there in the community, people in the CF community who are using concourse and Kubernetes together. And we're really thinking about how we can support them. That's awesome. So why don't we switch over to the demo for you? Yeah. So everybody can take a look at what's on your screen. And do you want to walk us through it? Yeah. So this was one of my kind of wild ideas we have on the concourse team. We kind of go off the grid on Fridays. We call them Freedom Fridays. We don't go through our normal backlog of stuff that we do every day. We tell our PM, James Ma, to just wait for a while. We just alone. We'll do our own thing. Engineers, we do what we do. So my big kind of Freedom Friday project has been kind of in the same vein as using concourse and Kubernetes together. So I've got some Bosch deployments here. They're all running on Bosch Lite. I've got concourse and Kubo, CFCR, the deployment formerly known as Kubo. And I have a stateful set deployed to that. That's a concourse worker. That's cool. I'm just going through making sure all my demo works here. OK, everything's still working. OK, my concourse still has some workers. If you're familiar with concourse, you might notice I have a different type of worker now. I've got this Kubernetes worker hanging out here. And on my concourse, I have a really simple pipeline, goes out and downloads the gate repository, and then runs some unit tests, runs it in a Golang image container. All along good. This all kind of still looks like normal concourse stuff. You know it's a cloud native demo when there's YAML. Oh, yeah. Got to have that YAML, or just Enterprise YAML engineers. So I'm going to go trigger this job off. And I'm going to go take a look at actually what jobs I have in Kubernetes, because Kubernetes has jobs too. Jobs are a way of sort of running a batch of work to completion. And concourse jobs are kind of like that. Now I have a concourse job running in a Kubernetes job. So people who are familiar with concourse know that it typically uses garden containers. But all of this now is running inside of a Kubernetes pod that is scheduled as part of that job. So I have this running job. I have one ready. And the pod is going. And you can see there's some logs getting tailed out of that. I can look at the details of this pod. And I want to do YAML format, obviously. So you can see here, this kind of looks a lot like some of the details of my, let me just scroll to the part that actually makes sense here. There's a lot of pod details. Let me just look for going here. OK, so I have a container here. It's got image going, and it's pulling from Docker, and it's running. So you can see that I've scheduled a pod to actually run all of this concourse job. So inside of this deployment that I have set up, it's actually, instead of using garden containers, it's scheduling everything inside of Kubernetes pods. And in case you think I'm lying, I can get the logs from that. It doesn't have. It's not GetLogs. It's Logs. Confusing. So you can see the logs match. So this isn't some demo tomfoolery happening here. This is actually running Kubernetes pods for concourse. So how is this different than, I mean, I know if you just search on GitHub, you can find a lot of different ways to integrate concourse with Kubernetes today. How is this a little bit different? So the big difference is that instead of deploying garden workers into Kubernetes, I've actually deployed a worker that just has baggage claim, and that's the volume manager for concourse, mostly for reasons of demoing it and getting everything together for today. So there's no garden scheduling of any of the tasks containers that are running this. So there's no garden container anywhere. And the difference really is that we're not nesting containers in containers, which often runs into a lot of problems. So it's a little bit more of a natural. Yeah, it's a bit more natural. And lots of people kind of come to us and say, why haven't you done this? Why don't you integrate this? And the big difference, too, is that concourse has its own scheduler, and it decides kind of which node to run things on. Whereas Kubernetes, I kind of just throw this workload at it, and it decides what node to run it on. So the ATC inside of concourse doesn't need to worry about where it's scheduling that workload. Very cool. Very cool. All right. Well, is there anything else that you wanted to share? Yeah, so the other big buzzword that I had down here. Look, you really did put it in all caps. Yeah, I did. I just wrote them in all caps because I wanted to remember these things. So this is my hack job of getting this to work. I did some refactoring. I kind of massaged the code to get this to work. But we've opened up this new kind of way for us to get feedback from the community on big changes that we're making in concourse. So we started this RFCs repo. You can see we have two pull requests hanging out here. There's one for a new version of the resources interface. And then there's one that I just created a couple days ago for this new Kubernetes runtime. If the Wi-Fi works, I can go scroll through it. And there's kind of a lot of details on problems that I ran into, getting this to work, things that I'm still kind of figuring out, like that baggage claim that gets deployed. So you want help. Yeah, so we want help. We want people from the community to come and tell us how they think this should work, what their needs are, and how they deploy Kubernetes, and how they would want concourse to use it. Very neat, very neat. Topher, thank you so much for showing that. That's really cool stuff. So how about a big hand for Topher? Thanks a lot. Thanks a lot. Appreciate it.