 Yay Hi, all right, let's see. So I don't see Chris and We've got on the agenda Let's see coupon. We can skip that and see if he comes later I wanted to have a quick discussion on documentation and Let's see Dave had on void network service extension requirements Anyone have anything else that they wanted to add? Okay All right Let's see. So I guess we can Stuff really this will be pretty short. So You know, we've been trying to do obviously various things to make the the documentation better and the problem Of course that the documentation serves a bunch of very different audiences. There's people You know that are relatively comfortable with the concepts and and can use it more as a reference guide There's people that come to it and you know, don't don't know where to get started so We have funding You know, there's CNCF to pay documentation writers to go through and and basically do Whatever we want them to do, but it's become pretty clear to me that It's hard to a find someone that you can just go off and and go do that. So they need a bunch of guidance and be You know, it needs to be a little more explicit in terms of what we actually want them to do So I've been, you know thinking about how to kind of step back and maybe come up with some more like concrete project guidance on on what we want from the the documentation And I realized that most people on this call probably probably don't care because you're here because you probably understand what's going on So it's not as relevant to you But I just wanted to throw it out there and see if anyone had any strong Opinions or thoughts on documentation stuff or you know, if you're interested in actually helping out just from up Like a project management perspective that that would be super useful Hey Nicholas so one thing that I've noticed from being in the snack channel is one of one of the big areas is there aren't a lot of Example use cases for envoy and either in the repo or published on the docs that are that have enough of The the feature set that people could actually reference those instead of asking in slack so that might be one area in which documentation could be improved Do you do you feel that so we have the the complete examples? There's like the front proxy the service to service and the double proxy the problem is that those are those are v1 configs There's someone that's theoretically working on getting those over to to v2 I I guess do you feel that and this is kind of my feeling too is like if we paid someone Just to basically go through and like get those Documentations converted to yaml and then maybe even comment the documentation or sorry comment the configs Like do you think that would help as kind of like having a more complete? Example set or do you feel that we need like a mock management server and like the full like the full end-to-end thing? So this Dave Wallace so as as someone who's just recently, you know gotten up to speed on envoy and gone through the the the collateral I kind of want to say both but I would start by converting You know, I think the conversion to the the examples to v2 is probably, you know, low-hanging fruit It's a good place to get started the other thing that I found is that Like last week I spent a lot of time just going through the blog and reading all the blog posts And that really did the most outside of the code to fill in, you know Architecturally what it is you're doing and you know how things work and how things should be set up. So I'm wondering if it would be Yeah, I mean, I know you have some references to the to the blog posts on the front page But I'm just trying to think if there's any better way to organize that as a kind of Follow this or follow this red. Yeah, it's just like this is this is a super tough thing and I'm just gonna be totally honest because like at certain times with the documentation stuff, I feel kind of lost because I feel like you know, I Would like to find someone to pay to basically work on this but every time we try to do that I feel like I have to basically manage that person almost full-time at which point I can write the documentation myself so much more efficiently that I just go off and do that for two weeks So like part of this is even just me like desperately asking, you know, and you don't do this now But like if any of you offline I Think we're just looking for people that whether it be as a hobby or they want to make some money or they They just want to learn they're like technical enough that they can understand all of the concepts But they're also a good writer and the problem is that like that is such a small intersection of people that like trying to find that person Is like so complicated. So, you know, I I totally agree It's like we need more examples like we need better cross-linking We need honestly someone just to go through the existing documentation and look for inconsistencies and like do more cross-linking and and various things and Maybe that's a place to start from a contractor perspective. You know, it's just finding someone who can Do those things without like a ton of guidance. I again, I just I feel lost finding that person So I hear you it's it's it's well And you know the problem is the software developments are river and so The biggest problem, you know, we have the same thing with with Fido and VPP is you know So much of our documentation is now two years old and we're two and a half years into the open sourcing of it And, you know, we constantly getting references to oh, yeah, well, you know, sorry, but that's Referencing really old dead code. Yeah, some of our documentation. So it is a perennial problem Yeah, I have an idea about the whole example part So like Nicholas was saying we have seen a lot of questions come up and the slack channel This is more for beginners where it's like, you know, how do I set up mutual to LS? How do I set up circuit breakers? How do I set up all this stuff and My idea there would be if we get a contractor For them to comb through slack that the envoy users channel and get all of this scenario So if like people have been asking, how do I set up ABC and then write up guides? Like like we friend for the examples with a with a front proxy on the service service proxy The other idea I have there and you know, you're asking about how do we find someone that is a technical enough and a good writer? And I mean, I'm not sure about how this would work But with Brooke and the learn and boy. Oh, she I mean, she's written a lot of very good Documentation there and I don't know how turbine, you know, but but maybe that's that's an ox. Yeah We've we've been we've been through that offline. So that's that's not something that I think would be good to discuss here. So But but yes, like we can we can look into that The other idea that I had but this would again require work is we actually have a mountain of config snippets that are in in the tests and one one thing that did occur to me is and this would be more of a development tasks Like a development doc task would be to actually find some way where again, I don't know how this would work, but like for for the config snippets that we have that we run in unit tests be able to actually Have them be part of the docs and then import them for testing or export them from the test like into the docs And it's like not every snippet, but almost every feature has like fairly complete yamal yamal Configurations that are buried in there somewhere But like no end users is like going to go find them But the other reason that I like that stuff is that avoids bit rot because if you were basically Like if you are running the tests on the stuff that's in the documentation or exporting them or vice versa Like the configs cannot become stale. So that's that's another area that I thought of maybe trying to pursue Just because again like across almost every feature We have lots of example configs that I feel like would be more helpful if they were linked into a particular section So that's something else that kind of occurred to me. I can I can get that going or at least think about that but Yeah, so yeah, I mean we can talk to the turbine people more but again There's there's some corporate interest there. So that you know, a lot of that's not going to get contributed back So there's things that are that are at odds so Anyway, I mean unless other people have like happy to keep the discussion going If there's other ideas that that people had but I mostly just wanted to put put it out there that we're You know that we're looking for that we're looking for You know people people to help out basically Well, I like the idea of taking it the configs out of the test and exporting them because I agree that solves a bit rock problem, but Don't have an immediate solution or how to make that happen. So Is it is it feasible to Have you matter someone? Do an outline of what the docs should cover? Yeah, and then Just let people contribute like smaller Yeah, that's a great Right. No, I think you're exactly right Yeah, and I I think that We're gonna have to put more effort in so I think you're right that like doing like an outline or even targeting specific cases that we know are rough I Feel like there's two major points. There's that there's the general introduction of concepts So that's you know, something where it might be difficult to actually Get someone else is not super familiar with the project to actually get in there But then I just feel like a lot of people just need config snippets And it's like, you know, how do we get those done in a way where they're accurate and don't bit rot Right and like cover a decent amount of stuff And that's why I keep coming back to this idea of like we have all these snippets that people have written to write unit tests And even though they're dummy snippets Like most programmers could look at those snippets and then follow the docs I think without without any issues particularly if they were commented So, you know, one one thing would be to like look into having a programmer Pay someone to build a little framework where again either import export one one way the other Like tag the ability to have these snippets come in and out of the code in the docs And then print them in such a way that they're useful. So but yeah I think that I or someone else is probably gonna have to sit down and carve out Several days of time to do like an outline of what we need Yeah, all right. So we'll we'll keep thinking on this But again, since this is videotaped if any of you who eventually watch this what I want to help out that that would be super appreciated Chris are you here now? He did join he's joined but he's on the phone. So I don't know. Okay. Well Dave, do you want to talk about the network service stuff? Sure So, you know iterating through Well, so there's there's a couple couple of high-level issues one is I'd like to make sure that we've got all the requirements captured before I try to do too much moving forward and so in particular The ebpf, I haven't seen any input from the psyllium guys And so I don't know who would be working on that. I Can I can link you up offline over email? Yeah, so that would be either Thomas or Yarno or yeah We can we can we can chat with them offline. Yeah, I didn't I mean I know a lot of people are at KubeCon last week, so I didn't wasn't going to try to push that Yeah, the the main thing that I've distilled from from what we've got now is The the use of the POSIX socket calls are kind of ad hoc right now some of them, you know are done Directly by just referencing, you know syssocket.h and making calls and linking stuff in there There's a couple other places where there's some Socket options stuff that's not complete. There's some there's the OS sys singleton Hat contains like bind and get and set socket And so as I was looking at, you know, how to address this it really seems like the most Pragmatic way to move forward would be to try to consolidate all that into You know really kind of a network service or network socket singleton that we could then you know Replace all of the ad hoc calls to through syssocket through that singleton and then we can look at, you know For for VCL VPP we've modeled our API after the socket interface, so that's kind of trivial for us to do Yeah, I don't I don't think we want an actual singleton I mean, I think we need a factory that like sits out a Rapper and I mean to be perfectly honest like it's not It's not going to be glorious, but I also don't think it's super difficult like I think you just got to get in there and and just like keep changing code until you make it happen and I and like the way that I would approach it is And I think this can be done at relatively low low risk is like don't in phase one. Don't worry about VPP It's just like I would just delete any of the core calls that like ask for the FD Just like delete that function and then basically just see what breaks and just keep fixing things like until you abstract away Like until you abstract away such that the FD is only held by essentially one class So do you want to? So the question the reason why I I know and maybe I'm just using my terminology wrong the reason I use singleton because From a it really seems like you want a global wrapper class I I agree with that on this and we don't because when we're using quick We're going to want sockets for TCP and then the quick kind of logical soccer operations Essentially, if you have a TCP listener and a quick listener, you can't have one singleton handling them both particularly well Right underline connection to have either a quick FD wrapper or a TCP FD wrapper or whatever we call it You cannot they cannot coexist. Yeah, right. I agree. It's just well The alternative is try to embed the I mean, we've got kind of like transport socket Which is almost at a different layer and then we've got the socket class that's used in in the address instance And so those have some sarcastic socket characteristics in it But they don't provide a clean place to put in a factory We'd end up generating multiple factories for each of the derivatives And that's kind of where I got lost when I first tried to tackle this So I was trying to pop the whole thing down a layer Such that we just had You know a network service factory that would create whatever Whatever we need You know based on You know what services Yeah, it's not I you know, I'll be totally honest It's not completely obvious to me without getting there getting in there and actually doing the work I What what I would do I think just to move forward and get the conversation going is like I would start a branch And I would just delete the the FD function And then and then just like start working backwards and like seeing how it flows And then if you get stuck just like push a branch and then we can basically talk about it Like I don't I don't I guess I don't see any way forward other than just doing that lifting and you know It'll be scary in the sense that you're gonna have to change a bunch of stuff But I actually don't think it's a very scary change like it's mostly Factoring in code movement. So like it's not it's not that big deal Yeah, and I think at the end of the day, you'll end up with what I think Matt and I had discussed on the dock Which is I'll probably have some sort of sock out of extraction Underlying, you know, both the transport socket on the connection and each connection will have their own wrapper class And then there may be a separate one for the listener or it may just be one one big joint one But again, I think once you get into the code and try to divide it up, it'll it'll be a little more obvious Yeah, I've sort of done that and gotten stuck. So why don't I just go do it again, and I'll publish when I get stuck Um, I'm fine with that and I have no problem going in and I'm not shy. I'll go in and break anything I just want to try to not, you know, stomp on people's toes and you know Most of what I did last week was try to understand the bigger con constructs of Where things bleed through because these layers are never clean, right? Yeah, I I think probably just trying to do it and then publishing a branch and Telling us how you're stuck and then I think we can we can find a path forward because it Conceptually this should work and like I understand that there might be some oddities around the fact that like the address class Uses a socket and like calls bind or something and we might have to pass things around like it's not totally clear But I feel like I would just start by deleting that function get as far as you can and then when you feel like you have a question Just push it to push a temporary PR and just like tag us and then we can just have a discussion and look at the code And and then go from there Yeah, I mean my analysis from what I've done to date is that The problem is that FD as a as an integer value is passed around as a proxy for a socket object and So the the question is is do we try to replace that with a socket object that we're passing references around is Exactly. All right. Okay. Yeah. All right. Let me go. I got it Right and it's not again like it's not super clear as to whether there's one of them or like it's a share pointer I just don't know right so it's like part of it is the socket API itself is is, you know So historical in nature that it's a mess to begin with so You know, it's where like I ran into a case where on the client side, you know bind was being called Well, I don't have to bind to the client side. I mean, I'll Push a PR to clean that up. Anyway, it's because you don't need to do it doesn't hurt anything, but You know, there's just it's not clean anyway So it it It's highly understandable how things end up the way they are So I'll just go work on cleaning stuff up then that's that's good. That's yeah I would just get in there and just and just do it and then when you get stuck just tag us and we'll and we'll help Help you all right. All right. Sounds like a plan Great Are you there now chris Can you hear me now Hello Hi I can I think we can barely hear you That's sorry. I'm gonna cap. Um, yeah, I was just looking for feedback on kubcon last week. Um, if you have anything, let me know Did you want it now or do you want people to email you? Uh, both. Okay. Um, anyone out there have any kubcon feedback? Uh, I have I have general positive positive feelings good good conference good conversations a lot of community engagement I particularly like to meet the maintainer section because people had the opportunity to come and ask questions That they might have not had the opportunity to ask, you know, face to face which always helps So that's that's my feedback I had um Yeah, I had I had a couple of pieces of of feedback. I I think that um For the project deep dive sessions, it would be nice to have longer sessions 35 minutes was just too too short. Um, I just felt like it was very rushed like trying trying to have conversations So like I totally understand why the main track talks are 30 35 minutes But I feel like we should have a way of either doing double double blocks for project sessions or or Something like that just so it's not not so rushed Um, and then I also felt like at least from the project Session perspective it would be nice to be able to do Like more variety of things. So for example, it was really fun to do lightning talks But I also wanted to do like a whole q&a session So I feel like making it But you know so that we can do kind of multiple sessions during the conference for people that serve kind of different purposes That that that would be cool um And the third thing that I thought would be cool is that the the conference is so huge now That I think it can be hard particularly at the social events to kind of Just like bump into people who are interested in like talking about envoy or like talking about a a particular thing So I also feel like even from a night thing from like a mixer perspective almost Either having like projects mixers or like even areas of the event know to actually talk about particularly Those are my those are my three three things Cool Anyone else have anything? All right Have a good week everyone Thanks. Have a great week