 Let's get into the big topic of open source, something that we actually have in mind. This is so awesome. We are an open culture that is actually in place. It's that process that they felt, or let's say, as the communities of the system really boomed. All right, and we are live. Welcome everyone to Get Off Sky to the Galaxy. I'll be your captain in this journey, Christian Hernandez, technical marketing here at Red Hat. And excited. I'm excited for today's episode. We're going to be talking about Argo events, right? And so, trying something new, anytime I put exploring in the title, right? So exploring Argo events, that means that you're going to see me doing a lot of hacking and hopefully breaking some cool things. And also, that's going to be your signal to that. We're going to revisit to that topic part. I was actually talking to Stephanie here. Stephanie, the producer about the survey, right? And part of the survey that you guys did, by the way, thank you. We did, we did that last, last year closing last year. I can't believe it's 2022 already. But one of the things that came out of that survey is you guys said that you guys would like for us to revisit some topics or further expand on some topics that we've already covered, right? So, I decided to kind of do this exploring thing, right? And so, anytime you see exploring in the title, it's going to be kind of your cue of like we're going to learn something new and there's going to be further episodes as we explore further on. So, the, today's, before I get on to the topic, hey, Waleed's here. Welcome, Waleed. Welcome, welcome here. And, oh, and Tiger's on as well, Tiger the intern, although Tiger no longer the intern is here, but that'll be forever your name for me. So, yeah, so before we get into that topic, I just have a couple of things to share with you. Let me, let me share my screen here. And so, the first thing I wanted to share with you is the vulnerability, the Argosy vulnerability. I actually didn't really have much time to talk about it. I think we had a guest last time and like before then it like it's been like a month or so, right? And so, I actually talked about it on the Stack Rocks office hours, which is why I have this up here. So, if you haven't seen the Stack Rocks office hours, go ahead and check that out. I did a guest spot there with Michael Foster, a really cool guy. I told him he's one of my top three favorite Canadians. So, I told him that personally. So, check that out. We talked a little bit about the vulnerability here. I kind of want to revisit this a little bit, maybe go into a bit, a little bit more in depth. I will put this in the chat here so you guys can read it on your own, right? I'm pretty sure you guys have read about the Argosy vulnerability. But the too long didn't read, right? Is the TLDR. Is that in Argo CD, there's a way, if you're using Helm charts specifically, right? So, if you're using Helm charts, please pay attention to this. There's a vulnerability that you can actually break out of the application and then see other application resources inside of Argo. Meaning like, all right, I can deploy a Helm chart and then basically do a CD. CD. CD. CD. And see everyone else's resource, which is really, really bad. So, here they have, ironically, they use the red hat logo black. I always find that funny. And so if you want to read about it, go ahead and read about it there. The biggest, biggest thing is take away from this is please update your version of Argo CD, right? If you're using Openshift getups, we already have a patch for it, so just make sure that's updated. And that's that way you're not vulnerable to the CD. If you're using upstream Argo CD, just make sure you're using the latest, you know, the Z stream for whatever version you're using, right? And so part of the cool thing, again, with red hat, I explained this on the Stack Rocks office hours is that we actually back ported the fix to the Openshift getups version 1.3, right? So if you're running Openshift, sorry, Openshift getups 1.3 on Openshift version 4.6, make sure you update that as well. We actually back ported that to an older version. So there was, oh, so good question, Rockhound. Thank you for asking. Will there also be a series about Stack Rocks? Actually, I did have Stack Rocks. Actually, Michael came on my show not too long ago. If you want to catch past episodes, you can visit this link right here. Really cool bit.ly that I stole. That I stole, right? Get out some like I'm going to get on the string that red hats bit.ly. So if you want to see past episodes, I did do a past episode with Stack Rocks. So check that out in the chat. Well, I can also invite him back on and we're going to go further in depth. He did a pretty cool demo where he called out my applications that had a bunch of vulnerabilities. So I will, which I say that I did on purpose. So I'll stick to that. So yeah, so anyways, this vulnerability, make sure you're patched. Make sure it's pretty cool that the Argo community in general, the Argo CD with the Argo project as a whole, you know, hired these guys to do an assessment, right? And, you know, it goes to show that there are, you know, they said, please find vulnerabilities so we can fix them, which is a really cool thing about open source. And, you know, it shows that they are, they have security first, right? In the, in their, in their minds. So especially important for graduation, right? For CNCF graduation. All right, cool. So next up here, Argo events, right? And so I think we talked a lot, we talk a lot about getups on the show and we touch on other subjects, right? That are kind of near, near getups, things like cluster management, right? We have the ACM guys come on. You know, we did a little bit with Tecton, right? We talk about CD. I think I want to explore more in the Argo ecosystem because there's just so many tools out there that you're actually going to need, right? You're not going to only need Argo CD, right? There's going to be a lot of things, right? And one of the things is Argo events, right? And so one of the cool things that I wanted to talk about is Argo events. So here is the link to Argo events for the, for the official documentation for Argo events or so. So what is Argo events? So it is, how do I explain this, right? And so I think I want to make an analogy first. For those of you who know me, I love making analogies, right? And those of you who've been watching the show a lot, knows I always say peanut butter and chocolate, right? To make things how two unrelated things can be cooled together. So I like making analogies to make it simple, right? So before I actually, actually go through the, there is an architecture here that I can't seem to find any more concepts. Is it architecture? Okay, cool. Before I go into this, I kind of want to make an analogy here. Is the analogy that kind of describes Argo CD events. And so, so to think about, so I'm going to go through the Kelsey high tower, you know, his example of the post office and Kubernetes, right? And I think, I think I'm going to amend that a little bit and use the post office, right? And use writing a letter. It's so archaic, right? One day someone's going to talk about writing a letter and we're going to have to explain what that is. But just think about, so y'all remember Chris short, right? So, you know, me and Chris short, we're still friends, right? We still keep in touch actually daily. We talk daily. And so, let's say for a moment, right? I'm going to make the analogy of I'm going to write Chris short a letter, right? I want to write him a letter. So I write the letter. I, you know, I put in an envelope. I, you know, pay the postage and I give it to the mail carrier. The mail carrier says, all right, cool. I got it, right? And if you, if you think about it, right? That is an asynchronous form of communication, right? So all I got was the acknowledgement that the post office has gotten my letter. So whether that gets like lost in the mail, whether that gets, you know, the dog eats it, right? Whether that's, you know, in a plane and, you know, it got caught under, under a seat. I don't know that my letter got lost, right? All I got was the acknowledgement that my letter was received, but I don't know that what happens there. Like, you know, like I said before, I couldn't gotten lost in the mail. It could have, you know, Chris short's dog could have eaten it. Chris short could have opened that letter. Chris could open that letter, read it and then throw it away. We're not even like throw it away. And so, you know, we think about these asynchronous types of communication where I don't, I just get the acknowledgement, but I don't, you know, we always try to build our systems to be synchronous. But like that's not how we, how we work in the world, right? That's, you know, how we don't, we don't do that in our world. So, so now imagine the, the analogy is like, okay, I write Chris short a letter and this instructions on how to, you know, make a cake, right? I don't know how to bake, but let's just follow me on this, right? I can tell them an instruction on how to, you know, he can make a cake, right? So I got an acknowledgement. All right, my letter may or may not gotten there. Let's pretend that it did get there. And he reads it and he makes the cake, right? So my, my event, right, triggered him to make a cake. I didn't know whether or not, whether or not he did it, unless he called me and said, thank you. But, you know, those two actions are decoupled, right? Those two, those two actions are, are, are not, not related to each other. They're, they're asynchronous and they're like really, really like different from each other, right? And so, rock out, I see your, I see your question. I'll answer that in a little bit, right? And so let me, let me kind of just finish this, this analogy. And so, and so the idea is that this is kind of what Argo events is. The best way I can explain it. My analogy didn't make sense. Go ahead and reach me out on Twitter. I will, I will try to find a better analogy, but it's essentially, I write a letter, how to make a cake. Chris Short gets the letter, reads it and makes the cake. I don't really know that whether or not he did that. And so, and the, and that's kind of like how Argo events is, right? So Rockhound asked, when is Argo events, we plan to be part of Openship Getoffs operator? It is, we are still evaluating if we're going to include Argo events, right? And so, there's always an evaluation phase, you know, with, with, with things, you know, being red hat and being a part of open source, like, it's hard to include everything, right? So we're still like in the evaluating phase, right? In terms of if we're going to include Argo, Argo events. And so that, that's where we are. Sorry, I don't have a better answer. But it is, it is like something that's on our radar. So, so let's go over the architecture really quick, right? I'm going to open this image in a new tab because I want to make this big so you guys can see, right? I'm just flipping, flipping being, I'm going to be flipping back and forth between this, you know, these two tabs. So I'll try not to do it too quick. So as to not, you know, make you guys dizzy or anything, right? And so here, so there's, there's, there's a, there's, I guess, three main parts of, of Argo CD events, or sorry, Argo events, Argo CD events. And so out here is an event, right? And so what it, most people when they think about an event, they think about like a webhook, right? And I think, and that is an event, right? But it doesn't necessarily have to be an event. It can be, it could be a webhook, it could be a, you know, an S3 bucket, right? If something, something happened in S3 bucket, a GCP Pub sub, it could be an AMQ message. It can be, it could be various things, right? And it's just some sort of event, something happened. It could be something as simple as someone wrote a file somewhere, right? Like someone touched a file somewhere. That's an event, right? And so Argo CD has this thing. It's like an event listener, right? And so it listens for all these events. And so, you know, it basically is listening for something to happen. And when something does happen, it'll, it'll write it to what they call the event bus, right? So the event bus, all the event bus is, is a way, is a communication, it's a highway, right? So it says basically an event happening and Argo events will say, okay, I'll write this to the event bus. And it writes it to the event bus. And then the next part is that there is a sensor, right? And so sensors, sensors kind of made up of multiple parts is like a, like a sensor. And then there's a trigger that comes up to this, but I'll explain first what a sensor is, right? So a sensor, all it's doing is, is a reading from the bus events that happen, right? And then from there, it can trigger things, right? So first, for instance, it can trigger an Argo CD rollout, right? Or it can do a workflow or it can do, you know, it can interact with your Kubernetes cluster, it can do something, right? A trigger is like doing something, right? What's really cool is that the event, what's happening is decoupled from what's being triggered, right? And so that's, and the reason for that is the reason kind of what I'm really excited about Argo events is that in the sensor, there are dependencies that you can do, right? So for example, not just, not just reading, not so like normally it's like a, like an action reaction sort of thing, right? Like I hit a hook, something happens. But with, since they're decoupled, you can say, I'm waiting for three events before I trigger anything. So for example, this is a dumb example, but I'll just do it anyways, because it's a simple one. Like I do a, you know, a git commit right to a specific branch. So that's an event. And someone does on Slack, you know, chat ops, they do a slash test, right? So those two events need to happen in order for me to trigger, I guess, in order for the sensor to trigger whatever trigger that I set up. So, so, so yeah, so that's kind of like the high level. I'm going to be going again, going back and forth because we're going to be looking at different kinds of event event sources and different kinds of triggers and sensors as well. So, so that's kind of like the high level. I'm actually, I learned by doing right so I'm actually going to be doing this thing here. And so everything that I'm going to be doing is in my repo. So I'll paste that in a little bit. And you can do it, you know, at your own time, or if you want to follow along, maybe maybe I'll post it in a little bit. But so first things first, I need a Kubernetes cluster, right? So for those of you, I'm not going to be doing this on OpenShift yet because I didn't really have a good use case for it. I will maybe next time we play with our events. So I'm going to do any Kubernetes cluster. So I'm going to do, oops, if you haven't used kind, it's like the coolest thing ever you can get a Kubernetes cluster in. Use this image. There we go. Like in a few seconds, right? And so, actually, while he did have surgery today, yeah, he talked to me today. Yeah, so, yeah, it's almost like, yeah. Well, they actually, so we'll talk about the serverless component of it as well, right? And so we have, so now we have a cluster, right? And so let's do K get nodes. Cool. So we got, it's not ready. Come on. Yes, let's break everything. As I was testing this, watch Docker rate limit me, right? Okay, there we go. Watch Docker rate limit me because, because I was testing all day today. Let's get nodes. Very cool. So first things first, we need to create a namespace. I'm going to create Argo CD events, right? I created a namespace to house all of this thing here. So then I'll install, install the, the events YAML and since I can't, can't memorize URLs, anyone could memorize URLs, my hats off to you. First to create that, right? The installation and then the components here like CRDs and whatnot. Cool. All right. So let's take a look at, right? And so then basically you got the event bus, like, like I mentioned over there in, in the, in the other graphic, right? The event bus, the event source controller, right? That's right here. And the sensor controller, that's right here, right? So you got those three controllers all doing their, their thing. Cool. So then let's, let's hopefully that created, right? Great. That limits me. Hopefully they don't docker hub. It's all pray to the docker, docker hub of God's here. Let's look at the event source, right? And so the event source here is a web hook. By the way, I'm going to butcher his name. I am completely sorry. I wrote it down. Okay. So Victor. So if you guys haven't seen Victor's far six. He does this like whole series on Argo events. Check that out. Definitely great thing. Shout out to him for, for putting out such a great video series. So check him out. Victor far sick. He's a developer advocate for upbound. So maybe I'll have the upbound guys one day here on the show. So back to topic at hand. So event source, right? So this here. I'm basically. I said that this could be anything. Not just a web hook, but here I am doing a web hook, but the web hook is kind of like the easiest thing and the easiest thing is for someone to understand what's going on, right? So here I'm going to create a web hook and that's going to be my, my event source. So if, if I go. Let me go back to my web. Yeah, here. So event source. So again, event source could be all kinds of things, right? So it can be like AWS SNS AMQ calendar, which means like a, like a cron almost. It could be Kafka. It could be Minio, right? Like when something happens in a bucket. It could be a Slack, right? Remember we're saying chat ops. You do slash something else, right? You know, there's net app storage grid, all kinds of stuff, right? And so, but we're doing web hooks. But these are just like events that's happening outside. Outside your cluster. And so what we're going to do is create a web hook. We're called hello world, right? We'll, and we'll just, we'll just listen for post for hello world, right? And so let's create this here. Okay. Apply. Demo. That's right. Event source. All right. Cool. It created. The event. Come on. On tab event. Sources. Argo events. And so, so here, so it created the, the event source web, web, web hook here. And then let me check my notes. Yeah. And then so K get a pods. And service on Argo events. Right. And so as you see here, you actually see this web hook resource. So it actually created a pod to listen for that web hook. And so, and then it created the service right to listen on. And so for a really quick demo, I'm going to go open up a new tab and do a cube CTL. Argo CD events. Sorry, Argo events. I'm so used to saying Argo CD. I don't know about you. Well, once you're like embedded in the world, it's almost like muscle memory. Oh, yeah. Port forward. And then I'm going to do SVC. What's the name of the service? I just copy pasta that right by type when you can copy paste. So event source. And then was it. Oh, yeah. 12,000, 12,000, right. So the reason we pull forwarding is because we want want to be able to hit that, that web hook. And so. So we have this. So now it's, it's listening for things. And so let's do, let's clear this so you guys can see it. Let's curl it, right? Oops. Pearl. I would have to look this up. Post H content type. Application JSON, right? So like you're just going to do a regular standard web hook. And then this here, my payload is going to be, I'm going to do a message. This could be like, you know, it. There's, I'm just sending it a JSON payload. Like it, this could be formatted however you want, right? But I'm just going to say, I'm going to send a message. I'm going to do. Hey there. And then he do JSON on the fly. We see. We'll see. And then a way to do that. HTTP 127.0. Maybe someone can explain this to me when I do local host. This doesn't work. I have to actually put 127 0 0 1. So if anyone smarter than me can explain why we'll see. So, um, yeah. So we did a hello world. So if you, I shouldn't have cleared the screen, but we'll look at it after. Um, if you remember, that was the endpoint that I put in, in the web hook, right? And so notice here, um, it says success. Right. Handling connection, but that's all I get, right? Like it's, it's non blocking, right? It received my, my message. It wrote it to the bus and that's it. That's all the event sensor does. So, um, uh, even source does, right? So here, so here I, I did, you know, 12,000 slash hello world, which is because that's what I'm listening for. And I did a post, um, and then the payload, I just sent it some JSON. So, um, so that's, um, and then it just, it just says, all right, cool. I got it. I got it. That's kind of like the, the mailman. Sorry, the mail carrier, um, taking my letter and saying, you got it. That was it. Right. I don't know what happened to my, um, uh, my, uh, my event there. I just created an event. So, um, so what happened there is that it took it and it wrote it to the bus and that's it. That's it's, um, it's job. It's done is for, for the event source. Right. And so, um, what's really cool now is now we're going to create a sensor and then that sensor is going to trigger something. So let's take a look here. Um, uh, Actually, I think I have to be at here. Uh, so the sensor. Yeah. Because it's kind of, it's, it's a big guy. So here, um, I want you to pay attention to the lines, these lines here, eight through 11. Um, so. You know, I create a sensor, right? Um, I named it. Webhook. It doesn't have to be named the exact same thing. It can be named whatever you want. Um, but here. Dependencies it says, okay. So, um, the name, right? Name something, you know, this is a payload I got. It can be whatever you want, but the, this is where it matters, right? You need to have a webhook. That's the source name. Remember we, we, uh, the event source name, we called it webhook and the event name, we called it hello world. Um, so if you, if we get out of this. And, um, so, you know, the name webhook and the webhook name is hello world. So that's how those, um, those two things match. So we have those. So notice that this here is an array, right? And so you can have, um, multiple dependencies, meaning you can wait for, you know, not just one event, but like a group of events, right? So like maybe you need a few things to happen before you trigger something. So, um, and when I say trigger something, that's literally here, but what I mean here is I have a trigger or they call a trigger template. Is that anytime the dependencies are satisfied, I want you to trigger this. And so this here is essentially, I'm just going to create a pod, right? It's just kind of something simple. Um, right here, I say, uh, it's a trigger template. I'm going to create kates, right? This is the, the, the GBK, right? Group version kind. Now I want you to create it, right? You can do create, delete, right? Patch, whatever. Um, and this is here, if you recognize this, this is like the actual odd definition. Um, and so what other triggers are there? Let's take a look. So that's, um, let's visit sensor real quick just to kind of go over what I said, but sensors defines a set of event dependencies. So remember when I said that you can create dependencies between events and triggers. And it, um, and multiple triggers, by the way, not just not just one trigger. So, but what kind of triggers are there, right? You can do a Lambda function, right? You can do, you can trigger an Argo rollout, which is pretty cool, right? And so if someone hits a web web hook, you can trigger an Argo, um, rollout. You can do an Argo workflow, right? So you can do a workflow. Like if you're doing some sort of, um, like a pipelining, um, you know, build your own, right? Bring your own, bring your own beer and sort of situation here, um, you know, a Kafka message, uh, Nats, right? You can do a serverless function. Um, so while that's the kind of like the idea is you can do a, um, uh, you know, create Kubernetes objects, right? So like there's different trigger types that, uh, you can do. So you can do, um, these things here. Um, so this is kind of, um, what that trigger is, right? Like it does something. So, so we wrote an event, event bus, um, takes that event. Uh, sorry. The, the, the event source wrote, wrote that event. The event bus, you know, writes it to this bus. Now the sensor here that we're going to create is going to sense for that, right? So anytime someone hits that, um, um, that endpoint, that endpoint, we're going to create a pod, right? What's really cool about creating this pod is this, um, uh, section right here, parameters of the trigger template. But here you notice here it says, um, you know, um, we're going to get data, right? So we're going to have data from the payload, right? So from, from the payload, right? We're going to grab it from the message, right? So like if for those of you who are familiar with the web message, right? It's body messages that message equals thing that we have there. And, um, and then here the destination is spec containers, zero args, one. So basically spec containers, right? This is the first one. So it's zero. And then arguments and then one, right? So this is zero and this is one. So what's going to happen is that, um, when I hit that web hook with the message, it's going to take that payload and inject it into, I'm pointing at the screen like you guys can see. It's going to inject it into this, this area right here. And so this is, um, this is another way where Argo, uh, uh, events is really cool. Not just for the dependencies, but that you can pass data back and forth and you can pass data back and forth and it's decoupled, right? So, um, So going back to the, uh, to the event source rock out. I see your question. I'll get to it in a second. Um, um, the event source here is, um, this here, like to say, like, like GitHub. It doesn't get the GitHub web hook doesn't have to know necessarily what happens at the, at the endpoint, right? Like those are decoupled, right? So the, the source, so the event and, and the, what it triggers. They're, they're independent from each other, right? So they're decoupled, meaning that, um, you don't have to ride a lot of custom code in order to, um, make your applications talk to each other almost, right? So this is kind of, um, um, really, really cool. So, um, question here is a sensor, a global thing. And I define limit the triggered event for the pod to be started in a specific. Oh, okay. Yeah. So, um, so this pod, yeah, since I didn't, uh, I don't have like a metadata namespace, um, and actually, uh, well, it is not going to be created in the default namespace. What it's going to be created is in the, um, the namespace I defined when they, uh, when I create the sensor. So wherever this sensor is created is where the pod is going to be created. Um, so you'll, you'll see that in a, you'll see that in a second. So, um, yeah. Yeah. So that's, um, let's create this, right? And so kind of just to recap, um, I'm going to write something here. I'm going to write the, uh, I'm going to hit the web hook. The event source controller is going to write that payload into the bus. The sensor is going to say, Oh, hey, someone satisfied this dependency. Um, and then so since someone's the satisfied dependency, I'm going to take that payload and inject that pod with whatever the message I get and create a pod. Right. And so, um, let's create that here. Uh, so it's key, uh, Kubernetes apply. Uh, I go events demo. Oops. Oops. Demo a sensor. Right. And so, um, going back to your question is that since I created the sensor in our events, that's where the pods going to end up. Um, cool. So then I have, uh, I have the port forwarding still going. So let's do, uh, the curl one more time. So this here is, uh, I'm sending a message saying, Hey, there, let's do, um, another message. Let's do, uh, you know, hello. Rockhound. Thank you for joining the stream. You're part of the show now. Um, yeah, we lost the first message. Correct. Um, since there was nothing to pick it up. So it's not like an AMQ stream or something like that, where there's a retries, there might be retries. So that's, that's a good thing to investigate. Um, so let's do, it says success. Right. It received the message here. And if I do an OC get pods, say I'm already an OC, um, getting muscle memory. I mean, it would work. Watch OC get pods. Um, you know, it'll still work, right? It's just still, um, the payload right there, right? It's completed. Right. So let's do a K logs, um, the payload. And then our go events. There it is. Hello. Rockhound. Right. And so, um, the, uh, so the, again, you see that what, what ended up happening is the event happened. The event source controller wrote that to the bus and, um, the sensor said, oh, hey, you satisfied a dependency. Let me take that payload and write it into the pod. Right. And so you can see how you can start chaining different things together. Right. So that you can take, um, like a cup, like a get a push to a specific branch and then pass that data to like a workflow, right? Argo workflow, right? And start your CI CD pipeline or whatever else, right? Whatever other event that you, that you want to see, right? So kind of going back to the analogy of the, um, um, post office, right? So like the message got lost in the mail. Right. So like, like the first message I sent the letter, the cake was never made. Right. And so, um, you know, I sent another letter. It got to it. And then Chris short created the, uh, made the cake, make the cake for me. So, um, um, because, you know, and, and whatever happened in between, that was just, uh, as soon as I sent that letter and, and, uh, uh, the postal carrier said that he got it. And so the, um, uh, uh, um, that's, um, and then the, the payload created it. Right. And I can, I can run this multiple times, right? So then if I curl it again, um, and I can say, you know, um, make a cake, right? Again, if I do, um, I do get pods, right? Uh, which one, uh, this one's the newest one here. Um, actually just try this, uh, create, is it metadata, metadata, creation times down. I'm doing this from memory. Ah, you can do it that way. Cool. So, um, if, uh, but it puts it at the end. Interesting. I would have think that the newer one goes on top. Um, it logs, even our go events and then, you know, payload receive, make a cake, right? And so, um, you can see how, um, these are, um, how these are, um, decoupled, right? And so like if I do an OC, oops, if I do okay, get pods, I go events. You can see if I do a K logs and follow, uh, where's, uh, is it the event? Let's, let's look at, let's look at all of these guys, right? So let's look at the event bus controller. Nothing there that is to, it's just basic startup stuff. Let's look at the event source controller, uh, webhook event. So it looks like, yeah. So it looks like the, um, it logs when, when the event comes. Um, and then the sensor controller. This is the one I'm curious about. So let's take a look at that. Uh, come on. And then, yeah. So this is, we created that guy there. Let's look at the pods again. Uh, webhook sensor. Yeah. So the actual sensor. And one of these tells you, um, when it, when it got hit here, right trigger print, pay a trigger name, payload trigger, so you can see the, those coming through. So rockhound is, um, got a question here. Can I specify at least time on the bus that the events need to be in the timeframe or something else, maybe asynchronous issues, maybe handling, or can I just see the bus content and sources for logging track and who, what triggered the events? That's actually a good question. Let's look to see if, um, uh, so like, let's go to the event bus and see if we can find that. Um, so it's a NAT streaming events, name spaced. Okay. Let's see if we can. So I guess you can, um, modify the event bus. Looks like you can store them, right? Um, or else like they're, they're gone, right? And so, um, those are like the persistence, whether or not to use persistent volume, max age. So it looks like there, there is a max age and, um, max messages, right? And so you can do like, um, um, max messages here. Um, max, um, max payload, right? Number of bytes, right? So you can control some of those there. Um, you know, priority, right? Oh, interesting. Oh, probably the safe set of the pods. Nevermind. Um, and so, so yeah, it looks like you can, you have some control on whether or not you can, um, you know, the, like the max age, number of messages, how big the bytes, the master number of subscriptions, right? Um, and so, um, and as far as, as far as tracking, I would think logging would be some of that, or I'm pretty sure you can connect, um, make something like Prometheus to it or Grafana to be able to see what, what's going on here. Um, here, uh, this documentation. So, you know, now I'm just basically just going through the documentation of how, um, how this is. You guys could check that out, uh, yourself here, but you can have dependencies and can have multiple triggers. So that's what I really think is cool about Argo events is that you can have, um, uh, um, you know, they're decoupled, right? So you can have multiple events and multiple triggers, and you can kind of mix and match and how things, how things go. Um, I can see this being very powerful, especially like in CICD situations where, um, you kind of have a way to, um, you know, map, um, like a get commit to let's say like a tecton pipeline, um, or a workflow, right? Whichever, right? Here at hat, we're all in on tecton. You do kind of like a, like a, like a tecton pipeline, um, you know, or multiple pipelines, right? Like you can have that, you know, um, since you can do multiple triggers, you can have, you know, fire off multiple pipelines, uh, to be able to do some of this stuff here. Um, and so I think the, the next time I, I do something with, with, um, with Argo events, I'm going to do something like that. I think that'll be really cool to be able to see how you use some of these things together, right? Um, Argo CD, uh, you can do, um, uh, not, not, um, Argo CD, Argo workflows, right? Image updater, um, and, um, that, that sort of, uh, that, that sort of thing, right? And so, um, this is actually pretty cool. Um, there's a high availability. I like how this is like in bold and bold is like the first thing I saw. I don't know if you guys saw the first is like the first thing I saw. Do not manually scale out the replicas that might cause unexpected behaviors. And so, um, uh, so I, in anyways, so you guys can, uh, check out some of these things here. Hopefully this was kind of like a helpful, um, Like a helpful, at least introduction. Um, you know, when I first looked at Argo events, I had no idea what, what was going on. Um, and so someone once, once asked me like, there should be like a generic, um, way to manage web hooks. And I think like this is like really close to that, right? Like a generic kind of like a entry point to manage like web hooks and be able to, um, um, you know, connect things with, while, while still being loosely coupled, right? Like there's no hard dependencies on, on interaction between those, right? Like, like, uh, um, Like trying to write an integration between S3 and Slack by yourself would be really hard. Whereas you can use just Argo events to kind of, um, use that as like a, like a traffic manager for you. So, um, let's see here. Let's see. Rockhound says feel like a bit like salt stack events and reactor stuff. I actually haven't played with salts, salt stack, right? So back, back in my day, right? I feel like an old man already. Back in, you know, back, back, we didn't even have Ansible, right? I was using a lot of chef, um, I know salt sack has been around for a while, but, um, I use chef, right? So I was, I was a big chef guy, um, played with puppet a little bit, but, um, I, I was always, I guess I always have to be different, right? I played with chef. I think like chef was, um, was one of those things here. Um, yeah. So while they definitely, definitely right, right? Like, so like, I, I've gone to, he said it would be interesting to see real use case and how it's used. Um, so like, um, you know, this, um, playing around with this, right? Like kind of showing you guys how I played around with this. Um, it was really cool introduction, right? It was really awesome, but, um, uh, but I want to see some of these things connected, right? Like I want to see all of these things working together to get like this, this workflow. I think, um, let me make this a little bigger. The, um, you know, seeing some of this stuff, right? Seeing like how I get, you know, three bucket, you know, all of these things, how you can integrate all of these things together. Um, so, um, chef was puppet plus plus. Yes. Which, which is why I liked it. Why I like chef, I started with puppet and then like chef came out and I was like, Oh, this is awesome. I actually over the weekend. So this is way off topic, but over the weekend. And this shows like I came from a small company before red hat over the weekend. I switched everything from puppet to chef and we just started, you know, it was literally like a two day migration. It's like, we switched everything over. Does everything work? Yep. All right. Cool. And we started using chef from then on out. So, um, so, uh, cool, cool. So, um, again, this was kind of like an exploratory stream, right? Um, kind of just kind of getting our feet with Argo, Argo events. Um, I want to, uh, uh, you know, for further episodes and other episodes, uh, we'll do more and more with it. Um, other episodes, I'm actually going to start looking more into the Argo project ecosystem. Um, things like the, the image updater. I know there was, I get questions about the image updater, Argo image updater, um, Argo notifications. Um, and, um, and, you know, with the red hat. This actually made me think of something else, but our notifications is another thing, uh, Argo notifications. But if you haven't heard Argo CD version 2.3 release candidate is out. And when 2.3, uh, comes out application sets and Argo, um, notifications is going to be part of the core Argo CD, right? So you no longer have to install it separately. So we'll do a whole stream about that, how all that, all that, um, um, works. So, um, see here. So, um, see here, unless there's any other questions here. Uh, thank you, Ali. Thank you. Appreciate it. Um, here to see here, there's no more questions. So cool. Um, all right. So, um, yeah. So please remember. Yeah. Like, subscribe, um, reshare, follow us on Twitter. Follow me on Twitter. Um, we appreciate it, right? We, we appreciate the love here. I really appreciate it. Um, so, um, rockhound, I will be in Valencia for KubeCon, get ops con, right? I'll be a get ops con for sure. Um, so, um, well, you know, I'll see, hopefully see some of you out there. Right. We can, we get to, um, hang out in Spain. Um, and yeah, so, um, I just want to thank you everyone. Thank you for, for watching, um, get up sky to the galaxy. Um, next time we're going to get, um, someone from code fresh, right? We're going to have Hannah, one of the developer, um, um, the developer advocates from code fresh Hannah to come to talk about, um, Argo, um, autopilot, right? So autopilot is, uh, something that's really, really cool where, where, um, you know, we actually been working together, uh, me and Hannah over at code fresh to try to get some really cool for you guys, uh, next time. So be sure to tune in for that. So, um, other than that, um, hope everyone's, uh, out there being safe. And, um, like I said, always say, um, unless it's in good, it's only rumor. Thank you everyone. Cheers.