 Hi all, welcome to today's Jenkins GSOC mentoring meeting for the cloud events plugin for Jenkins. It's August 2nd, I'm Karzai Mak and we have Shritchie and Jeff on the call right now, more will probably be joining but Shritchie is updating us on her work. Thank you. So I'll begin by maybe like taking a look at the other PSE which is working for, well at least the first part right now. And so it's also Shritchie Jenkins. It's running inside of my cluster, but we can, you know, in the future try implementing an Ingress for the broker so it doesn't really work if it's like if you're trying to reach it from outside of the cluster, you know, sending maybe a cloud event from a postman or something it doesn't work it only is right now working for within the cluster but we can obviously add a new Ingress or something like that make sure that it also works outside of the cluster. So this is the broker URL for Knative and it does have a trigger attached to it and the trigger is filtering on cloud events attributes CE type. So here are some scripts which I will be pushing out to get past hopefully soon. So everyone can take a look at it. Okay, so this is this is the this is tacked on trigger, which is a different thing we want to be looking at. Canada trigger. It's, it's actually the kind of fun to stop looking around different like tools and whatever it's terminology that they've been using. So this is, here it is. We have the Knative trigger, and this is the attribute type which is filtering on cloud event. And obviously, so the trigger is, or I would say not the trigger but the sink essentially just stepped on is outside of Knative event space so that's why it's just the URI here otherwise it would be a service if it was thought as a product in it. And this is just the default broker which is an in memory broker so whenever we'd want to change that to, let's say, Kafka or maybe RabbitMQ will just need some change in however this is being like written out alongside the channel implementation and the broker implementation. So this is just the default implementation right now. And again, this is the URL of the Knative broker which has the trigger involved and also taking a look back at the trigger itself is just filtering on Q and turn leading. So if I was to, I'm actually sending all so we can see which like it only should have been triggered once like the task one which is associated with Tecdon. Actually, you know what we can also do is look through the entire flow. Okay, so here we are. So this is the Tecdon trigger. This is, there's so many things and I'm so confused. Okay, so this is the URI of course and this is the URI for the Tecdon trigger or the, you know, like wherever Tecdon is going to be listening so like the Tecdon event listener and Tecdon event listener has the trigger inside of it. So, let's see here. I think I also have the event listener here. Yes. So that's the URL that we were looking at for the broker or subscriber URI. So this is the CD event listener where all of the events from the broker for Knative will be routed to Tecdon event listener. And here we also can do trigger binding inside of Tecdon. So I just wanted to sort of check if you know all of the metadata is coming in correctly, which is what but we're not really using it inside of any script is just a way to pass and make sure that if we were to pass any parameters from Jenkins to Tecdon to trigger a job or anything, it was working, but I right now the script I just change it to a simple, but it is working and if we wanted to pass a parameter job name you just have to maybe say like pass some of the arguments here. And this is the trigger template, which is just using a simple task around a hello, hello world, hello should be so that's basic. And going down. We're also looking at the dash. We can also, you know, take a look at the CLI. I'll take a look at through the terminal. Let's take a look at the dashboard. So these were the ones that I was testing earlier. Those were triggered. So let's Okay, so let's trigger this just making sure it doesn't have another. Okay, so we should only see one new task run for the Q and third reading inside of Tecdon. Yeah, it's working. I'm so happy that really is only one again because it's like filtering but then there's also another one just test to which has a downstream configured. So if we were to build this, it would have like two different tasks run since they're two different jobs of the type and trade like see type entered leading. So we can also use this one to start it so there should have been, I guess, two more. Yes, there were two more. So fun. Yeah, so that's the piercing for now and the next thing that I have been trying to do is to the city. I'm not not see the So before to move from, let's say this simple, like event format to like this simple issue to protocol binding to have a protocol binding. We will just have to change a few things inside of the cloud events, like however cloud events is written in the partition name, the key, whatever we are sending it to for the broker. So just been, I've been working on that, and it seems to be working I just need to make sure that in terms of the partition it's sort of aligned with the broker that we have. It's just figuring that out at this point. And also there was another thing which is testing with arguments as I said earlier I was able to do that. You know just passing in the argument to hello job name to make sure that the arguments were positive and correctly. The big thing is obviously going to be creating the other part of the POC that this week I was not able to work much inside of like Jenkins as a sync like the UI part of configuration that we've been talking, but I've been researching event filtering options in Java, and how we can, you know, like the last time we were talking how we can implement it in a way which makes it easy to parse through the entire body of an event but but as Mauricio said right now. So if you're starting with like a simple use case there might not really be a need, because even if you're talking off tech ton or if you're talking of a native broker as well, which they're mostly filtering on the header itself, you know, not the header but the cloud events metadata rather than like the cloud events data is 12 and the the CL, which they're using for like inside of let's go back to the POC. So the interceptor that they're using here, and then you know they're doing the matching or the filtering based on the, like the CL interceptor, and for body as well like body dot SAH captain context I think it's over here since it's like a direct direct in the sense that you know that it's a connection with captain, between captain and captain so that's why like mentioning something like body dot SAH context is is more viable here than it's going to be for us. So I think like right now I'm more focused on filtering again based on the header or the cloud events metadata if you're talking about like the structured binary format of cod events. And let me see if I can push the new changes on my also is wondering if or where should I post the script so it's obviously open to open like for the community as well if they want to see and create something similar. I would think that in the same repo is there a place where you could put it that would make sense to be easy to find. Yeah, maybe like we can create a folder, which is events like POC inside of the cloud events plugin that we have. Yeah. So I still have the changes in my like local system but again, like this week was more just trying and testing around with the POC itself just to get an idea of how these different systems are working so we can implement something similar inside of Jenkins. And again, the, I think the one or two kind of main things which, which are to be done inside of Jenkins as a sink. And I feel like now it would be ideal to implement that and I should start working on it is obviously like first when we have the filter coming in, I'm giving options to trigger different kind of actions so just that following of filter and then filter to action inside of Jenkins. And another thing is if you know so we have the system of Jenkins to K native to tacked on and it does support for us if you're talking off as a sink. It does take away or even not even as a thing that even as a source it takes away that that are like as our responsibility of making sure that the event is going to be received by the by the receiver you know the retries and all of that stuff is figured out by K native broker. So again, I'm going back to the conversation of if this should be, you know, this should be something that's included as part of a plugin and if so how, because if it's not then again, I think that we might have to implement that system of like resistance to network failures and all of that stuff inside of Jenkins, you know, maybe as a source or maybe Jenkins sink. I would like love to hear your guys's ideas and that I think I'm going to implement something that makes this process and makes this plugin more resilient, resilient against network failures. It's super interesting but it's also, it's an additional quite big piece of work, if we can use an existing tool does that for you then I would lean heavily on that for now and then leave that additional work. If we are bringing it into the plugin for a little bit later does that that seem like a good workflow for you, or is it something that you were really excited to tackle. Okay. Yeah. I feel like I'm like I'm actually kind of excited at the prospect of including like K native broker inside of Jenkins, especially like Jenkins as a source or sink and I think I got, I don't know just really excited to me when I feel that our system is going to be both implementing asynchronous flow of sending events and receiving events but also just it's going to be resistant to all all transient failures and stuff like that, but it does make sense to for now. So I'm going to like focus on just Jenkins is saying class is and then the one that's done, and we can think of implementing this has like an additional feature. Yeah, you know, right with a little broker. This work that you showed just looks so awesome. I'm absolutely thrilled and I, I love how much you're enjoying it to, you know, yeah. Yes, this configuring this was so fun. Like as I was saying so when I so there you know they're obviously are different namespaces and when like I was running some of these scripts. I did not know that some of them were actually like going to default namespace just like so for example if I have the text on event listener which is, which was listening on like CD events or tecton CD events then another part of tecton which was actually from the trigger which was just on default namespace so obviously they had to be like on the same, like inside the same process to make sure that they're working sounds like we why so when I was like debug was like, no, that makes sense and the funniest part I think was when I was trying to implement K native you have no idea how many times I went through the same process of deleting the K native namespace implementing the K native like eventing part which is like the K native core components and the K native additional like CRD so every time and running those cubes CTL apply, whatever whatever YAML files, and then it's, it's always giving me the same that your kind of just like the multi 10 and channel for K native the default, it's like, that's, I've all of the pods are running except that I'm like, what is going, I'm not sure what's going on, I don't, and then I'm like debugging and I'm like looking at the logs and I'm still like, I don't see an error I don't see any error inside of the logs it's all info no error no warning. And then, just for a reason I just simply logged into AWS and I just like looked inside of my cluster just for I had no idea I was just like, I'll just like try looking what's going on. And it's, it says, you don't have enough CPU cores. And I was, what, well wish ours is deleting and rerunning the same K native eventing to come to the conclusion that my CPU cores are not enough. I was running 16 cores 16 we CPU cores and they were still not enough I'm so confused. But it's all fine. No, it's, it's, it's working. That is good. Yeah, I think it was it was quite fun implementing this and next, I'm really looking forward to the opposite part of Jenkins being missing and tucked on or captain being the source and also trying this out with captain as well. Because they, you know, we are developing this across a suite of tools are like for a variety of tools. So it'll be kind of fun to see how this is going to work with not just tecton but also captain or whatever tools are can act or are using cloud events or whenever we are writing documentation for this we can provide more, you know, like detailed description of how someone can use this when other CI customers CI CD tools or common CI CD tools, I feel. Yeah, I think that's awesome so I know we spoke a little bit before for the recording about writing things but it would be really interesting to add as much of that as you could into the Jenkins interoperability and the cloud post for the CDF news that are because it's very exciting and you may or may not. I totally do this up to you I mean it's your work and you can present as you like, it might be nice to get some feedback to you from the event sake on that if they want to say anything, or just kind of have input. Yeah. Two, two additional things. I know you up with communication work. I don't know if you've worked on the blog post for the midterm demos, but we would love one. And I'm so annoyed because on that zoom for the presentations. One I had sound issues with you which was like, oh, because your definition of interoperability was really great And in addition zoom is doing a weird thing I assumed it wouldn't record me when we were playing the videos but it did and or other people who made sounds and I just like strongly that the that face is on top of the, you know, the recorded video and the speaker says I'm like oh that's awful. So we are posting up all the prerecorded videos including yours that we have, and I just need to figure out if we're going to put it in the CDF channel or put it in the jink and one of the Jenkins channels probably for Jesus. And then you can link to that for your post if you are comfortable writing one we would love for you to write one for the Jenkins blog and then when these are all up they'll probably be scooped up in some manner from the CDF. And it referenced, you know, either in a blog post or in some way. And then there's the CDF newsletter, and then there's also DevOps world we definitely want you to present it'll be a lightning talk but I sent around an email. I don't know if you saw the email this DevOps world would like lightning talks and it'll be shorter but they want to do it soon so it's kind of. I don't know how different the presentation will be from the midterm demos but it doesn't, it doesn't really matter but they want to record that soon so if you. I don't know if you saw that. Yeah, that all sounds really fun and exciting and I'm really sorry the midterm block took a bit it was like I was planning on doing it earlier but that week with like power cuts or anything. Don't even want to think about that. And in terms of the DevOps world presentation, yeah, I actually am mostly really excited about that. And I did saw, I did see the email and I feel like I might do another presentation with the new sort of POC that we have, even that's cooler. It's super cool. It's super cool. It's very very cool and I've even, I've like had so much good feedback on your work from people who are just adjacent but not involved in this project and they're, yeah, it's your work is getting so much attention it's really cool. It's such a good project. So that is honestly like when you know when I was just starting earlier and we were now working alongside other tools. It was interesting but at that point it like you know it unless you see something working with other other sort of systems because we are developing this essentially for you know interoperability between CI CD tools, but like you all suggested such a great idea of doing this POC and it just puts everything so much more in perspective. And that's my thing really. And also we have the first star on the repo. And I got so excited. So when I popped on I trust on what many more stars I was like. It's great. So excited for how people might end up using it. In terms of feedback from the events, the community. Do you think that since their mother meeting is on August 16, but the last day you like the last day for some mid submission you said is September 20 or August 20 and the August 20. Yeah. So how to what maybe I can do is try the like the demo that we're doing for maybe DevOps world. I can try creating that and maybe like submitting that to the event 16 so they can have a look at it, and suggest additional feedback. So I feel like I might want to do it after I also have captain as a sink included. Just to like just to kind of, you know, demonstrate that it works with different systems. So like people know that it's not actually like tightly coupled. Yeah, I feel like we can create multiple subscriber your eyes inside of the inside of the. So, let's see. This is like, you know, safely how a single your eyes we have one single subscriber maybe we can like either create another subscriber which can be the captain or just create another trigger which is listening on different kind of attribute for advance and then trigger captain but I feel like we'll have to see it how captain works with this sense you know since kept on definitely had kind of a straightforward way of there's an event listener and event listener has a trigger connected to it so it was just it's a phone in that sense. I haven't actually looked really into how captain is included in this POC. But I might do that next time for like for demonstration and then also submit it out to the event 16. Yeah, that would be really fantastic. Yeah, I might also create another sort of like an ingress for so this is an ingress that I had to or like I created for the cloud events listener for like on like the event listener for tecton so you know how we have that public subscriber you are I instead of like the URI for the clusters. I might do something similar like that also for the cloud events broker K native broker so we can again like reach out sending the class outside of. Those are those are like the few things that I'd like changing inside of the POC and see how fast we can accomplish that. Hopefully should be fast enough. But if that doesn't happen, maybe you'll just like post the video with tecton. It still looks okay so we can you know have cloud events player or soccer and then tecton for both events. For the CDF interoperability article and also rocks one we can see how far it gets by. And I like I did have one other question on. So this is not really related to the plugin itself but it's more about like licensing and also where should we put our, you know someone has any issues or any bugs, or they would want to submit a request for a feature bug or anything where should we put that for plugin. Raise an issue or make it on the on the actual repo for the plugin. Um, yes, yes they can. So we can let go that like only having raising, you know, like issues and plugins only the plugin reports off or somewhere else because when I was reading posting the plugin and also the read me. Like there were some places with Chad Jenkins Jira, and also other places for us. Yeah. Yes, I have a strong preference always forget how but it's true that Jenkins has this whole system with your. So it's really to some extent up to you. I mean the Jenkins your, I guess makes sense for the Jenkins project. I would imagine people will often jump on and raise issues on the GitHub, but I guess you should have information in the read me. Let me think about that if we should stick to standard and use the Jenkins Jira. The thing I like about GitHub issues is it's a little bit more public I think like anybody using the plugin is likely to find those, whereas not everybody maybe knows where the, the Jenkins Jira is. But in reality, you're probably going to get both. So, I mean you can like suggest the way you want it in the read me and hopefully people will do that but you know, people will do whatever they're comfortable with anyway. That's that's true. I'm kind of a, well you just go with how it is answer but it's probably the most practical one. Yeah. Yeah we might have I am obviously I feel like more comfortable using GitHub repo because I'm like I looked around Jenkins Jira and maybe like looked around how we can submit an issue or like a request or whatever but I'm not sure how it's going to tie up with the entire like someone raises an issue. Do I have to like go and check every time or doesn't directly get pulled in from Jira into the week. I'm not sure. So I again have to look into that. It's and once we have, I think he has submitted a request for Jira. And once we have the repo. If you post it, then maybe I know better and how people can go in and raise issues there because since I don't really know how it's going to look now so I obviously right now I'm more comfortable with. Okay. I need to be added to the Jenkins org so and I was trying to push it out it's been like quite some days in trying to get this release, but I think the first there was the maintainer when I did not have access but then the other was getting permissions for postings I was not sure if it's an issue with you know Jira or is it some other issue so I think without his helping with that and he has requested for being added to the Jenkins org itself inside of the app. Hopefully that's going to work. And on licensing. I definitely see that the default is MIT or J, or like GNU, but just in your guys's opinion. I think MIT is is very good. Did you have a preference for a different license. No, no, I was just telling you guys and more experience on this and I do. So that's why it's appropriate to ask you for a second. I think people like to see the MIT license more. It's just, it's, it's, it's, it's less restricted than than some versions of the other licenses, not not all but it's, you know, it's just easy to know what you're getting. So for licensing that's, I'll just edit inside of the, the read me. And another thing was, I, the, the time we were trying to release this with the pub. I'm really curious about vulnerability scanning for the plugin itself and all, you know, like all of the dependencies which are there. And I know that a lot of we post have that on there inside of like maybe inside of their GitHub but also inside of Jenkins if they're vulnerable to you can go and check. So he mentioned that you might have more information about it. So if you guys, you know, can give me information on just like vulnerabilities and other security issues inside of plugin and if there's additional like anything that I can include in inside of our file which does that for us. So the Jenkins project has partnered with SNCC to do scanning on on the Jenkins project and and a lot of its plugin so that would be what we would go with and I will just double check how to add that to the rebrand stuff and make sure that that's appropriate for this but it that will likely be the answer to the question. Snake, you mentioned. Yeah, they are working with the Linux Foundation they have a nice partnership with them for doing open source scanning for a lot of Linux Foundation projects and Jenkins has been involved in a lot of the discussions of this and might. Yeah. So I think SNCC will be the way that we go forward with it. And I'll just find out something to go for you. But yes, it was a very good question. It really important. Well, it's very positive for the plugin to do scanning and I think that sounds like a really good thought in your part. It's great that you're already thinking about that. It will probably help adoption as well but it isn't in cases that I think to do so. Yeah, excellent. I think it came more into like it has been my mind I was like fascinated when like I'd go and see okay vulnerable tease on again but also it became more sort of like present inside of my mind when when we were inside of like when we were the when we were all of the demos for the first phase and I was, you know, we obviously when if you're talking about like runtime security, and if we have like Jenkins running as a container whatever their tools for that, but but for, you know, like there's like Falco and whatever stuff. But when we are referring to like the plugin itself and all like additional vulnerabilities inside of this single plugin. So, you know, like that last and from like the communities security operator that we were looking at and there was like, if this plugin has vulnerability that's not going to install and I was like, whoa. So we need to work on that. So yes, that's why that has been sort of on my mind to make sure that we are complying with security issues as well, because that's obviously very important. Yeah, and I really like that in this GSOC year. I feel like all the GSOC projects really had that in their mind and we're really thinking about which I think is one really impressive from the point of the students really good for the Jenkins project as well. And then just really nice to see that becoming sort of an accepted top level concern, you know, I think that's, it was really excellent. So, yeah, yeah, it was like actually really cool hearing issues because there were two or three different plugins also the plugin of the spinnaker.io. There was like the runtime security for the containers which are going to be running. And then, you know, so I was just like, well, obviously we're not running an entire system or we're not running some like multiple sort of like containers as a part of the plugin but but still the plugin itself, it can have different vulnerabilities from our dependencies. So checkouts, Nick, and those were, I think, questions. So it's going to add the date. So I have that in mind that it's August 20th for the CDF, you know, when is the date for. I feel like the email mentioned that you might be putting the videos from the demos for our first phase, but is there sort of a deadline for demos for the next one? I haven't actually been given the schedule but what I was told is they needed all the, all that bio info from all the GSOC students and abstracts. So I was like, well, that, you know, we basically have it on the midterms and students can update that page as they wish. It's kind of hard because it's only a few weeks after the midterm demo or sorry, I thought, well, you know, likelihood the abstracts would be quite similar. I mean, there's only so much work you can expect. You're doing fantastic and zooming ahead but there's only so much work you can realistically expect in a few short weeks. I wouldn't expect what the GSOC students have to advance that much. But nonetheless, just updating that information and then on that email chain, I put Alissa Tong's email address, that's really the person who will have more additional information on how to sign up for the scheduling your recording. So what they would like to do from my understanding is they don't want you to do your own recording. They want you to actually sign up and do a live presentation, which is kind of fun. Although you can discuss it if you prefer to pre-record one, I'm sure there's some flexibility there. But I would respond and just ask, like, how do I sign up because I don't actually know how you all sign up for do I was just keeping the information. So I can, I can, I guess I can pay me this and say, well, how did it. Yeah, it's not my, I'm not involved in organizing the conference. No, it's totally okay and also like, again, thank you for, for like putting pulling together such a great event for the demos and everything that was absolutely that was really fun and amazing and thank you for doing everything that you do outside of like your work. So anything and I'm always like, I don't know. That's sweet. Yeah, I'm so happy with GSAC this year, especially your project, but all of the products are great. It's really nice to sort of give as much of a platform for for the students and especially you to discuss your work and celebrate it because it's really amazing actually that's being done this year. Very excited. Any other questions you have for the work you're doing but also, so I was thinking what what you're saying about AWS CPU course. Again, I know you have these credits but should you need additional AWS credit or something we can get them for you so I don't want you to ever be out of pocket or to feel constrained by what resources you have. I might have to take you up on that because I'm not. I'll have to like check on what I'm running at this point. Yeah, sometimes the charges will just sneak up on you just I don't know where what my limit is running at this point but I should check that. Yeah, I don't have any more questions. Do you guys have any suggestions or feedback or anything that I should take care of or anything. No nothing, nothing specific just keep up the good work. Thank you. Pretty much the same for me the only the only thing so I know you've been having additional meetings with above which is fantastic. I'm super thrilled with that. I haven't been able to make it because the last couple weeks have been crazy but I hope to start being able to join. So generally, you all are meeting on Wednesdays is that right, or whenever during the week. Yeah, we, um, it's, it's, it's not like we do meet every week it's more like if you know if there's something that needs attention in terms of so last week it was the release of the plugin. So we like figured out I think the weekend which like work for both of us and I think the week earlier too I wasn't able to make it but again it's not like it's like happening every week it's more if something that needs attention and something that needs work we try and like he's like very generous and helping whenever he's able to. He's always everyone else. Um, but yeah he is very generous and helping with the release of the plugin. And again no no specific. Okay, okay, but yeah just keep posting them and slack and I'll probably start jumping on because I hopefully will have a little more than what right now. But I just want to make sure you're getting all the advice and support that you need to from the mentors but I like that everyone is has been quite attentive I think I think there's a lot of interest in this project a lot of excitement so I'm glad that that's, you know, I'm glad that people jumping on quite enthusiastically to give you support and help. Um, and the cloud native sick this are like the last week that the Friday, and that was really really helpful. You know, like, you're in from ratio and what it is working on and like, in terms of the piercing thing that was really helpful and I, if this is happening again this Friday. I would love that to you because my show really has a lot of contacts and knowledge in this area but it was it was on the cloud native say meaning because he he's on vacation in Barcelona this week. So he's like I can't do it on Monday have to have to Friday sounds good so so that's why we moved it to then. I think you know, let's have him. He's on vacation, but when he is back it would be great to pull in and more because I, yeah, it would be really great for him to see these latest events and give some feedback on it. And we'll do more sessions like that. I mean, only only if, again, only if his time because you know, patients are important, and I seriously don't want to, you know, take away the time from vacationing. I just want to make like vacations are not disturbed. Yeah. Okay, that's great. I don't have anything else to add and I'll get working three additional things in terms of like the blog and video. Okay. Great awesome. Good. All right. I will find out these pieces of information on just double checking about issues but in our probability will be both just in practice. So good. I'm super excited. Hopefully we'll have more meetings this week. I'll jump on the ones if you're doing additional ones, and really excited to see this progressing like awesome work. Cool. Great. Okay, good, good meeting you all, and I will see you all later this week and certainly on stock for sure. Bye bye.