 Welcome, everyone. This is documentation office hours Asia. It's the 30th of June 2023. Thanks for being here today. Topics include Google summer of code. Open pull requests of interest with one specifically about Kubernetes. And I'm out of office for two, two weeks during July and wanted to talk about what we do with the meetings. Any other topics you want to put on the agenda. Looks good to me. Okay, there was one more pull request of interest mark. Resolve the conflict and merge changes. In an old PR of legs. But unfortunately it's still not resolved any of the other questions that were there. So let's, let's start with Google summer of code. So Chris, are there any specific topics you wanted to bring. Yes, I want to bring up the midterm presentations and evaluations. Okay, good. So that's the presentations themselves are next week. But I think what evaluations it started in July mid July, and it's still on July 14 for 15 depending where you are. Okay, so I do from the mentors to Google or no from the lead mentor right because it's only we are only allowed to submit one single evaluation. Yeah. Okay, so to to Google. And you say that was July 14 2023. I think so yeah. Okay, so depending what depending where you are. Okay. Okay, of each project to Google. Okay, good. All right. So see the webinar announced by Alyssa Tom, or next week. I've still got to sign up for it. That's good. All right. Jenkins online meetup. I'm going to embed a link to it here because we should be able to find it on the meetup page. Virtual meetup group here at no that's not it. Interesting. Sorry, what was your comment Chris. I think we need to fix this link. Yeah, I agree but I'm curious why it doesn't work because I thought it was working. I don't know. Search. Okay, so let's Oh, maybe I need to log in first just a moment. I don't know why I would need to log in but maybe. Okay, Jenkins. It's not I don't care about near level in Colorado let's look near London. London. No, UK. So this one. Okay, there it is. Now the question is why didn't that that's exactly the same URL. Huh. Okay. Now now back to sorry I've got to understand why this. Okay, I click this. And now it works. Okay, so you must be logged in apparently I didn't realize that weird. Okay. Now I need to attend. Okay, good. So here's the event. All right. Good. So we're scheduled for this next week and the webinar link will be inside the event somewhere or she will have already placed it there. Great. All right, and then Chris you so that covered the presentations part now the evaluations part there it's that the mentors need to agree on their evaluation. Yeah. Before the deadline. Right. So, hey, and do we have a sample of the evaluation questions, etc. Or is that something you only get to see after the evaluation period is opened. I think we can access the questions now according to Google. Okay, all right. So should I open up the Google summer of code site. Yep. The summer of code with Google. Okay, here we go. And if I log in. My account. Okay, here I am. And in my profile. 2023 I'm listed as a mentor. Okay, so. Go go back to the button on the top right hand corner and click. So click on the green. Yeah. Okay. It should be a bit. And if I look at program details, or should I look at my projects. Sorry, say that again Chris. I should be managing both zones. So one next to it. Yeah. Oh, manage proposals. Okay. All right. Even though I'm accepted. Okay. Like, if you go to any one of the projects you're mentoring. Okay, so let's see this would be. Well, but, but see I was expecting. This is these are all proposals. So I think what we want is. Yeah, you're right. So the next one next button. We want my projects. And here we go. Get lab plugin modernization. Okay. So when I click it. It shows me the project and the contributor proposal. Questions yet. Let me find the questions. Okay. Because I think they send our link previously to all questions. Okay. Give me a sec. So let me turn reminders. Questions. Questions. Wait, I found it. They are. Let me put it in a chat. I don't think it's in the form yet, because they're not open yet. Ah, okay. So that may be it. Hey, no shock that. Ah, okay. Just a questions. Good. Okay. So. Okay. So this is a very reasonable. So this is the midterm eval. There are the questions. And I'm just going to grab copies of those, paste them into our notes. Okay. There they are. Right. So we've at least captured them. Great. Excellent. Thank you, Chris. And that's from this page. The midterm evaluation questions. Great. Okay. Yep. Anything else on midterm evaluations? Um, just a questions. Maybe. But we could also talk about darker quick start and the building. Jack and so I will be for trying to towards project because they are directly related to dogs. Mm hmm. Yeah. So let's, is there one of those that you want to take first or second? What's your preference? I have no preference, but I, I, I'm not really up to speed. We got in the doctor and quick start poetry because I wasn't present last week. So I can, I can talk to about what we, what Ashutosh showed us last week and what we demonstrated the, and they've made progress this week as well. So last week we looked at experimental Docker compose files and I think we looked at this one. That uses a compose YAML file that has a Jenkins agent in it. And we actually ran a Jenkins agent with the controller and confirmed that it was well behaved. Now, as of this week, there's now a new poll request here that Bruno is evaluating that is attempting to implement the, the tutorial. Where the tutorial is this tutorial here. Whoops. Okay, they just give me a link to that one. Good. This is, and okay, the thing they're trying to replace is this horrible mess of monstrous detailed instructions on how to do Docker configuration. Okay. And their goal is to make it a single, a single command. Yeah, I realize like for these changes we may need to update on our side for the building Jenkins I will project to because I maybe later ones like after this time. Oh yeah well and, and certainly because building Jenkins.io with alternative tools is is not attempting to track changes on Jenkins.io there's a lot that may need to be updated at some point in the future there agreed. So, but for me it's this one feels like it's, it's looking very positive Ashutosh's work looks really good. Okay, that's good. And new poll request for the Maven tutorial and the the encouraging thing for me on that new Maven tutorial poll request is no more Docker and Docker. So no, no need for the security risks. That come with choosing to run Docker and Docker. Okay. Good. So next topic then and so this takes, and then this week working on the presentation so tell us more about building Jenkins.io with alternative tools. So a new PR has submitted for the solutions pages so that that's pending review. She's a good sign. And also we have, we have some minor minor work done on the on the website as well to fix that we do actions. So it's done, I think yesterday. Okay. So this is the previous. Let's see, and I should have a link to that and I don't. Let's see what I've done with it. Where is. Well, I guess the easiest is let me just type it into my browser. I just pasted it to a chat. Okay, great. Okay, so we'll just embed that. And I think if I reduce it to that. Nope. If I take out the portion there that has version specific info in it life's easier for me. Okay, one more. Okay. And the prototype site is right here. Let's do some imperfections we go inside because I still see some broken images and broken links, but those, those will be fixed eventually. Yeah, so, well, so here the, the search box is or the images are working. And so for me that was a that was a positive. Okay. I didn't, didn't check every page though. And okay, so here's another one with a working working image. Okay. Now that doesn't need to be going to one of the digital tables because like it doesn't work now because of some course policy, but we can make it work if we start Chrome in some way to disable security like for for that instance. So now when you're talking about data tables, I'm not sure what's what's the context for the data tables. I think as a source code hosting under, I think, let me make a trial record so it's like, I don't remember where it's like under the let me check. Is it maybe in developer documentation. It could be. It should be under developer documentation so publishing. Publishing plug-ins. Seconds. It is working, but you cannot see it like ordinarily because you have to. Because right now we're not hosting it on Jenkins.io website. Right. We can, you can use it for now is like it's just disabled due to some security feature. Interesting. So, so is this is this page then also broken on our preview sites for Jenkins.io. I would assume it is. I think it was before some point but it's fixed now so it's working. Oh, okay. So when I look at when I go look at a pull request here to let's pick a recent one. So the automated changelog this one. If I look at its preview site, you're saying that I should be able to in this preview site. Find in the developer guide. Yeah, let's see it's plug in hosting. I think it's publishing. Publishing. Okay. Publishing plug-ins. Source code hosting. Yep. Oh, no, no, this one you have to go back to Jenkins.io. Right. Okay. So that's what I was I was so I was suspecting this would be broken. Right. Because it's on the preview site because like you said cores, right. Yep. It's not allowed to, to make that request to that page. Okay. Certainly if I go to Jenkins.io, it works. Let's let's prove it just to be sure but developer documentation here. Publishing plug-ins. Source code hosting. Yeah, this one will never finish because it's never going to get the data. Yeah. And if I look for me, there I am. Yep. Okay, cool. So, so the fact that that page is not working in the prototype is no different than the fact that it's not working in the preview site either. This is a little different message is all, but other than that, there's no, that's not a loss of functionality. We already don't have that functionality in the previous sites. Yep. Okay, good. Anything else that you feel like we have to show there? Maybe not, not, not this week. No, we not yet. Because I think, I think like I'm trying to push like Vendee to fix all the broken links. So we can present that prototype to the community, but I have to have to push them a bit. Good. Okay. Very good. All right. Next topic then open pull requests of interest. So this one Meg is one where I wanted to get some, some insights from you comments from you. Let's see if we've got why. Oh, right. Okay. So, how does his. Okay, so this is now. All right, sorry. Here is the picture here is the sites no longer building. This is a proposal from Tunis Sharma, who had done a bunch of other work. And as part of that work was proposing. Interesting that this new section or this empty page right now on Jenkins.io have new content added. Currently it's, let's look at how just how sad it looks if we look at administering Kubernetes administering Jenkins on Kubernetes. There's the page. I hate these things. Yes, that's not a very satisfying page. And so what Tanush has proposed is here's an outline proposed for this now the problem is I can't show you I don't think I can show you the preview because it appears that the build is broken at the moment and I haven't investigated to see why. Let's see. Work even sometimes the broken build is details. Well, we'll see. So let's look to see if there is a site deployed to preview. Here we go view deployment. Okay. So the documentation here it was in system administration. Is that right. Yes, administering Jenkins and Kubernetes so here was is what the first pull request the first part of the pull request as submitted to me these headings look like good topics right introduction and overview yep architecture and components yep. So installation and configuration. This one I'm not sure of because we've got a Kubernetes section already an installing. And I think it may be better to do do it there. And now I'm open to to comments. What do you think at the very if you're going to do that I would link to it. That's a good suggestion right okay so so see the yeah very good alright and vice versa. The installation on Kubernetes should link to this. Okay and here's what it says we can paste the installing Jenkins on Kubernetes link here, and that's okay good. Alright, then scalability and high availability and I suspect saying high availability as a mistake and and should be fault tolerance or something else because high availability usually is interpreted to mean something different in this context than what Jenkins can support those fault tolerance everything is. Something for really vague like reliability or yeah title and you know. Good point. Okay, good. And also but I know. I don't know maybe I'm too much of a weenie here. I would like to know why high availability is not not possible. I mean, you know, a brief statement but a good good question let's see I think we may already have that but let's see. I availability. No. That's a CD con topic. My experience is people misuse these tools so much that I don't even know which is the proper meaning for them you know. Right. I mean, in Kubernetes by defined by definition gives you a certain amount of high reliability because of a pod goes sour throws another one up there. Well, that's high reliability. I'm high availability. I'm happy. Right, right. Well, and yeah so the, let's see. This talks about about. Well, maybe not I'll have to, I'll have to go digging. Good point. It's, it's to make it clear that hey, this does not give you instantaneous failover if a pod dies. There will be time to restart the pod to start a pod. Okay, so back to our prototype site. Let's see one one comment you made Meg was, let's be sure that the installation and configuration section links to rather than inserting into this section, all of the alternatives. Because the alternatives are already in the install section. And so that would mean the first bullet goes away. I assume the second one does I mean verify what's in that installing. Right. And, and this one is the installing does it go into configuration. This needs to be put together with installing configure and it doesn't at least in the past it hasn't let's double check as far as I know installing on Kubernetes just talks about. Okay, how do you install with helm, and it gets you far enough to have it installed. But it doesn't do anything beyond basic installation. Okay. Maybe that section then should just be configuration in the first sentence should be for instructions for installing go to link. Right. That's what my thinking is is that we probably want to tell people, look to do a system administration on Kubernetes. That's this is the place. Now, okay, question here there's the problem with long title like this is I'm very near overflowing is this should it just be Kubernetes. How what's the What about Jenkins on Kubernetes it's under system administration. Good, even better. Right. Okay. Some people are idiots they won't get it but it's technically true and if they can't think for a minute. Well, I'm not in a sympathize sometimes I feel kind to people who won't think but today's not one of those days. All right. I was going to look at our prototype of the new site where is it where did it go now it is here. It's a new site. How does it look. So we've got system administration, administration. Yeah, see it's, it's already wrapped wrapping and for me that's, that's not, not what I would prefer. And I don't like having system administration and then something underneath that be administration. Right. Right. You know, yeah, exactly. Okay, if this thing were switched from administering Jenkins on Kubernetes to Jenkins on Kubernetes. That works for me what does it sound like to you Chris. I think I would like Jenkins on Kubernetes shorter. Okay, good. All right. Let me make a few notes here while we're here. Okay so Jenkins on Kubernetes rather than administering Jenkins on Kubernetes. And then it's, let's see the other piece was the install and configuration becomes just a configuration. And the first sentence is for installation instructions go to right. Okay, good. And then I would all and I would also say I would hit that the installation chapter and and add a link to for configuration information go here. Good. Okay, very good. And he has and he had some other bullet lists in there that don't belong here but if he wants to while he's at it he could review that installation chapter and make sure that I think it's crucial that that he interviewed review the installation chapter because it's largely unchanged from two or three years ago. You can be confident there are errors in that now given how much Kubernetes has evolved. So he can take ownership of that content we just don't want to duplicate it. Right, exactly where she had to have God have things that disagree with each other. Exactly. Yep. Okay. Anything. Let's let's go back and do some. Oh, sorry, go ahead. No, let's go back and look at it again. Oh, scalability and high availability was suggesting a more generic name like reliability. And liability then talk about what means what what is high availability what is fault tolerance. What do you get. And what can you not get. Yeah, good. Okay, so, so for instance, pod pod. So yeah, so pod death. Our loss of a pod requires start of a new pod. Some downtime during the restite. Right. It's just the true reality is, you don't have this is not a zero downtime. Configure is set up. Okay. Okay. That's various things. I haven't thought about those things. It's not on the tip of my head of what fault tolerance stuff, but, you know, so let's see. Configuration management. Okay, how is that different from just configuration. Okay. I might put that closer to configuration if it wasn't combined. Given given the amount of content that is removed from this, should they just be combined like you said, configuration, I mean, configuration, I if configuration I would put the configuration management content I wouldn't, you know, managing Jenkins configurations and plugins on Kubernetes including big maps and secrets. I don't know what I think of those as configure. Okay, yeah. Yeah, so for me, this is there, they're both crucial items, but I think they really belong up here as a single section. Yeah, that's configuration and those are part of. Okay, combine the configuration management and installation and configuration. The configuration configuration is not only configuration right into a single section configuration section with an opening link to the installation guide. Okay, no, don't we have there. We got the third bullet for that link from installation. Yeah, yeah, why don't we put make a sub point over that and say, include the content defined for configuration management in this section. Oh right right come I see what you're saying right so that's this here. Yeah. Got it. Okay. Okay, then you could reword it because it doesn't make sense because we just said installation scoring. But okay whatever you know what you mean wait a sec so isn't it isn't what we're really saying here is that this just saying include the information spec for configuration management in this. Yes, like that. Yeah. Fewer words to read. Okay, good. Okay let's go look at some more. All right. Oh it's so much fun to tear apart somebody else's work and I don't have to do the work when we're done. I'm monitoring and logging. Okay. And I guess that we understand that's going to have a link to regular logging. Right, right. Yeah. Well and let's yeah so it's a good point there are there are a number of these things which are, which have general purpose troubleshooting and are not specific to Kubernetes how would we want to handle that is so troubleshooting for instance, there's the general purpose troubleshooting information that's right here. Uh huh. And, oh, except that's not this one diagnosing errors, obtaining a thread dump is is this a place where should should the Kubernetes specific information link to this. I would think so and then I mean, first question is on Kubernetes is this relevant. Certainly it is. Okay. The memory error is very much so because Kubernetes pods can be defined to have an upper bound on their memory use and and it's, it's very possible very, very much feasible could remediation or just how you diagnose it. Well, it's going to be different on. No, it tells you how to how to do the remediation with. Let's see where is it analyzing the heap dump now where's the it oddly enough this one doesn't tell you what arguments to set but there certainly are Java command line arguments that will tell you that will increase the increase the size of the heap. Okay, and then what is the story on Kubernetes do you do that or do you increase the size of your replica or. I think you have to do both right you have to tell you have to tell Kubernetes size me this size the pod this way or size the container this way and then tell Jenkins tell the Java command line inside Jenkins and size yourself to use that. Okay. No, no, no, wait a sec. I take it back. Recent Java versions will automatically read the Kubernetes assigned memory value, and we'll use that. So, so there may not be anything they need to do in Kubernetes just size at larger. I still think that's worth. Because there are people who are running old versions of Jenkins that look at the modern doc and it doesn't hurt you know to say an older, you know, with older versions of and how far back on Java do you have to get to you to where you'd have to do that manually. I think all the Java 11 versions we support have it. And so, and we've no longer support Java eight so I think we're fine there. I wouldn't mind saying that Java 11 and forward do this for you. Yeah, except it's just a hint. We, but we don't, we don't support anything older than Java 11. Okay. Um, can I rent Java eight agents. No, no, you can have Java 11 agents. Okay. But let's put a general concept link from the sections from the Kubernetes specific sections to relevant general purpose sections. Yeah. And let me put some examples here so purpose pages. Troubleshooting, for instance, should link troubleshooting Kubernetes should link to the general purpose page in addition to Kubernetes. And then what I mean, I don't know what your user profile, you know, if it's Kubernetes still a small part of your user base or are we getting to a point where as many people are more running Kubernetes than not Kubernetes. I that I don't know I don't have a I don't have any data that at least known to me to tell me what fraction or running Kubernetes certainly there are lots of questions about Kubernetes in various forums. Right. Because there's one option is that the out of memory section says what it says. And then when it tells you how to fix it, it says, if you're running on Kubernetes, do this and this. The other is that you have troubleshooting under the Kubernetes section that say out of memory errors are discussed here, and they can happen to you on Kubernetes. Here's how you remediate them on Kubernetes. Steve and I would think we want the second mode because Kubernetes out of memory errors are solved with a different technique. Then we use on a Linux installation that use the Debian package or the RPM package. Because when we're using system D, we configure additional memory a different way than when we're using Kubernetes. But let's go back and look at the out of memory section again I want to see how much else it says besides remediations a small part of what's there. So this is telling you why they happen and how you diagnose it. So you're going to leave this material as it is and reference from say if you want to know what out of memory errors are and how to diagnose them here. And then here's the remediation. That was my thought is, is for more details on out of memory errors. See this page. But if you've run out of memory, here's how you increase memory memory allocation on a Kubernetes on a Kubernetes cluster. And of course the ones I'm not sure I'm not running Jenkins these days. But what we're seeing is a lot of times Kubernetes doesn't tell you that it's out of memory you just your pods don't start. Or they get killed. Yeah, they just sit there forever and there's no message or anything. Right. But of course we're out of memory has always caused weird error messages because it's out of memory. Okay. Yeah. And you can't do this but try to encourage reviewers to review the existing docs as well as the new and make sure they all fit together in some graceful way. Oh, that's good right well so and that's that's a good one. I mean, reviewers being what they are one thing is to go into the old guide and add a couple of line breaks or something which will pull that text into the PR. Right. Compare existing content and Kubernetes content for improvements in both places. Good. All right. Okay. I'd give them enough to. Oh yeah, I'll have to spend time to describe those in the pull request, and I need to figure out why this pull request is failing to build. All right. Anything else on Kubernetes. We've probably beat that one enough. All right. So the next one is on best practices and I've not made any progress on this one. It's, it needs more content. The additional content is just hasn't had time for me and won't get time for days or weeks. Or months, whatever. Yeah. I hope it'll be sooner than that but yeah, it'll be a while. Next, last topic for me before we close for today is, I'm going to be gone the 24th or the 14th of July and the 20th of July. I propose we just cancel for those two weeks unless somebody else wants to take on Chris could for instance lead the meeting. If he's available. I think the only critical things are probably G sock and Chris is handling those right. Right. Oh, Chris is gone now so. Yeah, I'm happy to skip meetings. Um, back conflict in which PR of Megs is still live enough to be worth resolving a conflict and I'm just. Oh, it's the conflict the conflict that was in it is already resolved. So it doesn't, it doesn't, it doesn't affect at all. All it was was I went in and I'm just curious which one it is. Okay, it was the one was it this one. I know what we can do we can look at it this way we can look at it by author. Let the software do the workforce. Oh no no I take it back it was not that one it was this one script security and what the what what had changed there was some conflict in something or other down here and I made a few changes right remove some trailing spaces removed a paragraph and. Oh that this was the one that was the surprise is Daniel had given feedback that said hey instead of calling the file scripted in the chapter we should call it scripting. And that change was applied but then the file itself was not renamed and so I renamed it. Okay, so now this this is actually visible now we could actually look at it in the context of the deployment, because it will show us. And I think it's under securing Jenkins and security for scripts. So here's the page. And, but it hasn't had changes applied based on comments that are in the in the reviewer pull request or in the reviewer doing that I kind of haven't I stopped watching these I just figured they were all dead. But should I go in and look at those comments or if you if you well let's let's look at them together briefly just to see if it's been so long since I've been in that you know I used to have all the security stuff in my head and I'm. Well, and that may may justify that hey let's, let's leave it to somebody else to take it up, because if we look at the comments, let's read the comments really quickly just to see. Okay. Yes, okay this is one that that they had said very uncommon and I think I'm prone to just delete this text entirely, because this is focused on groovy scripts. Not on, not on anything else. Okay, yeah. I always write to put when in doubt I put it in because it's easier to delete than for somebody to remember Oh you didn't mention this. Right. Okay, alright so this one. I think what he's saying here is this one should not be in the list because it's not really groovy in the sense that the when executing pipeline we're executing the domain specific language that is based on groovy, whereas when we're executing groovy scripts in the script console they're really executing groovy full full groovy so. But so what this is really saying is there. And I mean people. People when I was around people were always saying that you know pipelines were just written in group with the old type into written in groovy. Right. And you know we went through at that time and went through the docs and made sure that it said, using a language that is similar to groovy or whatever. I don't know the whole play out there I think a lot of them still think that scripted part I don't know. Okay, but. Yeah I think given given Daniel's comments here. This looks like it's just a rewrite to which he just did there. Well this is at least a restructure. I'm not sure it's a rewrite but it certainly is a restructure and. Okay. The basic counsel, don't ever disable the sandbox. Don't do script approvals unless you are very serious about it and know exactly what you're doing. Uh huh. Which isn't going to stop anybody but at least we've warned them. All right and if you're a confident there is this file a PR and okay. Good. Yeah I like that. Just know I love this. Yeah, because that one I think was one that I wasn't real sure about it or just I threw together what I could find hoping we would get just exactly this so. Okay so we've got some feedback that we could take on it. And but I think I think you're wise to say, hey, having you do the rework on this is probably a bad choice because you've been away from this kind of stuff long enough that you don't know about changes that have happened and right. But Kevin, but I'm thinking Kevin could probably take this on and put it together in no time. Yeah exactly good idea. Okay so the script. Let's see what was it called scripting. And is scripting and security. And let's put the pull request there. There's something or other. Okay 4693 has comments that Kevin or Mark could revise could use to revise it further. And maybe even get it published. Good. All right. Bonus. Thank you. Any other topics mag before we end for today so I'll cancel the July 14. Yeah, do you want to stop the recording and then I'll ask you what you're doing. Sure. Yeah, absolutely. So.