 Welcome to Docs Office Hours. It's the 18th of May in Asia and Australia where we're hosting. It's only the 17th of May on my side of the international date line. Thanks for being here. That's great. Topics that I had on mind. Thank you. Jcast plug in documentation. We've got an initial pull request from dirage with our, that's already received reviews from Oleg and Tim. And then. Oh, whoops. I meant to put this one Jenkins on Kubernetes. Because we've got a proposal from you. See the mailing list content. For a proposal. And. Sorry, could you ask that again? Oh, yes. Absolutely. Thank you. Yes, I should have done that already. Thanks very much for the reminder. Is that more workable? Yeah. Okay. Yeah. My apologies. That tiny little font is silly. So yes, absolutely. Okay. So proposed topic one was. Jenkins configurations code pull request. And then Jenkins on Kubernetes and specifically the proposal was for plug in installation manager documentation. And then, oh, I've got way to say, Mark has. Mark's news. So I've got a news item. To share. Just that we need to discuss and. Identify suggest ways we can deal with it. And I'll send it by email separately. In a day or two. Any other topics? Yes. I also wanted to discuss briefly on the next block post as suggested by you. That is, that will be on security. How to manage. Secrets using jcask. So. Wanted to have some news on that as well. Good. Okay. Let's have that one on the topic. Good. All right. Any other topics. Did you get a chance to look at the plug in install. Install manager. Group. Did and thought we would go through it here today. I will give additional feedback. Online, but there's, there are some pieces of that, but I think you can make it easier for us to review. So review. Here, I'll just put it, let's put it in the, in the notes so that we've got it. Because it's part of the Google group. Thank you for posting it to the group. If we get it as a pull request, it's even a little easier to deal with it. So I'm going to bring up the page from the Google group. And. This is what you had sent. And if I open it, this is how it looks. Yeah. So that's, that's, that's good. Let's, we'll talk. So put that on the topic list. We'll do that here. Right. Any other topics we need to be sure we discuss. Yeah. I had an access issue. Oh, yes. Yes. Let's put that one. That's very good. And that's Jenkins downloading plugins. Yes. And that's a good one for us to discuss. I saw that in your, in the, the Gitter chat channel. And let's discuss it because. There, there are good things to learn there about, okay, what's happening. You may be able to do some diagnosis while we're, while we're online here to help us understand. What, what it is that's affecting you. Okay. Yeah. Any other topics. Okay. And let's, let's go ahead. So I'd say let's take a look at the Jcast plugin documentation. Okay. Okay. Thank you very much. You had posted a poll request. To. To the Jenkins.io site. Proposing a blog post. Excellent. Very, very good. And we see initial feedback from Oleg. And suggestions for. Alternate. Yeah. I think I've got a, my preference is this, the one that's six months old rather than the one that's a year old, but, but either is certainly newer than this overview. And Evelina, the, the person who provided this six month old one. Is actually a member of the Jenkins governance board. That's awesome. Then I'll add this video. Great. So, and Tim, Tim, who is one of the maintainers of it. And I think so. His recommendation here was to do a reload rather than a replace. And I think that makes sense because if I look at my Jenkins, I should have realized this before when I look at my Jenkins. And I go to the configuration is code. And the one that I inevitably press is this button right here the, in the actions there reload existing. I hardly ever go here because I've already got a file and I'm using it and controlling with source code. So I think he's got a good point there. Exactly. I totally agree. Okay. So I just wanted to ask whether should I completely change the step including what you are suggesting, or should I keep both the steps? What would be better? I would given that you're given that you're trying to give them a series of consistent steps that always that work and are common. I would replace. So use, I would remove, remove the replace and just use reload. Awesome. So I'll do the changes. Great. And that's, that's really exceptional. Well done. Thank you so much. Now, okay. Now I see, I see a red X here. So this may be a worthwhile thing to show each other. So it looks like the build itself failed. So we look at the checks in the under the checks tab here. And in the checks tab, we see. Jenkins had a failure. And if we look to see what was the failure, I can click rerun here. Oh, yes. Sorry. So what, what this message is, is the CI server had a problem. And the problem it had will be in the logs. And the problem will say something obnoxious like it lost connection with the agent. So this is a transient error that we've had on this particular CI server because in order to manage costs, we have to run both Azure and AWS. And crossing cloud providers does not always give us a, seem to give us a reliable connection, but this is now running and 10 or 15 minutes from now, we should come back and check and see if it's gone green. So is it a blocker for merging the PR? Yeah, well, if, if we've got a red build, we need a green build before we'll merge it. Absolutely. And, and the challenge is you as a submitter probably cannot request a rebuild. I'm not sure that the rerun link there is available to you. Yes. And so, so all you one, one technique we've used in the past is you could add an additional commit that will cause it to be rebuilt, or you could close the pull request and reopen it. But it did not trigger any bills. So then I added a additional comment. As you can see in the comment history, then that led to rebuild. Oh, good. Okay. Yeah. And that's, that's just fine. Now this is actually a good example where we may not be able to do a rebuild, but we're going to be able to do a rebuild. So we're going to be able to do a rebuild. So we're going to be able to do a rebuild. So we're going to be able to do a rebuild. So that's fine. Now this is actually a good example where we may want with 10 commits. Would you mind if we squash them all into a single, into a single commit? Sure, I'll do that. You don't even have to actually do it. If I just put a label on it that says squash merge. That reminds whoever does the merge of it, they'll do the squash for you. Oh, that's really nice. Yeah, because we've got a this, this, the merge button here for, I don't have merge permissions here, but there's this choice squash and merge. That will allow, will cause GitHub to do the squash for us. Okay, that looks great then. Great. All right. So, dear Raj, thanks very much for the, the blog. That's, that's excellent. Thank you so much. The next topic then was Jenkins, the Jenkins on Kubernetes and the plugin installation manager page. So, so the car, the, for me, it was, it's a little harder to do the review in this format than if it comes in as a pull request to the Jenkins.io site, because I don't have inline commenting ability here. You had, I liked the three questions. It was, hey, which of these options should we take my, this one you described as, should we have a separate section, which is inside the book using plug-in, after a separate section, after using, after the managing plugin section. So let me open that and let's, let's look at it together and see. All right. So I think what you're saying is, should we have a separate section in the managing plugin's volume where today we have managing plug-in, you think, should there be a separate section, which is, whoops, which is titled, using the plugin installation manager tool. So it would have its own dedicated section in this chapter. Did I understand what you were suggesting? Sorry, Suda card. Did, did I understand you correctly? No, you're just very soft. I have to listen very carefully. Okay. Okay. So my initial take had been that the managing plugins page has, has a sensible place for it in the installing section immediately after using the Jenkins CLI. And before this advanced installation was my thought, but Meg, I'm open to you. Sorry, go ahead. That's option three. Right, exactly. And my thought was, I had personal preference for option three. If, if you think that would work, what you know, what's your sense because you were the one who did the, the writing of it, it's, it certainly talks, it's important to talk about, hey, how do we, how do we get it downloaded onto our system? How do we do, and now there are a number of different activities and, and you highlight many of them here as, hey, there are many different tasks, not just installing, not just installing plugins, right? So this is the installing a plugin section, but the tasks that are described here, listing dependencies, previewing, you know, this is a much richer set of options than just installing a new plugin. Meg, any guidance from you on, on what, what you think would be a good, good placement for it? I mean, we could certainly say we're going to do a separate page and call it plugin installation manager. It's given the length of the page, I think it could easily be a separate page, particularly if we expanded some of these here links. So, for instance, takes us to a, a nice multi-paragraph description and this one also provides us a multi-paragraph description. Oops, wrong one. Sorry, that was, it was this one. Here we go. These things give us some, some really good examples of, hey, here are details that we may want to put in line inside the page. So Sudhakar, do you have a, a strong, strong link to that page? Sorry, that was muted. Oh, go ahead, Meg. So you weren't hearing anything. Yeah, I said, I liked option three, but then I like, if it's a separate page, we could just put a referenced a link to that page in the same spot that we were talking about for option three. Well, and the, the link in the same spot is a technique that, that Daniel Beck just used with his, with his work on the security pages. So I think it was, I think it was securing Jenkins. I think it was here where he put, is it in managing security? I forget which one it is where he did the, but what he did was he put a, yeah, he put these sections here, each of which takes us to an entirely dedicated page on that page here is, and these things are each a relatively long piece of description. So maybe we want to go Sudhakar back to your, I guess the question, do you, as you were working through it, would you prefer it be a separate page linked from managing plugins as in option one, or would you, would you be okay going with option three? Strong opinion. From a user perspective, even everybody wants to move to cloud native computing, use Docker, right? I would prefer to have plugin install manager as a separate section and as Meg suggested, we can put a reference link in managing plugins, that third option. That's what I would prefer. Good. Okay. Meg, any objections for you from you, if we were to say, hey, let's go with option one. Not at all. Okay. That sounds good to me. Plugin installation manager doesn't, it does much more than just install plugins, right? It's got the ability to install them. It's got the ability to report on them. It's got the ability, we actually use it in the Jenkins infrastructure to maintain the list of the current exact version numbers that are available now. So when we get a new plugin upgrade, we use plugin installation manager to generate the new list that says, oh, this plugin upgraded from version N minus one to N. So, so separate page is great. So then let's go ahead with option one. Change the title to plugin installation, install manager tool. Is that okay, Mark? So could you ask that one again? It was change, change what? Change the title of the section or page to plugin install manager tool. Yeah, I think that's close. I would propose it. You call it plugin installation manager tool because if I remember correctly, that's what it, that's what it's called on its, you're right. Let me see just to be sure. So I think, and I know that's an awful lot of words, but that, that title. So my preference is for plugin installation manager or plugin installation manager tool. Or should we call it Jenkins plugin install manager, installation manager. And I've generally seen people leave the word Jenkins off because the, the reader is already inside the inside Jenkins when they're reading it. So for instance, managing security here is it is truly managing Jenkins security, but the word Jenkins is quite commonly left out. Okay. So, so I like that. So the idea is after managing plugins and before Jenkins CLI, you'll insert a new, a new section, which is plugin installation manager or plugin installation manager tool. Now that nice long title is going to be very fun here at the end. So what you'll see is something like this where it, it's, it spreads a multi-line and there's no avoiding it. It's just long words. All right. So then, then we could also take a moment and look at, at some of the text if that helps or it may be. So one of the, one of the things that I found that I had to rework when I was operating inside documentation with examples like this is when there's a long command line. I often have to find a way to break the command line into multiple pieces because if I don't, when I put it in as a sample, as an example in the, in the code or in the file, it will, this one, for instance, if this line gets too long, it will force the page to render widely and have a horizontal scroll bar on it that makes it very difficult for the user to read. So I think we, we should be, be alert to the fact that sometimes these long command lines may need to find a way to break them at about the 80 or 90 characters in dumb question. Can you take one of those and use the backslash on it? Like you can just for other. You can. Yes, absolutely. You can, you can, and in fact, we do that all the time. There are many places where a multi-line. Command is just short snippet of text. Backslash. Next short snippet on the next line of backslash. Okay. Yeah. When I, I don't know how I haven't done this in ASCII doc. So if I do a backslash and hit a return, right? End of line. Will it cause, will it cause too much spacing like a paragraph spacing between the two lines? It does not. ASCII docs pretty, pretty simple. So if you want to see an example of how it looks, we can look at the source code to, to the Docker installation guide. So if we go to get, oh, no, let's go to Jenkins. So documentation installing Jenkins. If we look under Docker. And here on Mac OS and Linux, we see exactly. And in this case, it's, it even allows us to attach explanatory bullet bubbles. To each item so that we can explain, Hey, this thing means this and this thing means this. And then they read down here and, and that's actually pretty easy to do the, that layout in ASCII doc. If we now jump to the bottom of this page and click improve this page, it will take us to the page. Let's see if I can, oh, no, sorry. This one misleads us. It takes us to this page that then doesn't include. And I've got to go find the include file now. So just a minute. It'll be in a source block. Right. Yeah. So doc book installing. Yes. So we go here. Installation requirements. So here we go. Oops. Nope. Continuing. So run Jenkins in Docker. Here we are. Docker to Tori Docker. Okay. There we go. Finally, I get there. So this is, this is the literal text. Mark, can we easily get to the source for this? Yeah. In fact, this is the source. Oh, I don't see a source. You want to see it raw. You want to see it raw. I wanted to see the source block. I don't know. Yeah, right. So let's show it raw. Here we go. Here it is in raw text. Yeah. There we go. So source bash for dashes. And then the text that you want to place in there. Okay. And then if you want to comment that you see that underneath. Yeah. You know, that's. Yeah. Go ahead. Yes. So I was just adding to the point that the contributing guide on the Jenkins. I will get a page. This is really great way to get started with how to write your own blogs and documentation. So that would be a great thing to look as well. Good point. Here, if we look at the, if we look at the. That's a good. Yeah, I've seen it. Good. Okay. Yeah. This one. Okay. Okay. Okay. Okay. So here you're contributing talks about. See, so Jenkins user documentation and yeah, here we go. Anything else to discuss on plugin installation manager, the draft. Oh, Sudhakar, are you comfortable? Let's see what kind of a development box. Do you have windows, Linux, Mac OS, BSD. Okay. Okay. Okay. So I haven't talked to anybody who developed on Solaris. So that'll be interesting. It should be Linux like. I have. I'm using. Yes. Oh, great. Okay. Yeah, that's, that's where I do all my development work. So that, that should work just fine. Good luck then. If you encounter a problem, ask a question in, in the getter chat or on the mailing list will happily help. Okay. Sure. Super. Sorry, you said you want to. I have built a documentation source. And I need to. Just get it ready so that I can share the screen next week. Great. Excellent. Thank you. Thanks very, very much. We got, we received another question. Related to this from the, there's work going on in the Docker images that would benefit from your, your documentation on, it was mentioned on one of the, one of the, one of the other requests to the Docker image about using plugin installation manager as a complete replacement for an old shell script we had. So thank you again for doing this documentation is very much appreciated. Yeah. And are there any solutions on the way I have placed the text. And those I will send to you. So, so those, the, there, there are some places where I think, oh, okay, we might want to say it this way or that way. But it's, it's probably easier if I just send those to you separately as you're getting ready to submit them through the ASCII doc. And now you. Okay. I'll expand those, those references on proxy support and a couple of other places that you showed. They have referred to the other web page of the tool that has been put out by the developers. Excellent. Now, wonder, is there a way, because much of, much of what you're creating here is part of the plugin installation manager's material, own material, right? It's in its own read me. I wonder, could we find a way to make this thing be the source for the page on Jenkins.io. And then what you would do is submit pull request to this thing to improve it. Yeah, basically, see, the thing I noticed about this tool, this page is right. It is more focused to developers as opposed to users. There's a lot of developer detail in this page. Okay. So as a user, I wouldn't need it. But you can improve this page by separating user section and the developer section. That's one approach. Well, but I think you've got a good point that and that justifies we what you're creating for Jenkins.io is the user page. And we let this one continue to be the developer page. So that that makes great sense to me. And another thing, excuse me, you had something, Meg? No, I was agreeing. Okay. This is something last week, Meg referred to creating reference manual, right? Yes. So I looked at some of these pages, right? They are very in depth. So it'll take a lot of effort and you can pull them into a reference manual for somebody like a developer or plugin developer to look at, for example, on this page in the reference manual, like the regular reference manual you have for products, you can do that for Docker page, you can include that, but it takes a decent amount of technical ability and yeah. Yeah. And is it worth doing? I have had with this documentation is very useful because for a plugin developer, I, I don't know, I might not be very familiar with the documentation layout so much, but with whatever I have looked, I would have preferred a reference manual. Yeah. I might, you know, just a general for all documentation is that I want the guide when I'm getting started, the guide that sort of puts it all together. Once I know that, then I just need a, I don't need to trip over all that pros every time. I just need to go to the reference manual and see what's, you know, what options are there and what, what is needed. But that's my general approach to everything and I'm sure there are some things where that's not appropriate. So it sounds like Sudhakar will continue on the path of having you create it as a separate page underneath between managing plugins and Jenkins CLI and it'll be user focused with links to the reference material that's in the, in the page, that sounds great. Nice. Yeah. All right. So next topic was next blog post on managing secrets with Jcast. Yes. So we had a very brief discussion in the previous meeting that we can write a blog post on managing secrets because it's something that we can talk about. So I want to start with a question that what is the best way to do that? Exactly. Can you describe it to me really well? Like how do we right now managing secrets and yes. So what are we looking for? Yeah. So, so the, the secrets doc file gives us already a hint. So the Jenkins needs to perform operations that are limited permission or needs to perform privileged operations on other things. For instance, I may need to clone a Git repository that is intentionally protected so that it's not visible to the public or I may need to publish a, a change to a remote server through SSH or I may want to FTP a file into something or I may want to upload files to an AWS S3 bucket. All, all things that may require a credential. And, and so then the challenges. Now, how do I get those credentials as code into my Jenkins installation in a way that does not expose them as readily stolen information. So the challenge here is someone gets a copy of my repository. Right. So the challenge here is we've got something that's a sensitive piece of information, a secret. And how do we communicate that secret to sub processes of Jenkins to things that Jenkins invokes without having it be able to be stolen from a repository that is, you know, in a way that can be used as a application as code. So let me stop there. Do you have questions about that, that, that much. No, it totally makes sense to me. So just wanted to confirm if my thought process is right. That is, we have some secrets. We don't want to put them directly on the YAML file because this YAML file is supposed to be shared to different, different colleagues, let's say, we are looking for a wave where we can indirectly refer them on the YAML file so that it's not stolen. Right. Exactly. Yes. You've described it perfectly. Awesome. Understood. So next question here is that what, like, these are the three ways, right? Using credential provider plugins, then variables, and then encrypting the strings. So, so these are the three things that there should be in the blog, right? Like these are three things you can do with jcask. So is that what I want to write? Yes, I think so. Now, now for me, the, the credentials, the credentials plug in with its. Yeah, yeah, this is okay. Here we go. So each of them has, has their own subtleties and, and yes, this is, this is an ideal place for a blog to describe, hey, here are the experiences I had and you choose one or two of these and use them. Now, now this, this is at least for me is relatively complicated. Dealing with credentials is, is, I need extra work to make this work well for me. Do you have access to a Kubernetes cluster where you can do these or a mini queue where you could do, do experiments on your own? Not, not right now, actually. So mini cube is a Kubernetes implementation that will run on a Docker instance inside most Linux distribution. So if you're running Linux and I think it also runs on macOS and may even run on Windows. I'm confident it runs on Linux. I'm pretty sure macOS and possibly Windows. Yeah, it does run on Windows. So that, that should allow you to use the Kubernetes credentials provider. And then you store the credentials in your, your mini cube cluster and reference them as you're working through it in your, as you're developing the blog. Okay, so this thing I should try my hands on Kubernetes provide plugin provider and then write my experience with that on the blog. That's, that's what I would do. I think, I think people would enjoy that and it shows, it shows to them, hey, look, this is how you do it. And this is the, here are some of the things that I encountered here, some of the mistakes I made while I was learning so that they can, they can learn from your mistakes and say, Oh, whoops, I shouldn't do this. I should do that. Right. So, so the major, at least the most, most part of the blog is going to be focusing on how I used Kubernetes credentials provider to manage my secrets on the Jcast, right? Right. Yeah. Okay, so I'll specifically narrow it down to this one. And I think, I think that that is something you can do and something that should be useful to people. We may, we may want to check because I am not the Kubernetes expert. We may want to check with others in the, in the Gitter channels, bring that proposal that you just described. Hey, I think I'd like to do a blog post that highlights how to use the Kubernetes credential provider in Minicube to provide credentials to a Jenkins installation. And then we get the benefit of experts like Tim Jacome, Kristen Wettstone, others who've got lots of experience with Kubernetes saying, yes, that's a good choice. Or we might ask Cara De La Marque. She's actually given talks on various ways of managing credentials. Right. So am I supposed to write this message on platform SIG group? I would, let's, that's a good question. Let's see which one is probably the best choice. I would actually use configuration as code plugin. Right. Sure. That makes sense. Well, a platform SIG is also valid because Kubernetes certainly is a platform, but, but I think there are probably more people on the configuration as code plugin, Gitter chat channel. Yes, there are more people there. So my last small question is that can you just redirect me to the resources which I can use to study more about it or just this particular link is enough. Well, let's, so let's put this link in. All right. So see secrets.a doc and me, me, the danger of me guiding you is I'm, I'm not as as skilled in these things as I would like to be. So then let's see what they've got in useful links. That's an interesting one storing secrets in Jenkins. No, that's Java code. You don't need that. Okay. Good. So yeah, I, I think, I think now there is, there is, let's see, there is one, one set of examples on Jenkins documentation. If I remember right about securely implementing now secure. Hmm. It's about pipeline using pipeline security. Is it the single quote versus double quote thing. Exactly. Yeah. Which shows what is the term they use for that. Oh, I know it's interpolation. Yes, that's it. String interpolation. Yes, there we go. Okay, so, so this is one you probably want to read. In case you need to do in case you need to describe things for specifics for a Jenkins pipeline. So see string interpolation, because there are some subtleties there about when you use single quotes and when you use double quotes. Okay. Sure. And is that are you already aware of that derage and you am I just telling you things that you already knew. When you're telling me things that I didn't know before. That's new to me. Yes. Okay, great. And I'll do my homework first, then I'll give you the update in the next meeting on this. Excellent. Thank you very much. Super. Okay, so the car downloading plugins with the plugin installation manager. So if I, if you're okay, I'm just going to go grab the text from the getter chat and we can. I think that was in was it in configuration as code. It was in plugin install manager. Get a chat. I think. As part of the piece. He works on some distribution update service. So he might be an expert to add some knowledge. And we can share with this friend. Okay. Can you, I didn't get your question. I'm really sorry. Here it is. Okay. I see it. So here I'm going to copy paste it into the text. So here we've got. Here we go. All right. So here's what. In the getter chat for plugin installation manager tool. So the car had put the following question. And what had happened was. W get on something. Resulted in a page from. Okay. So trying to download the Kubernetes plugin 1.29.2. And instead. Got. I don't know what you were trying to do. And it was not found while trying to reach get.Jenkins.io. Right. So I did I describe it correctly, so the car that what you were trying to do is attempting to install. Kubernetes plugin. 1.29.2. Failed. I see when the URL points to the plugin HPI, it fails. OK, when I do, correct me if I'm wrong. The way this update thing that works, right? So plugin install manager does a get on update center dot Jenkins.io, right? That gets resolved into get dot Jenkins.io, OK? Once that happens, the next stage is the DNS points to a mirror site, OK? So the first time I did, the mirror site gave me a time out and it was in the chain or domain. And the second, the succeeding failures are error not found. That is page not found is the error message, OK? So when you view the complete URL pointing to the plugin file, it fails. But when I give the URL to post name slash plug-ins, it downloads the complete plug-in repository listing. So my question is, is this failure because of the network? So that is where our expert, Dheeraj, can land. So what's the correct URL format for a download? Is that what? No, no, no, no, no. This is a network issue. I want to get it confirmed, right? See, when you have the URL pointing to the plugin file, it comes back with error page not found, 404, OK? And if the URL is pointing to get dot Jenkins.io slash plug-ins, it returns the plug-in repository listing. OK. Would you be OK if we go through a series of steps to test this? Because I think we can use our web browser to walk through that kind of thing. Can you do that, please? In the chat, GitHub channel, I put the URLs. And if you can just execute on your web browser? Absolutely, yeah. So I wanted to start first with updates dot Jenkins.io, because I think that's where everything starts. So if we go there, it presents this page. And one of the things that I use this page for is to find the latest releases, so that up the latest releases link. And then here it was Kubernetes. And if I search forward, there it is. OK, so here's the Kubernetes HPI file. So if I just click that, it will download it. But if I copy the link and open up a new tab and do question mark mirror list, it will show me the mirrors. So let me I'm going to put this into the notes so that we've got it. So it requests, and the response is something like that, right? So there's an example. This then if I look at what when I try to open that URL. So copy this one. Oops, nope, that I just made the mistake. Copy the link address. If I paste it here and append on the end question mark mirror list, it will show me the mirrors for that page or for that plug-in by my geography. And now what this means is for you, I think what you'll see is that your mirror is likely. Oops, I went the wrong direction. I have to go this way. Your mirror is your closest geographic mirror is number nine to me. It's at the Tsinghua University in China. We haven't yet found somebody who's willing to donate bandwidth in India to allow us to host a mirror in India. Yeah, that is. See, this is not a bandwidth issue. It is a net. I want somebody to tell me whether it's a network issue. So if you use those get URLs that I sent you in the Gitter tab, and if it works for you, then I can be sure that it's a network issue. My gut feeling is this is a network issue. OK, so let's take the first URL you provided, which is get.jankins.io slash plug-ins, Kubernetes, 1.29.2. All right, so that's the topmost one. And I'm going to hit Enter, and it says not found. OK, whereas, oh, I see. Wait a sec. All right, copy that. OK, so now I'm curious, where did you get that URL? As part of the log of the Plugin Install Manager. Oh, it is. Update Center, then it gets translated to get, and then that get translated into the Mirror URL. Interesting. OK. So Mark, could you please do this? Type in the get URL with the plugin listing. Sorry, you say it again? Put it in the Gitter tab. Uh-huh. There is a link which has the plugin included. Could you please try that? Yes, so I think what you're saying is this link right here, get.jankins, is this the one? Plugin slash Kubernetes plugin? Yeah, sorry, Mike. I don't know how to make the address bar bigger. Is it hpi.hpi? This one does not have .hpi in it. But I think in this case, but I can certainly put the hpi if that will help. So if you want, we can do. OK, so let's paste in the hpi. And the hpi definitely doesn't. So this one, I think that's the hpi that you would put in your Gitter post. Yeah. OK, and this one gives me a 404 as well. So this is also 404 because I think that's the wrong URL. If we want that URL, we have to go here. And it's kubernetes.hpi without the dash plugin. So instead of what the URL you pasted has dash plugin here and dash plugin here. And those make it so it can't be resolved. So it's get.jankins.io slash plugins slash Kubernetes slash 1.29.2 slash Kubernetes.hpi. Right. And the reason the reason I went all the way back to updates is because that's the way I know to guarantee that I got the right thing because I can search for it, find it here, copy its link address, and then paste it here, and watch the resolution occur. Your own. And Sudhakar, you're muted. I will try it out and I love it. You able to hear me now? Yes, yes. So you said you'll try it out and see what. So it sounds like that you were using examples from the plugin installation managed tools documentation. I think this Kubernetes plugin command line parameter that I passed in, that could be my mistake. I'll go back and check. OK. So what they were using was some other plugin. So things I was going to play around with Kubernetes, I said, OK, let me do that. Very good. Yeah, so then that for me reminds, OK, if I start with the known link to the plugin, and then I can do the rest with that mirror list option, it tells me, OK, this is the final URL that it resolves to if I need that final URL for something. Check it out. Excellent. Thank you. Yeah, so updates. And then I wanted to put this in the notes just so we've got it. And what it redirects to if we take that, if we copy this. Is it OK to file an issue on this plugin installation manager because it downloads the plugins repository list, I think. And if Kubernetes is not in the plugins repository list downloaded from the update center, it should just quit, right? I would think so. Yeah, so you say it didn't. It didn't. It tried again. Is that what you think it was doing? Is it was trying repeatedly? It did repeatedly. But what I am saying is, first it downloads the plugin list from the update center. OK, so I don't know if it validates the plugin name. I have provided against that plugin repository list that it downloads. Oh, oh, I see. Yes, so you've just identified a possible optimization. Don't ask a question if you've got the list of all plugins on the update center. Don't ask the question if the thing you're looking for isn't there. Yeah, if I say install something that's not in the list, just exit. Yeah, and I don't know the details of what they have to do in order to resolve that. So it's a good question, right? You've got a valid point. And it's worth a discussion in the plugin installation manager issue list. Yeah, I think that's a good point. I didn't think of I provided a wrong name because I saw Kubernetes hyphen plugin somewhere or maybe I put it. I don't know how I came up with that name. Right. Well, and that's well done. Good work. OK. All right. So Sudhakar, are you comfortable with downloading plugins and the things that we've been through or other questions? All right. Work helps. OK. Excellent. We've hit our time. I've got one item just to forewarn that I've been approved to donate a kidney to my nephew. And so June 7th, I will have surgery. And I'll be gone for recovery for as much as eight weeks. I'll be sending out invitations to people asking if people would like to volunteer to help take on some of the things that I'm doing. Look for the email message. It'll come out to the docs list. Would love to have your help in any one of the areas that are identified there if you're interested. So I'll be available till June 7th. But then June 7th, I have surgery. And I'll be gone then at least. Well, it's expected two weeks. And the doctors say it could take six or eight. I'm almost 60 years old. And therefore, I don't heal as quickly as I used to. I'm pretty recovery to you and your nephew. Congratulations for doing a good thing. And I will try my best to help as well. So please take care of yourself. Yeah, thank you. Wonderful thing you do. Thanks very much. All right, well, so then, if nothing else, I'm gonna go ahead and close the session and I'll post the recording. It will probably be tomorrow before I get to posting the recording. Great. Right, and you forgot to post the previous docs meeting as well. Oh, thank you. Yes.