 Good evening, good afternoon, good evening and welcome to another episode of Red Hat Portfolio. And we're live. Thank you everyone for joining on another episode here on Get Up Sky to the Galaxy. I will be your captain in this journey here. My name is Chris Hernandez. And today, I'm happy to be joined by my co-captain here by Alex Collins here. Alex, can you give just kind of like a brief introduction of who you are, where you're coming from, and kind of what you do there? Hi, Christian. So, hi, good morning, my name is Alex. I am a principal software engineer into it, where myself and my team work on effectively the kind of enterprise Kubernetes platform for the company. And amongst the kind of tools and products and capabilities we produce for them, we work on a suite of open source products called Argo. And I'm responsible for Argo workflows and Argo events or anything that kind of deals with data within the Argo world. Nice, nice, awesome. And I tweeted this out a couple of days ago. I was really excited to have you on and really excited about today's subject because I actually kind of had to hunt Alex down a little bit in KubeCon. I was hunting him down. I was like, hey, Alex, I need to talk to you. I need you to come on my stream. So, I'm very, very excited to have Alex come on because I've been wanting to do a stream about Argo workflows. So, here at Red Hat, we use a lot of Argo. Our enterprise offering, GitOps offering is based on Argo, so our Argo CD. So, we use a lot of Argo CD here. And a lot of our users, a lot of our customers are always asking about workflows. It's like, well, what do you think about workflows? When are you going to do a stream about workflows? I'm like, you know what? I want to get the message directly from the source here is and get Alex on here. So, yeah, Alex, what did you think about going back to KubeCon? So, like, we were both kind of there at KubeCon. It was a little weird coming back right after like being, you know, not having to do the things and doing everything virtually now in person. I thought it was a kind of nice that it was kind of scaled down. There wasn't a lot of people there. It was a kind of great thing to ease into. But I'm kind of curious as what you thought about going back. It felt like the first normal thing I've done in a very long time. Yes. It felt like it was the first time getting on a plane in a year, the first time kind of being in an environment with a lot of other people for a time. But it felt really good to kind of be able to spend some time with my colleagues and meet with other people from the Kubernetes community. That was really good. And it was definitely different. It was definitely different to the previous KubeCon I went in 2019 to that. And it felt quiet. But that was nice. I think I liked that. Yeah. I thought so as well. It didn't feel so crowded. It was kind of nice. I think it was a good first step back into, like you said, kind of like it felt like being back normal. So anyways, again, thank you for coming on. I always like having the Intuit folks come on. We've had Hendrik on before. We had another Alex on before. There's a lot of Alex. Alex is an Intuit. I counted at least three. So I don't know. There's probably more. Yeah. Anytime I talk to Hendrik and I say Alex, he needs to be like, well, which one are you talking about? I'm like, oh, yeah. I need to specify. I had to say the whole name. So cool. Yeah. So again, thanks for coming on. So I kind of want to talk about a little bit about workflows. So today's episode is about workflows. What is workflows? Just kind of from a high level. There's the Argo CD that sits under the umbrella of Argo project. A lot of people say Argo. And what they mean is Argo CD, not knowing that Argo is actually a project with a lot of, I guess, sub-projects, a lot of products under it. I don't know what to call it. But yeah, can you talk about what is Argo workflows? Yeah. Context matters. In workflows, when people say Argo, they mean Argo workflows, they don't mean Argo CD. It gets confusing when you're trying to talk about both of them. People are confusing. So there are basically four projects within side Argo, two big ones, which are Argo CD and Argo workflows. And they each have a little sibling, like a younger brother or a sister. And for Argo CD, that younger sibling is Argo rollouts. And for Argo workflows, it's Argo events. And they tend to complement each other. The main commonality between Argo workflows and Argo CD is they're both very fundamentally cloud-native. So everything understands Kubernetes, knows that it's running on Kubernetes, and kind of leans and leverages all the capabilities that provide. So things like the ability to declaratively specify resources or the RBAC model or auto-scaling capabilities. And so I'll go CD and Argo rollouts, kind of focus on application delivery. I won't talk too much about that because obviously people can go and listen to other streams, I'm guessing, if you want to learn about workflows. So Kubernetes doesn't have a system built into it that enables you to run a process that runs to termination. The default model is that you run a number of pods on Kubernetes and they can be killed at any point. Kubernetes makes one promise and it will kill your pod at some point. That's the promise it makes and it will give you no warning of that. Which is great for like a web application, a status web application. But a workflow is typically, there can be a lot longer running. You typically want the pods within your workflows, the processes within your workflows to run to completion. And if they take an hour to run, then you don't necessarily want Kubernetes to kill them during that procedure. And they are, so they're not typically irreplaceable, but they do tend to run for a specific period of time. So that's kind of really what one of the things that workflows brings to the table is the ability to kind of run short-lived controlled processes there. The other thing that workflows does is because it leans on how Kubernetes does scaling, it can scale out to very large workflows. Yeah, very large workflows. And just kind of step back in the conversation a bit just to define what a workflow is. I mean, a workflow is just defined as a series of processes that may or may not run on a schedule. Kubernetes provides like built-in job. But it's very simple. It can only run one pod. And the workflow typically needs to be much more complicated. Often there, you'll have a workflow where you have a first step, which goes and figure out what actual work needs to be done. And then it'll fan out, running one process for each of those pieces of work. And then maybe it'll fan back in later on to do it. That's kind of what a workflow is. An Argo workflow allows you to do that. But you don't need to use kind of any scheduling system because you can use this. You can just install it straight in your cluster. There's no kind of special setup for it. It's very easy to get started compared to other similar pieces of software. And it can do kind of very, it's designed and it's also tuned and optimized to do very large scale workflows. And people today are running workflows with 20,000, 30,000 individual steps within those workflows. And I've heard people talking about 100,000 steps. And actually Kubernetes itself can only do 300,000 steps by design. So we're kind of approaching the limits of what Kubernetes can do in terms of workflow execution. So we provide that so you can specify your workflow as a Kubernetes custom resource. And when it executes, then you can use all Kubernetes APIs to interact with it. All those standard APIs that are very similar to ones used for kind of pods and deployments. And so you can review the logs of the different steps. And because workflows is kind of a general workflow execution engine, it is pretty popular for building platforms on top of. So if you need to build some kind of batch processing platform on Kubernetes, something that's running tasks and you want to have an API and say, please run these tasks and I want you to run any of them, then workflows works really well for that. And so it's pretty popular. It's very popular inside the machine learning community. So Google pipelines uses our go workflows as its workflow execution system. And I spoke into quite a few different people about how they use it. And into it, it's the execution component of our batch processing platform and of our machine learning platform where it's used to perform kind of model training and execution for it. And it kind of applies, it kind of provides other kind of standard workflow execution features like the ability to schedule a workflow to run a particular time or a particular schedule and then kind of webhooks and endpoints that allow you to do that as well. So that's workflows in a nutshell, but not much of a nutshell, very large nutshell. Yeah, well, it sounds all, I think you hit a very interesting point here, right, is like their Kubernetes itself does have, effectively is what you were describing as a batch system, right? Like it's basically, it's like you run a job and it, but it's very simplistic, right? It either run a job. If you need it to run a regular intervals, you have like the cron job, right? Which is like, you have that, but it's, it's, it's super simplistic because, you know, although it has retries, it's very simplistic in a retry because it's either like, it'll retry when it fails, right? You can set it up to say, when it fails, retry, but, but like if you're, if you're, some things are more complex than that, right? Sometimes I want to retry even if it succeeds, like there's, there's certain conditions and things. So what you're effectively saying, what workflows is, is putting like an intelligence around running things that need to run in batch, right? And things that not long lived containers, something like, like, like you mentioned, like, like a web server, right? Or maybe like a, a, a, a stateful application or something like that, that has a long live lifetime. No, I need, I need something done and I need to do, you know, at scale and I need some intelligence built around that, right? And so, so that's, that's really cool. And I think one of the things I should let people know is it's funny that I would say Argos CD gets a lot of love, right? Like there's a lot of stuff around Argos CD. But if you look at it, Argo workflows has more stars on it on GitHub. So there's like, you know, it's, it's not a competition or anything, but it's, you know, it's a lot of people are using our workflows and a lot of, you know, especially our users at Red Hat are starting to ask about workflows. So, so it's, so it seems that workflows came about inside that did it, did it come, the idea come add into it or was it part of the, part of the acquisition, part of the software, the acquisition from athletics, I think it was, right? That's, that's right. Yeah. Yeah. It was, it was part of their products that they were developing at the time. So I guess that's probably about three years ago, I would say two to three years ago, I'd have to look at the GitHub history to find, to find out. And actually, I think workflows, workflows predate, so I'll go to CD in fact. Oh, okay. Oh, so they're, they had a head start with the stars. So, um, yeah, yeah. I don't, I don't understand why it has more stars than I'll go CD. I'll go see there's a lot more noise around it and a lot, you know, other metrics show is very popular. So it's kind of interesting that that has more stars. I think it comes down to I've been a straight versus end user. Ah, yes. Yeah. I think with your, you, um, as an administrator of our go as a user, I'll go CD. You don't necessarily ever need to go to the algo CD repository. Because your, your, your company will tell you how to use it with our go workflows. You know, you might need to do that. So we have, have more of that information. Gotcha. Gotcha. What, what's, what's really interesting and I'd like to hear kind of like the usage of, of workflows, um, inside into it and into it. And I think you alluded to a little bit, right? Like a lot of people doing like batch work, a lot of doing like AI ML work, right? Like when they have to do something, a lot of batch work at scale, it sounds like you guys that into it are doing a lot of that in, um, AI, you know, in machine learning and artificial intelligence work and into it. But what's, what's interesting is that I've, I find a lot of end users that I speak to that are using workflows are using it, um, almost as a, as a pipeline as a CI system, right? A lot of people are using it as a CI or is, are you guys using it internally as a CI system as well? Or, or is that not, not, um, the intended use, right? No, we, we, so, I mean, we basically, um, it is installed like by default in, into it clusters. So it's just, it's just there and running. And so if you want to run a workflow, you can just run one, the same way you can just run a deployment. It's, it's, it's, you know, there's no, um, setup for you to do that. So people use it for, for all sorts of different sorts of different things. So we, it could well be that the people are using it for CI CD. We, we, it's not, it's kind of an interesting, I always think it's quite interesting. We, we don't ever really target CI CD use cases or more CI, obviously. But people, you know, that is a popular use case for workflows, you know, triggering, triggering a build off a, off that. Um, yeah, that's fine. I think it's quite hard to build a generic workflow engine without making it work quite well for CI. Yeah. Yeah. Yeah. Good. Good. That's a, that's, that's, that's a very good point, right? Like you inadvertently create something that, right? Like if you're going to do a workflow, inadvertently people will say, hey, this might be a good CI system because, um, and, and it's always interesting when you build something and, um, and like people start using it for like other things, you're like, oh, interesting. I never thought about that. But yeah, I guess you could use it for, for, for something like that. So the CI, um, yeah. So a lot, a lot of people I talked to using it for CI for at least, um, um, for, um, testing, like something like a, like a feature branch, right? Like they would, they, they can set up something really quick to test a feature branch using workflows. And I think that's, that's, that's, um, that that's, that's really cool. So, um, so yeah. So the, um, the, uh, some of the work that you guys done inside, it sounds like a lot of the projects that came up, um, inside Intuit with the Argo project are basically just out of necessity, right? Like some of the things is like, Hey, we need something that does something and Kubernetes isn't, isn't providing it now. Let's just build on top of that. Yeah. Yeah. I think that's very similar. Yeah. Yeah. Cool. Cool. So, um, I think, um, I think in case you guys, I'm going to drop some links in the chat here. Um, in case you guys want to read more about workflows, right? Um, there's, uh, there's a link there. You can definitely go to the, uh, read the docs. There's, um, um, great video there, right? By the way, um, I think Alex, you did that video, so you can see that there is, as well. Um, some good, good things there. So I think, um, if anyone has any questions, by the way, go ahead, feel free to drop it in the chat. I'll, I'll, I'll feed it through. Um, but I think, um, I think Alex, hopefully let's cross our fingers with the demo gods here. I think Alex is going to show us a little bit about, um, kind of like a use case you would use or kind of just kind of just show what, what, what Argo workflows looks like or what it can do. Um, that's, that's, uh, cross our fingers here, demo gods. Hopefully it'll be ours. Oh, it's already, it's already running. Cool. So what I'm going to do is I'm going, I'm going to, I'm going to avoid the CLI. I'm just going to stick with the user interface. Um, and actually you can go and check this out yourself. I just, I'll share the URL here in the chat. Can I do that? Oh yeah, the, yeah, the test system. There you go. This is the public test system. So hang on. I'm just, know what's happening here as I'm finding myself in something else that I don't want. Um, so this is, uh, this is kind of like our demo system. I work close to apps to Argo, project IO. Um, and this is kind of there to showcase some of the user interface features of it. Um, and I'm just going to go for a couple of features here to kind of talk a little bit about them. Um, so this is, this is the main page. This is the page that most people will spend their time in here. And this page basically allows me to have a little look at kind of running and completed workflows. So I can kind of just change the fielders here and I'll see some, some recent workflows. And you can see that there's a calendar workflow running there. And that's running on, um, a regular basis. So we have like, as we talked about workflows, we have, uh, you know, as a job has like a cron job, we have, um, a cron workflow, which allows you to specify, uh, a workflow that runs on a period of time. So we've got one here, um, running this, um, uh, particular template every five minutes. So you can see that provides the information there about that when it's going to run. And inside that template, I think we will find that it specifies a particular, um, template to run afterwards called, um, coin flip. And basically this, this, this template is, um, a template that will do a flip of coin. That'll run, um, every five schedule. So if a little look at the templates here, we can have a little look at the coin flip template here. I'm just gonna kind of get straight to the spec. Okay. Let's go to the spec. So basically inside a workflow, you'll specify a series of templates and the templates will execute in order. And in this example, we basically got, um, so a template that will flip a coin, step one, then, uh, step two is conditional. So if the output of step one was heads, that'll run that one. Otherwise it'll run tails. So basically, this is a simulation from running a coin flip. And further down in this, we have a kind of a script here that shows you what's actually going to flip the coin. So I'm basically specifying a script here, a Python script that's executed and that imports the random library. And then it just, you know, those flips of coin and prints out the result of that. And then also in here, I've got some other ones here demonstrating some other basic capabilities here. So this one here, this is the tails one. And this just prints the console. It was tails. Okay. Now back in all, it should be up to see, uh, an example of this one. If it's there, let's try again. Sorry. There we go. There we go. So previous examples run there. And you can see here, I've just gone through. And this is kind of a visual representation of that particular workflow, showing that it's flipped a coin. And then as a result of it being heads, it's from the head step there. And I can, I can click on the heads. I hope this works. This was broken earlier today. Fingers crossed. It should. I hope you're getting some logs. This is what it's looking for. There you go. You can see in the log file, it's printed out. It was heads. So kind of comparing it to a kind of Cron, Cron job and a job, you know, you've got a user interface here that makes it kind of really easy to investigate what's going on with your workflow. And I think maybe you just look at the CI CD use case, kind of a really common thing that people need to do is they need to actually go into their system. You don't tend to worry too much about when things have been successful. But what is typically a lot more interesting is when something has been unsuccessful, which doesn't appear to be the case today, it allows you to go into that, into that same user interface. When you click down into that particular workflow, then problems with it are highlighted in red. And it's just very easy to get in there as well. So what I was going to do is I'm just going to submit a new workflow here. And I'm going to just copy and paste it from this document I have here. So being a kind of Kubernetes object that appears in the Kubernetes API, I've seen my workflows get a name and they run in a namespace. So that namespaces allows me to isolate different teams and each different team we use can have a different namespace. They tend to run under a specific service account, running their permissions. And this one's got some parameters here. So the parameter I've got here is it's called a message and it's the value is Hello, Argo. That's going to be Hello, Argo. And then there's a lot of template here that will take that input, that parameterized input. So in this example, that parameter is a message, but that could be a git branch or it could be pretty much anything else. And then it's going to run this container here and that's going to print that message out onto the console. And there's some kind of additional configuration about TTLs and so forth. So let's just create that. Okay, so there it goes. And now you can see it in this graph again. This is a very simple one. This is a single node here. So it's not got very many parts to it. Now, do I have a, I think I've got an example of a one that's got many nodes on it. Let me have a little look here. So you go, you see that ran to completion and it was, you know, just ran pretty quickly to completion. Let me open this up. So I'm just going to bring up a couple of examples to see if I can pop these in these tabs. Yeah, there we go. So this is just kind of a pretty common example of a workflow. You know, it starts out with a step, that map step, going to get some data from a database, splits it up and sends it elsewhere. So that's one example. This is a slightly larger example. This came from a community member I should attribute. So this is kind of the kind of thing you can do. So, you know, I can do a big fan out and I can have a lot of steps there. So you can see there's probably about 20 steps across by about 40 steps down. So they're probably running about, you know, 2,000 pods in that one. And then we can have a look at this one here. There we go. That's an even larger one. I can't even begin to guess how many that is that's running. So that's quite nice. That's a good deal. Yeah. It's quite pleasurable to see that. And we do a lot of that into that. So there's that aspect of kind of running them. You can also kind of create a thing called a binding that allows you to trigger a workflow based on a message. And I'm hoping we'll have some examples here. Yes, we do have loads of examples here. So in this example, this one has been triggered by a GitHub event. So something's happening in GitHub. Maybe it's a pull request or a new issue or something like that. We have a very busy repository, I think. Otherwise we wouldn't see this. And we can see that this is now running a container. And then I don't know what it will do. Oh, it's just going to print out a message. So let's see if that appears in logs. Here we go. And you can see that it's basically printed out. And the message that comes from the other payload looks like. Yeah. So they're kind of more paid. Oh, hang on. What happened there? Here's a jumps. It actually jumps. As it, as I clicked, it ran a new workflow. That's the calendar one. I wanted to have a look at the Github one. Oh, there it goes. Okay. Yeah. So this one's failed. But that's fine. We can just have a little look. And it should show information about that. If it doesn't do that, I can kind of go in here and investigate here only why it failed. So it tells me this pod ran for too long. So pods on this particular cluster have to run within a minute of 30 seconds. Maybe otherwise they get terminated. That's going to prevent any particular workflow consuming too many resources. You want anyone Bitcoin mining rate in your workflow, right? That's a bit of a sore point for us. It's a bit of a sore point. I could talk more over that over a beer. But yeah, we did find out about it. We did. We weren't actually informed about this. And the security company just didn't speak to us about it at all beforehand. They just published that people were mining Monero on secure work, for instance. Actually, they were also at the same time doing it on Github actions. So Github actions had people doing Monero mining. Yeah, I heard that as well. Yeah, because basically the people have been misconfiguring the user interfaces and leaving a corporate installation of Kubernetes open to the internet. And people don't have that finding them. So yeah, don't allow ingress from the internet. It's probably a lesson to be learned. That's the lesson there, exactly. Yeah, we've changed that now. So you actually have to make more effort now to misconfigure it in that way. Don't make it too easy. We've made it hard to make a mistake, which we made it harder to make a mistake. But people can still, you know, you can open your Kubernetes API to the internet if you want to. We can never properly prevent you doing it. So I talked a little bit about this. Just we have some other areas in this application here as well. So this is the arguments that I talked about here. So this is kind of a new visual representation that's been in the user interface for about six months now. And this just allows you to see your execution here of your code. So this one kind of just shows you the, which is like a cron job, and that's triggering a couple of things in here. And you can see that one of the outcomes of that is it's running a workflow every, I guess, is every 30 seconds or whatever it is. I'm not exactly sure. And we have a few other areas in the product as well around things like an archive and reporting. Did I want to show you anything else around the user interface? So that, I mean, that's kind of it. If you want to try out workflows, you can go to our GitHub repository. We have a quick start guide there. And the quick start guide will install in a test namespace for your Argo workflows controller and the, which actually runs the workflows and the user interface. And also a piece of software called Minio, which allows you to kind of pretend you're interacting with S3. Which is kind of a useful component to have installed. Especially because of... Yeah, especially when you're testing, right? When you're trying to figure out your own workflows. Yeah, really useful. Yeah, great piece of software. One of the kind of like common things that people do with workflows is one step in the workflow will download a kind of pretty large file from S3. You're in the GCP, you're in the gigabyte range and then perform some processing before uploading that back. So that's kind of one of the nice features about it. It makes it really easy to get that data out of those systems and then perform processing on it. Yeah, and I actually went through some of those examples and it's actually pretty cool some of the things that you can do with workflows, especially the DAG. You know how like people build those trees where the dependencies, right? So like, especially if you have workflows depending on other workflows, that depend on other workflows, right? Like, you know, you have, you know, A depends on B, B depends on, you know, no. B depends on A, C depends on both A and B, right? And you can kind of have like this logic tree that you built out, which is definitely, you know, I put the link in the chat for Argo workflows. Definitely check that out. It's actually really easy to get started, especially for testing purposes, you can just spend up a kind cluster locally and test that out. There's a lot of really cool features, really neat features. What I would actually really, so you mentioned earlier about how like events is kind of like a sibling, right? Or something that came out of a necessity that you found in workflows. Can you talk a little bit more about what events does for you with respect to workflows, right? So like what is that problem that was being solved with the event? Yeah, so kind of running a workflow is kind of half the problem for most users. The other half is deciding when to run it and what to run it with. And so people need options to trigger workflows to run under certain circumstances. And kind of Argo events provides a number of different ways to do that and kind of logical conditions that allow you to determine when that should happen. So the example here I'm just using, I've shown as a calendar, but another kind of common example would be to trigger it from a message that comes through Kafka, but maybe not every message that comes through Kafka. So you can create in Argo events a thing called an event source that listens to a particular Kafka topic and then filters those out before starting the workflow. And there was, I was speaking to people from Pulsarum from Kafka recently actually about this and it's just a very large kind of ecosystem of dependent, we call them event sources, but I think more commonly they're called connectors that allow you to connect your software to another software. And it's kind of a big market for kind of moving data from one kind of event queue to another kind of system. And so Argo events kind of can sit in front of Argo workflows and provide you with those various options. And it's interesting, pretty popular with infrastructure automation. So that's like a kind of a hidden use case that Argo workflows allows you to do. If you're doing automation on your clusters and you want to perform various bits of upgrades, actually Argo workflows works really well with that. Actually can work extremely well with Argo CD actually combine those two together, use Argo CD to determine which clusters the things run on and use Argo workflows to define the actual job that needs to be done on those ones. So yeah, Argo events has gained a lot of popularity over the last year as well. It's not hugely popular like Argo workflows, but it's getting a good amount of momentum, I think. We've seen some great new features such as the addition of support of Redis Streams, which is pretty new as well, which we didn't have that before. So that's pretty exciting. Yeah, also I think what's really cool about events is kind of you guys kind of have like a generic I want to say for a lack of a better term, kind of like an event listener or like kind of like an endpoint, right? Where I guess the most common use cases is what they call slack ops, right? Where it's like you can send a message, do a slash something and it'll trigger some sort of event, right? Or you have that generic event listener sort of thing with Argo events, right? Yeah, we do, yeah, yeah, yeah. So it's really, yeah. Yeah, and it's actually pretty cool. And I think a lot of, again, I go back to that CI use case where it's like, well, how do I trigger CI? You know, it's like, well, you can use events to trigger a workflow that does kind of like your CI build system. Again, kind of like a weird, people are using the software kind of like, hey, I never thought that they'll be using it that way, but I've heard a lot of people using it kind of like a webhook endpoint or like an event endpoint when someone makes, let's just say, a commit to a particular branch for instance, right? That endpoint could be set up to trigger a workflow. And so I think that's kind of like a cool use case for events. It's kind of like a generic wrapper around all your, I guess, endpoints for webhooks, right? Because from what I read, I see it in the doc, you can set up multiple endpoints depending on what you needed to do. Yeah, you can do it, yeah. I will write, I talk a bit about these kind of broad categories of what people use it for, these bits of software for. But I actually often get surprised. You know, you find out that people are using it for something we didn't know. So workflows is being used at CERN for orchestration of some of their kind of particle physics experimentation. I've spoken to quite a few companies doing kind of medical analysis, you know, and doing machine learning around kind of like, I don't know what it's called. Is it called MedTech? I don't know what the term is for it. Oh, yeah, for, yeah. MedTech, yeah, yeah. If it isn't, we'll coin that term. There you go. We'll do it. And we'll immediately copyright it. So like MedTech companies speak to a lot of people doing that. But if people from CICD as well, we speak to about that. Image processing, people doing image processing jobs. People doing all sorts of machine learning, everybody who's building the machine learning platform is using it. I think we always have interest, people always come along with new demos. Oh, so here's one I had no idea that people were using it for. Litmus Chaos, which is a chaos testing framework. Okay. Yeah, I can see that. They use it to basically schedule the chaos tests within the framework. If I sat down for a week and spent my entire week just trying to write down the kind of things you could use workflows for, I would have never have guessed that. That wouldn't have been... Yeah, I would have guessed something, yeah. It would have just completely caught me by surprise. So we run a monthly community meeting. Third Wednesday, if you want to put it in your calendar. And the kind of cool thing about that is people come along and demo their kind of products. And it's kind of the most popular thing for... Almost what makes that community meeting. People come along and they get to see what other people are doing. Maybe not necessarily demo their products, but kind of show their use case and show how ARGO helps them resolve that. And that's always super interesting. Like a show and tell, almost. It's like, hey, look at the kind of cool thing I'm doing with these products. Yeah. Yeah. It's always fascinating. There are loads of questions about it. Yeah, and it's always really... What I find interesting about just the ARGO project in general is that the data science community has really latched onto ARGO project, like the software a lot. Because I've seen a lot around ARGO CD and workflows when it comes to data science. Right? And so I think it's always interesting to see those use cases as well, because I'm really far removed, right? I'm more on the application deployment aspect of it, using it for application deployment, using ARGO CD for get-offs and application deployment in workflows. But I never see that side of it, right? It's always interesting to see what other people that aren't necessarily doing software delivery, because there's a ton of use cases, right? Especially for... Another thing I could think of is I would think JPL would use this for also their machine learning type of thing, right? Someone in that aerospace industry definitely can use something like that. So you can go and look at our users file, but there's quite a few automotive manufacturers in there. Our companies inside that file, which is kind of interesting, but it's kind of hard to know what they're using it for. I'm sure that ARGO workflows is probably not the execution engine for self-driving cars. I hope it's not. That would be... If you've got a Kubernetes cluster running inside your electric car, maybe people do, I don't know. Yeah, we don't know that, right? I guess it's possible, right? Although if it's not being done, maybe we should be doing it. Yeah, exactly. Yeah, we would like to hear it, by the way. So if you're watching this, we would love to hear those use cases, right? So yeah, so I just dropped down. If you can see down in the screen, ARGO workflows, that's the GitHub page. So if you want to check out the upstream, what's going on there, what's coming up next, and speaking of what's coming up next, so are there anything that's coming in workflows that you guys kind of like that you've been working on for a while and you're about to release, maybe something you're excited about? Yeah, so we just released version 2.2. I'm trying to remember what we have in that. Oh, so that introduces a new capability called a HTTP template. It's in this blog somewhere, 2020. I mean, this is our blog and you can come in and find version 3.2. No, I can't find it. We'll have to come back to that another time. So that's going to have the HTTP template, which is basically a way of a much more inexpensive way of doing particularly HTTP requests inside your workflow. I kind of think that there are kind of three things I'm actually really excited about in the future for us. The first one is we've just, a lot of our users love Python, but we haven't kind of given them the best experience yet. They don't really want, they don't really like, they don't love YAML, I wouldn't say. So we are now going to, we had a community maintained Python SDK, but what we've now done is bring that kind of client library and the Java client library into the main code base. So those are all going to be updated and published automatically. So that would be a better experience for them. And there's been a new joiner in ArgoLabs called Hera workflows. So people who want to write workflows in Python, there's kind of, there were two ways of doing it, which one was to use Kubeflow pipelines, and then they have a transpiler that transpiles Kubeflow pipelines into workflows. Then there will, there is Cooler project, which is kind of a Python SDK that transpiles from Python into, the intention is to transpire into the airflow and Argo workflows and other kind of systems. And now there's a new one called Hera, which I think is really nice. It's a really nice kind of syntax. It's very directed at kind of that common use cases. And I like it. I think it's nice and simple to use. So that's coming up pretty soon. After that, the big feature, I think kind of a lot of people are waiting for, the most popular feature is going to be multicluster workflows. I just, I think multicluster in general is a big topic. And so the idea of a multicluster workflow is one workflow where the steps in the workflow run in different clusters and different namespaces. And that has loads of kind of interesting use cases such as, you know, my workflow is a full end-to-end deployment because the start of the workflow builds, my application tests it, you know, then it gates it with an approval step, a click on approve. And then the next step of that workflow, rather than running in that kind of pre-production cluster, now runs in the production cluster, installing the application. So I think that's going to be really neat for that kind of use case. But also the same kind of thing with machine learning, you know, the first part of the builds, my model, and then maybe there's a gate step in the middle of an approval step and then it goes into another cluster and installs that more than that. In that cluster, I think that'll be, I mean, that's just a very popular feature. Yeah. Yeah. And a feature I don't know, we are having kind of, we're spending some hack time on this feature's plugin system, which is, I felt like it's one of those features that people don't ask for, but could potentially turn out to be pretty game changing for people because it opens up loads of new use cases for it. And the idea of a plugin is you as a user, just write a Python script and then there are various places in the workflow life cycle that you can tap into to, you know, do things like, you know, create notifications as a result of a workflow completing, which is a pretty common use case. But also more than that, write your own types of template. So if you wanted a workflow, they didn't just execute pods, but, you know, send a Slack message or it's not a detect on CD job or, you know, run some Sparkier master. But that was just, you know, it's just thanks, it's just part of your workflow. You don't have to do any kind of translation. That's something we're kind of developing as a proof of, I would say it's kind of alphory. I was about to say proof of concept. I think it's beyond proof of concept, but probably not at the beta stage. Yeah. And we demoed this. Okay. We demoed this and the thing I like about this is whenever I speak to somebody about it, they tell me, oh, I could do this or I could solve that problem like this. And I demoed it to my VP earlier this week. We did a little demo session and he came up with a great idea that I hadn't even thought of. Yeah. So that was a really great aha moment. I was like, oh, we could do that. You know, we don't need to do this. This can be super simple. But the downside possibly is that occasionally I'm seeing features that if we had had a plug-in framework at the time, maybe we wouldn't have built those features. Yeah. And I think they'll be neat for users because they will be able to write their own templates around plugins, build in features and capabilities. But they don't need to wait for a software release for that. They can just do it themselves today if they want to. And have it done in production tomorrow. Yeah. So those are things you're excited about. Plug-in. Yeah. And you know what I'm most excited about, Christian? Uh-huh. You know what I'm most excited about? I'll go, Con. Yes, exactly. Exactly. Yeah, exactly it. Right. And so for those who don't know, ArgoCon is coming. So let me give you that link, actually, because registrations are still open. ArgoCon is happening December 8th. I'll be there. I actually have a presentation there, so shameless plug. Alex, you'll be there. I don't know if you have a presentation, but if you do, check that out. We do have a question in the chat, though, here about workflows. So it says, Stefan says, I noticed that Argo workflows doesn't support processing multiple resources in one file, i.e. kubeply-f manifest file. Is that something you've seen a workaround for to be more specific within the manifest field in a workflow template? Interesting. Yeah, so I think the probably the short answer is we don't really cater for that. I think he's probably talking about the CLI. The CLI tends to focus on a single workflow at a time and operate on a single one, so it's kind of hard to submit two workflows from it. But often, you can use kubectl to do this. So kubectl create, and if you give it a final, it'll create those workflows for you. Yeah, so I guess you can try to server-side apply that. I'm not sure. Or do it like an item list. I don't know if you've, Stefan, who asked the question, I don't know if you tried an item list or if you just tried the standard YAML, the triple dash, right, sort of thing. So I would try either a server-side or an item list. I think that would be, I think that would be good, too. So here, did I drop the argocon? Yes, I did. Yeah, I'll say this again, we're trying to use customize to try to do some of that. So interesting. Yeah, you should be able to do that. I mean, we use customize ourselves for doing a lot of stuff. And one thing we do is kind of get-ups workflows as well. Oh, uh-huh. So that should be possible. Obviously, you can find us in our Argo Slack if you want to talk more about that. Yeah, yeah. So if, also, there was a link dropped for the latest release here of Argo workflows. Is the best place to talk about or to have questions about Argo or to get involved? Is that in the CNCF Slack? Yeah, yeah. We have an Argo Workflow channel. And people are pretty helpful in that. You can jump on there and just ask questions. People usually can help you out. Or check out the docs as well, of course. Yeah, or an issue. There is a Slack account for the CNCF. I think it's cncf.slack.com, I think it is. Yes, it is. I just looked it up. So let me put that. So here is all the, it's like a generic, I guess, Slack for everyone, right? For everyone who is in the CNCF and has a project there. I dropped the link in the chat. There is Argo channels there, or there's channels I'm looking at it now. For workflows, for Argo CD. There's an ArgoCon channel, by the way. There's there. So if you're interested about ArgoCon, there's one in there as well. So I'm active on there. I think a lot of the stuff, I bug. A lot of the Alexes from Intuit there. So as well as Alexes. Yeah, many Alexes. It's one of one of you many here. So here, so in the closing minutes here, it looks like we have about five minutes left here until it's off the hour. I don't know if you guys have any more questions out there to round this out. I do have a, other than ArgoCon that we just mentioned. Again, remember that's December 8th. I am running a survey. So the survey, if I can get my bit.ly link. I'm running a survey about how you're, let's see here, LinkedIn the chat. Yes. So the survey is LinkedIn the chat, as you see there. We've been doing the show for a little over a year, almost two years now. This is the second, in December, we're going to take our second winter break that we had. So it's almost, so it's about two years. We've done a lot of things. So we want to check, if you want to check it out, what you like, what you don't like about the show, if you want it to be different, same. Be, I'm the type of person I don't know about you, Alex. I guess working in software is like, give me all the feedback you have, even the nasty feedback. Like don't be afraid about being too mean. Like I'll filter that out in my head. Because I want to hear like actually what you think, because a lot of the times frustration can be good. I look at it as like, okay, this is feedback. This is a point of frustration. So again, go ahead, fill that survey out. I want to see how we're doing and what, what kind of shows you guys want here. See here, doing a check here in the chat. There's no more questions coming down here. So yeah, so Alex, where, I don't know if you have anything to plug. I don't know if you have like, if you want people to follow you on Twitter. I don't know if you have a Twitter account or if you just want people to just join the community, let us know where we can find you. I think some of the sad stuff you said, it's great to kind of get feedback from people. But if you have comments or feedbacks or bugs, it's kind of great to hear about that. Sooner or later, I will be speaking at AgaCon. I'll be doing like a maintainers updates rather than a presentation. So I'll be able to give you an update on that as well. Yeah. Well, actually, that's pretty cool. The maintainers updates are always really cool. So I actually, I'll look forward to that. I'll probably be attending that. So here, yeah, so follow me on Twitter, right? So that's my Twitter handle is somewhere on the screen. It's kind of hard to see because it's like mirrored on my site. So I guess it would be that side. All right. So yeah, yes, exactly. Follow me on Twitter. Make sure to like and subscribe, right? So just kind of like all influencers are saying, click the subscribe button. Make sure you click that to help us out a lot. So yeah, so I think with that next week is, there's no, there's a show every other week. So I guess the fact that we're on holiday here, in the US worked out for me because we don't have a show that anyways. But so just everyone who was in the US have a good holiday. Good Thanksgiving here. So with that, I think we're good here. So as I always say, right? Unless it's in Git, it's only a rumor. So I like to close out with that little saying. And yeah, so everyone cheers. Thank you, Alex, for coming. Bye, everyone. Thank you, Christian.