 Welcome, everyone. This is the GSOC Jenkins Docker base quick start weekly meeting. We're on the 5th of June 2023. Today we have Ashutosh of course, Bea Vianto and Jean-Marc who happens to be an admin and also interested by the subject. Thanks for being here. Okay, I'm not editing the right part. Let's do it again. So who's there? We don't have Lisa. Of course it's something like 1 a.m. in California. We don't have Chris. We have Jean-Marc. We don't have Saïd and we have Jean-Marc. I think we're good. So what can we say about what happened in the previous week? Ashutosh, you proposed your first Docker Compose and you had some issues with SSH part. Yes. Yes. And I think that Bea Vianto proposed a workaround and in the end you have something that works. But could you please tell us more about what happened and what is the current status of your first example, if you don't mind? So as we decided I created the simple Docker file for the first version and I was having issues with the RSA keys. They were not working for some business. We still don't know why they were not working. So I asked it in the Gitter channel. Then Bea Vianto recommended to use ED2519 format for generating keys. So that one worked. But we still don't know why RSA was not working. And some of the Docker images were working and some of them were not working. Like the latest version was not working and LTS was working. So just by my curiosity, so you generated key for RSA. Yes. And this did not work. Yes. And so you used, what is the key? ED2519. Yeah. Okay. It's linked with the SSH version. So I'll try to understand what was happening if I have time during the weekend and come back to the group. But you have a work route, right? Yes. Thank you. Could you please, I don't know if you have still the link to the document, but don't hesitate to edit and put the right information because I'm trying to take the notes, but I don't have all the acronyms. So, you know, with the name of the key for Rathanson and the version of Jenkins you use, so feel free to modify it. Thank you. Okay. Thanks a lot. And while doing so, I tried on my own and I may have gone a little too far because I studied your example and say, hey, he's not using jcask. How does he do to link the agent and the controller while not using jcask? Does he have to do it by hand once the Jenkins controller has started or what is happening? So I went ahead and tried to add jcask and the SSH auto connection and automatic first user login. And it went way too far, I guess, but at least that will give us some material to study later on. It has an interest, I guess, because when the user starts with Docker Compose, it has a fully functioning Jenkins instance with the controller, with an agent, no job force time being, but everything works out of the box. The downside of it is that it's pretty much too complicated to read. And there are a bunch of files, a custom batch file, for example, that does install jcask directly by downloading HPI files and so on. So there are pros and cons of using this file. So I don't know if we will supply it as is. And furthermore, it's not your work, it's based on your work, but it's mine, which is not the goal of jcask. So we may very well forget all about this. I know I didn't ask for a demo, but if you feel like it, could you please let us know how to start your first example that does work now? And what is workflow for the end user? Does he have to look at the logs, take the key that has been generated the first time by Jenkins, put it in the UI? How does he or she connect the agent via SSH to the controller and so on? So do you mind giving us a demo or is it too early? For my Docker Compose file, the key I have generated by myself and added the private key we have to integrate by the UI. A public key is already in the Docker file, but a private key we have to set it in the credentials option from the Docker Jenkins UI. I thought that was a piece. But would you like to show us by sharing your screen or is it too much? I can share. Oh, thank you. So let me stop sharing so you can share your screen. Baviento, while Ashutosh is preparing, did you get time to subscribe to Ashutosh repo? I have subscribed to repo. Cool, so I can check on the site and Baviento should subscribe to Ashutosh repo. I'll remove site so that, yeah, now I can check. Baviento and, you know, should subscribe. Oh, you're doing it via githpod. Super cool. Yes. That's the cherry on the cake. I'll have to install the SSH plugin. While it's happening, I wanted to talk about the SSH situation. Should we make user to create his or her own SSH keys or should we provide the default ones for seamless experience? Yeah, default ones. That makes one less step for the end user. I was also thinking about it. So it's just only include Docker Composer. Okay. The only way I know of not having to enter the initial password is using jcask. Baviento, do you know of any other way without using jcask? So the end user doesn't have to look for the initial password in the log files and then report it into UI. I haven't tried that. Okay. It was just in case. I don't know how to do that, to be honest, without jcask. I know how to do it with jcask. But you have to install the jcask plugin first, which could be a pain in the neck. Yes, your mark. A couple of things there. So I don't want to interfere in the process. So I've been working on that quite a lot a couple of years ago. One of the things that can solve quite a lot of issues in the demo here is that we build our own local images with preloaded plugins. And this can be then then use. So I don't know. I didn't look at the Docker Compose, but installing some prerequisites can be done. So all this manual stuff we need to get rid of. The thing is, Omar, I totally agree with you. 100 persons. The thing is, I always try to balance between the most automation possible, you know, so the user just have to launch the Docker Compose and have a fully working Jenkins instance and the readability or the complexity of the set of Docker files, like Docker Compose and so on. You know, on the existing documentation, you have to create Docker file. You have to, it's way too complicated for the first time user. So I didn't want to replicate that. I wanted to have something as simple as possible, you know, Docker Compose and bam, you're good to go. But the downside of it is that there is some hidden complexity and it will have to resurface at one time. So I don't know that. Yeah, I would like everything to be automatic, of course. Can I give my point and this is also the reason why I raised my hand earlier. So there is something you need to think about. And I see that you're exploring different things is to know where you're going to put the focus on. One is maximize the or minimize the time required for somebody who wants to look with Jenkins is. And so he just runs it. And there he is. He has a job populated. It starts building. It starts doing. He can explore the UI. There we should use a maximum automation. The other thing is, we want to teach people how to set up Jenkins and have readable Docker files or readable Compose files and we have that. But there we're trying to mix water and oil. And this doesn't work. So my, my hints here is try to know what you're going to focus on and work in that direction, and then eventually add more things in your. These are my two cents. So in a good tip here is try to describe the person who will use a persona. Yeah. Who is he? Who are you talking to when you're designing your system? These are just my, I should refrain. No, not at all. Your thoughts are welcome. If we're going the wrong way. Of course, you said it perfectly. Mixing oil and water doesn't work that well. And we're trying to do the two things at the same time. And of course, after some time, it will, I don't know the term, all will be on top of the water. Yeah, the persona ID is a very good idea. Try to describe, try to describe him and you can describe two persons. I think we will have to. What do you think of that? The two personal thing is better, I think one for complete automation and one for easy understanding. Trying to wow, okay, it's my opinion. So think about it. But is the idea is mine. I think it's a good idea, but that's unfair. Is it happening? It's trying to connect or? It's connected. Is the agent connected? Yes, it's connected. Just a few comments there. One of the things if you do a demo. My old memories are coming back is that we also need to implement straight away good practices. A good practice is for instance to turn the number of build cues on the controller off. This is a huge security threat and show the people this is the way a standard Jenkins system works. I'm throwing too many things at you. So I'm sorry for that. And not it. Try to try to do. Well, I feel uncomfortable for that. I shouldn't have come to the meeting. Just listen to the recording. My suggestion would be take a moment to describe the personas. So, who are you talking to. So you will know what are the important things to do. I've thrown additional ideas by watching the screen. These you should park. We'll have a chat with you tomorrow. I'll share my ideas and observations or recommendations to you. And so you can discuss them tomorrow instead of interfering in your meeting. No, you're not interfering. You're sharing ideas which I do appreciate. I'm just going to show my example if I don't suffer the demo effect showing that hopefully everything will start by itself, you know, I haven't done anything. It just starting, you know, I've got agent already configured ready to go. Okay, something's happened during the weekend, I guess. Yeah, I guess. We'll see, but it's supposed to be working out of the box. So the end user doesn't have to log in. I don't have to create an agent doesn't have to enter any key. It just works out of the box. Don't solve it. I've already said it is that the Docker compose file is kind of complicated. So yes, I think this one is for the first person. And it could also be interesting for the second person if he wants to study what's inside. And I made it also too complicated because I chose to not create a custom file to everything via Docker compose. And so that means changing the entry point, making it custom one, downloading HPI directly and so on. And this would have been so much easier with a Docker file. So custom local Docker image like you described earlier from Mark. So it's not such a good idea just to show that it can be done for the first time of what's kind of person. I did it two years ago. I made a presentation. I don't want to say that I made something that hasn't been done before. There's several methods that can be used and the group needs to choose. Yeah. Do you feel like you could describe the two kind of personas and then maybe Orient? I don't know if that's an English word. You know, pivot your work for one kind of personas of the other kind of personas, or maybe we won't have time to work for the two kind of personas. So maybe you will have to do only one kind of Docker compose example files for one type of persona. I don't know. We'll see. But if it's okay with you trying to work for the two kind of personas after having described them. Yes, I also think it's a good idea to describe them first. So the first one is for like, so we get everything out of the box like you made something like this. Try to describe who he is. Try to describe you see a friend and you describe what does he want? He wants to see what Jenkins is right now. He doesn't want to get into Docker, Docker compose. He just wants to see what Jenkins is, how Jenkins works, what's the feeling of Jenkins. Describe that, describe that and try to add some ideas like how much time does he need? How much time? And that's why you don't need to answer right now, but so you have some metric. And this is why I just wanted to add that you using get put is a brilliant idea. Because the persons won't have to go into complicated local installation. So there's brilliant. Just my two cents. Sorry to intervene again. No, no, that's okay. That's great. Thank you. Thank you for sharing your experience and so on. For first time user. Cool. Do you use get pod? I never use it. You never used it. Okay. I find it neat. So there is there is a free tier as long as they do that, our solution is viable, but you have a good powerful Docker environment available. I think it's 50 hours of free tour for everyone per month. Yeah. I'm I'm interested to have your experience and if you go to get pod and you want to experiment that a suggestion is that you take notes. How long it takes you to set it up, understand how it works, get going to have a prompt. Okay. I think it's good. So we can add that to a shoot off. Quick start overhead. And the idea for Bruno, or in a shoot off is. I'm getting very interested in what you're doing. I like it very much. When you have written the personas description and that that we can start working on on that. Can you ping me so that I'm sure that I can have a look to it and add my ideas. I have too much noise and too much notifications all over the place so. I need to discuss with Bruno if if I want to help. I fear that site is disappearing. Yeah, so I'm if. So you're wanting to be a commenter. That's great news. I go from to push you too much you didn't say anything but here. I should because otherwise I lose the overview of the complete program. I need to also to care for the areas. But here you have an interesting subject and I don't want to leave. Two persons alone. Very kind of yours, but you've got already so much on your plate. I would be discussed that with you. Yeah, yeah. And would the two others. Accept me as a co mentor. Need to vote. But if you enter you're not still on mute. More trust your thumbs. Oh, that would be cool. Just just giving you help and so I want to refresh my knowledge on the subject. Let me see. Write me down. Oh, and the proofs. Himself. Comment to. But of course, it will be super cool to have you. But you have already so many things to do, but why not try to interest me. Okay. Cool. Anything else you would like to to share before we look at the action items. As you recommended, I did attend the docs office our meeting. Also cool. How did it go? Yes, it went good. Chris and Mark was there. They asked about the project and the Docker files. I showed it to them and they proposed some. As some questions and recommended some things. Chris recommended to document every step of the Docker file. Every point every command in the Docker file. So what it does and if it's removed later like I have in my Docker file I have. Gave privileges of route to both of the containers because I didn't want to get any errors in starting. So he recommended to give comments or any type of. To notes example to remember that why they were put here and when they'll be removed. So we remember everything. And Mark also proposed. Wait a second. I'll share the link. Yes, please. You can put the link directly if you want to in the document. It's at the bottom of the page. Oh, maybe you put something in the chat. Oh, of course. Yeah. Sorry. Yes. Okay. Yeah. Hey, so it's very, very little. Okay. Can I see it in another way? I don't know. Okay. Let me try it this way. But better. Okay. My PC is struggling. I don't think there's more. Really? Oh, yeah. It is. Okay. Yeah. I will put the link nonetheless into our notes. Okay. There we go. So you didn't talk about how and where to insert new documentation about Docker in the existing Jenkins IO documentation side. We talked about that too. Mark recommended to eliminate the window section and Docker section to merge all of them into one section because Docker Compose works on every operating system similarly. And yeah, we didn't talk much about it because it was first meeting and I told him I'm here only for getting familiar right now. So I even didn't think you would be able to ask any question about this project just listing. So that's already a major first step discussing the whole project with the dog seek. That's cool. Thank you. Chris was also there for discussing when this project about because that also contains documentation part. That's cool. Thanks for attending. I wouldn't to do it by myself on Thursday because they're the European and US version of the dog's office hour, but it was a very tight schedule and we didn't manage to address that. So thanks for doing it. And hopefully I also talked about that on the next iteration, which happens to be this Thursday. We'll see. Anything else you'd like to share? Nothing. Nothing else. Okay. So this one, this action item Bruno should start a discussion with the dog seek is still valid nonetheless. So you already have started the discussion but I tried to talk about that when we have time in the dogs office hours. And maybe you can do also if there is time in your. How is it called Asia office hours. Yeah. Thank you. But don't feel like you have to attend each and every one of them is just a nice plus if you can but don't feel like you have to do it. Okay, we're still very early in the process. So we have time. So don't don't rush on this subject. So this one is still valid and the third one I know you don't like it that much. Jean Mark, and I agree with you. There is still plenty of time so we don't have to start the discussion with the infrateam yet on community genki.io. Maybe later in the month. Yeah, or maybe even next month, the second part the second phase. Yeah, the automation part of this project is super cool. But even if it's not there in September, that's not the end of the world. It's not the major part of the project. It's a nice plus, you know, like the. It's really like the Gidpod one. The Gidpod one is a super nice plus a quick win for just about everybody but the automation is just to ensure that it will still work a few weeks from now. A few months from now, even a few years from now. So we'll see. That's nice, but if it does not exist in September, that's still okay. So no hurry, no pressure on that part. You said, I think I've seen in your Docker compose and Docker file references to latest or no references to a specific version of Jenkins, am I right? Yes. Yeah. I have a friend who happens to tell me every time because that was one of my bad habits. Friends, don't let friends run latest because it's changing just about every week for the weekly version. It's changing every 12 week or so for the LTS. So there are sometimes major changes that will make your project not behave like it used to do, because you're using later so it's a moving tag. It's such a good idea to keep using latest. So one of the things you could do, maybe have a look at the Docker hub or images of the Jenkins controller Docker SSH agent and so on, and fix a version. Maybe LTS would be a good one. I think you're using LTS, right? Yes. I have the correct tag with the number. I think it is or it will be 401.1.2.3 for the current LTS. And same for the agent. Look if there is LTS version. I don't think so, but look at the version and put the number associated with the version when you're using the images. In the interim, if we have time, we'll try to use a tool like, how is it called, depend about or update CLI. That was what I wanted to say. That's cool. Yeah, definitely I vote for your commentaries on the same line. That's really cool. So we can keep up to date images. Of course, this could change, you know, the behavior may change because there is a changelog. There are some changes in the binaries, but there will be a PR made by depend about or update CLI. So we will be able to have a look at the checks and see if it's still behaving the same way it was doing before. Yes, go ahead. I know I just wanted to emphasize that and just to explain exactly what the difference is. When you use latest that underlying changes and upgrades are invisible. And so you're you're following you don't have control on what's happening. When you use pinned version, though when you specify the version clearly, and is the other condition, you use a tool that will stop a spot the upgrade. So the tool if you're not familiar with depend about or update CLI, it is it will walk through your file and say, Oh, there is a new version available. And it will automatically create a PR. That means that you're aware that a new version is in that either yourself or the CI system will auto automatically check the the branch the PR branch and will check. Okay, this is an upgrade that will work. Because we checked it and you review the release notes. Yes, I approve it. On the other side, if you use latest, you restart the project. It doesn't work anymore. What changed? Oh, I don't know. See the difference. And so it is a very good habit to work the way pinned version with an automatic updates. Did I explain that correctly? Yes. Thank you. Just explain the and give some time to Bruno to write. Thanks a lot for the notes. The notes. When I was younger, there were not these automatically updates tools didn't exist. And this was a mess. And so we had big, big fights between production and development. So it is something you can use on whatever development project you will you will deal with later. Yes, that's a very nice thing to know for other projects to even if they are not open source, of course. Yes, it depends. But that is a great job. And it's pretty easy to install into your project. There are just a GitHub acting, I think, to configure and you're done. Update TLI, on the other hand, is much more powerful, but also way more difficult to configure and install. I'm currently fighting with it for Jenkins IO website. It said I'm trying to install the TLI on Jenkins IO. So the documentation is always up to date when referring to versions. But boy, well, it's using a lot of regular expressions. And even if I love regular expression, they don't love me in return. Yeah, it's a go long version of the regular expression, which is not the Perl one of the one you find in Emax. Very look alike, but not exactly the same. And it's sometimes difficult. It's challenging to use them. But it's a lot of fun whenever it works in the end. What would you recommend to Ashutosh? Start with Depend About. Frankly, it can handle the Docker image versions. So that would be a quick win, I guess, because if ever you go the update TLI route, you could spend just one week having it working correctly for your repo. So I think that's not urgent investment. You could do way better, way quicker with Depend About for the time being. If you ever feel like it, you don't have to. What I'd like you to do is to have fixed version, pinned version. Then maybe if you have time, if you feel inclined to use that, you could use Depend About. And maybe in August or so, if we still have time, go the update TLI route. And by August, I hope I will know more about the TLI so I could maybe help you use it for this project. We'll see. Or not. Maybe I will go completely crazy and throw it out of the window. We'll see. Any question about that, Ashutosh? No. I'll work on it. I'll see how it can integrate that. Cool. So do you consider your first example for one or the other persona ready to go? No, I don't think it's ready yet. So what do we do about what, so we should discuss about the persona thing now first. Yeah, what we will do about that. We automate everything. I'll work on the personas for two different personas, one with fully automated and one with simple explanation. Got it. Okay, and if ever you find out why the keys were not working, feel free to write a few lines or in communitygenkins.io or even prepare a blog post if you feel like it. So other people facing the same issues could get some information on how to solve it. But don't think that you have to do it. It's a nice plus, but if you're already overwhelmed by the amount of things to do, just forget it. Ashutosh, please. I'll try it. Okay. No rush, no pressure. Okay. I will look on my side too. Cool. I remember something I stumbled on equivalent problem. A couple of months ago, but I don't forget this comes with white hairs is that you start forgetting. Or even losing hair. Well, yeah, okay, this problem. I would prefer having gray or white hair instead of losing them, whatever. Okay, we still have a few minutes to go. So let's have a look at the action items. So Bruno should start discussion fine discussion. This one is not mandatory and we can do it another time. Fix the pinned version of the image. And what else. The personas. Yes, I just wanted to make sure. And adds also this bonus point, the SSH key issue to explain that. In the office hours are attended on Friday. Chris mentioned something about SHM size that will be used in kit. Lab plugin. I don't understand it completely right now. Can you open the docs for that office hours, the Asia one last part, I think. Yes, this one. Maybe it was up. Maybe it was our. Related to the get lab plugin. Yes, SSM size. Oh, it's the same. Yes. Never heard of that. I don't know what that is. Yes, I don't know completely either but it's something about shared memory between Docker. Container and post I think. Is it the Docker parameter or. Where is my mouse. Okay, I look it up after the meeting. Cool. Thank you. We're almost out of time. I think a headset of something about 50 minutes or so. Anything else we should address before wrapping it up. Everything's done. Cool. Thank you. Would you have any question, common feedback? I don't know. I wanted to raise my thumb to a very unto to have been quick in in solving a shoot. Issue and put him in rails and spotting the problems and in helping him. I've seen it from far but. Yes, thank you so much because I tried to and failed down in a rabbit hole, as I said, and I didn't give you any feedback for one day and a half or two days, even. And I gave you an answer to question you never asked. Thank you. Congrats. You were spot on. Very good job. Okay, looks like we reached the end of the meeting. Thanks a lot for attending and John Mark, if you feel like it, you're very welcome to be part of the team. That will be my pleasure to have you on board. You're tempting me but I you're doing a good job so I just need to. Yes, but even with my grain of salt here and there. Yeah. Food with salt is better for the taste and not for the health, but your salt is welcome to. We'll talk about that tomorrow. Yeah, with pleasure. So I close it down. Thanks a lot for coming and we'll discuss later on in the Gitter channel feel free to chime in and I'll try to have much better this week than last week. We'll see. Anyhow, have a good rest of the day all of you and see you next week at work. Bye bye. Okay. Bye bye. Thank you.