 Thank you everyone for joining us. Sorry for the quick turnaround on changing up links, but thank you for being here and for your patients. I want to thank you for coming today and we are hosting today's CNCF live webinar. I'm Libby Schultz and I'll be moderating the webinar today. I'm going to read our code of conduct and then hand it over to Michael Cade, senior technologist and member of technical staff. And Serish, but then a member of the technical staff at cast in by being a few housekeeping items before we get started during the webinar. You're not able to speak, but there is a Q and a chat box on the right hand side of your screen. Feel free to drop your questions there and we'll get to as many as we can. This is an official webinar of the CNCF and as such is subject to the CNCF code of conduct. Please do not add anything to the chat or questions that would be in violation of that code of conduct and please be respectful of all fellow participants and presenters. The recording and slides will be posted later today to the CNCF online programs page at community.cncf.io under online programs. It will be available via the registration links which we will put on both links so that everyone is covered for the event, and they will be on our YouTube page, the CNCF YouTube playlist online programs. With that, I will hand it over to Michael and Serish. Awesome. Thank you, Libby. Yeah, so, as I said, so we wanted to come back and we wanted to talk about cube stuff. The open source project that initially was focused on identifying, validating and evaluating your Kubernetes storage. And there's been some updates. So we wanted to come back and tell you about some of those but first kind of want to get into a bit of a recap around them. Before we get to show off some of those those new features and then then also share where where you can find out more how you can contribute and all of that good stuff. The role of the talk is how does this, how does cubes to help you when it comes to benchmarking and validating your storage or how does it hit the easy button I think is what we initially said when it comes to your Kubernetes storage but also think about this as a handy set of tools to have in your back pocket when it comes to having to look into Kubernetes storage. Now, if you're in various different Kubernetes stores environments on a daily basis this could become quite a handy little tool. We do everything that we've done manually, but who wants to be doing it in a manual laborious way, when this enables us to automate a lot of the process and we'll get to some of the processes. As we get through. I'm really the key new feature that that has been added to two cubes is the ability to to open up or fire up a file browser to inspect the contents or visualize the contents of your pbcs. We've got Sarish here who can who can touch in a little bit more detail about what went into developing that and making that that happened. But if we if we go through a bit of a recap first of Cubestar, and then we can get into the new stuff. In fact, Sarish why don't you, you give a little bit of a history and the motivation behind it, given that you were the creator of of Cubestar. Of course, Michael. Yeah, so initially, you know, a cast and working a cast and you know we face a lot of customer issues where a lot of the times it wasn't the castings product problem is just that the customer had miss. Badly set up storage right and that means maybe they're missing a CSI driver or the right snapshot class or whatever it may be right so we noticed a lot of these issues and you know a lot of our cycles ended up going into figuring out why the storage was misconfigured right So, you know, I started building a tool just to just to kind of suss out any of the potential mistakes they may have made when setting up their storage and then after I had this tool I realized that you know it was powerful enough that anybody that's dealing with Kubernetes storage may find some benefit out of using this tool right. So again, what are the kind of issues that we normally saw in the field, which storage set up correctly. Is it ready to take for data protection as in can you take snapshots. Do you have that set up correctly as well. And then also, what we realize is that a lot of our customers are over provisioning their, their volumes they were giving themselves too big of a volume than what they actually needed. So, you know, one of the things that we decided that we should check is based on their application, right, what size of volumes do they actually need, right what type of volumes they actually need do they need super fast SSD, are they okay with standard SSD. That kind of that kind of stuff. Yeah, once you once we built this tool we realized that hey we can now benchmark our storage and this is great if you have a lot of options and you're trying to like figure out what your applications do and how do you benchmark that against storage they have available. So yeah, I built this tool to initially just like I said, figure out customer issues and now we decided that could benefit from it as well. And I'd add on that so since the launch of the project back in, I want to say April of this year. The conversations I've had around it is definitely, especially on larger clusters where you've got especially managed Kubernetes clusters where there's a lot of different options when it comes to Kubernetes storage, especially in the public cloud. Good for exactly what Saris just said about making sure that you've, if you if I found it a very easy tool to quickly identify the storage that I have available, but also whether that underpinning infrastructure has been deployed to what I need that application to run on. Different different nodes different discs different. There's so many characteristics that play a part into what the storage performance comes out of, especially in the public clouds, having this little handy tool there as a as a as a binary downloaded on any operating system it enables you to quickly identify what is available and whether at that first part of deployment, whether you've deployed the right storage or the right infrastructure for your Kubernetes cluster. And to Michael's point like storage performance changes with a wide number of factors right the number of apps running in the cluster, the size of the volumes themselves. And then you never know when something goes wrong in your cluster and you want to measure. Hey, it's my storage behaving the way it was from day one till now right and those kind of degradation of your storage can easily be like figured out with the tool that can measure your storage right. Yeah, that's, that's a really good point. You did a really good blog at the beginning of the launch around different different public clouds, different configurations that gave out very different performance results as well which is a really useful blog that's on Cubester.io. But yeah, I think just to go into those three areas that are there that were existing pre pre the new browse functionality and some other some other areas is one it was that identify and that was the. Okay, what what's the very quick and easy just run the cubes to binary and understand the various different storage options that you have present in the cluster. And it is super simple. Like if I've got I've got the latest release here and you can literally and I'm on an ex cluster, but it's the same regardless of whatever context you're in it will run against that. You can see that it does some checks. You can see that it warns you if you're using a provider that's potentially going out of out of support. But then here you can see that I've got the EBS CSI driver installed it knows that list that it tells me what storage classes I have the volume snapshot classes I also have within there. And if I want to then start running the additional tests against that but this initial identification is simply just run that cubes to command and like get this output. It also knows that I've got an entry provisioner, which is by default there within an EKS cluster, which is just the GP to and obviously there's no CSI volume snapshot class in there because it's not available but we can still run the performance against it as well. Yeah. And, yeah, I mean traditionally what would somebody what would a normal Kubernetes user do right there would do cube cuddle get storage class and then they'd see what storage classes they have, then have to do a get volume snapshot class and then they have to like you know, if they had multiple provisioners that have to look at the details to figure out which one belongs to which and stuff like that so this kind of consolidates everything and puts all the knowledge out there. And this and so the next point also just goes a little bit further on to that, especially around the CSI is that this this validate enables us because it's quite easy. And this will depend on the role in which you're playing out there in the in the Kubernetes world if you're implementing implementing Kubernetes clusters on a daily basis sometimes several or your at least the operation side you're potentially seeing multiple different Kubernetes clusters and we know that that the CSI implementation, if not there out of the box for a managed service provider, then there's some manual steps that you potentially have to go into one being you have to create the volume snapshot class, or if you don't obviously you don't have that functionality that capability within that. So, this tool will give you that quick feedback as to say, Well, yeah, you've you've you've got that and it's configured correctly. And this goes back to one of the pain points that Sirish mentioned around something that we discovered or we were seeing from a lot of customer bases. Maybe not like CSI had been implemented but the volume snapshot class had not been implemented to take advantage of that so we couldn't have couldn't create volume snapshots against that storage class. Maybe when you're coming into data management and you want to start leveraging that it obviously falls down and doesn't work so being able to validate that's an important task to to be able to achieve that. And then the evaluation aspect is. Okay, so that goes back to how we were talking about the performance of that storage. So the makeup of that whether it's the node type and the disk type that you're being that's being used on the particular cluster or the nodes within the cluster, they determine what IOPS you're going to get on the actual cluster itself. So what the evaluation part aspect of the tool does is it gives us access to an FIO pod that runs against that storage class that we determine and then it will give you back the information around what that what that storage is capable of. And out of the box it has its own default FIO config, but you can bring your own so if you know the application does something specific like read backwards or something that the characteristics of your application you can bring that FIO FIO is not a new thing at all it's been used for benchmarking for for years and years for as long as we've had spinning discs and and this gives us the the the ability to test against your characteristics of your application. So just to like to summarize what what's actually happening and what what's what is the project actually streamlining. Now again I mentioned at the very beginning you could absolutely go and do this yourself. Go and create your own pod create your your PVC validate that the PVC is created you take a snapshot of that, and then restore that into a clone. And you validated that your volume snapshot class is actually configured correctly and working and that your storage is capable of storage snapshots, or is configured correctly for for snapshots within Kubernetes but so what cubes to does if you define it within your within the within the within the tool is it's going to deploy that lightweight pod. It's going to deploy. It's going to take the PVC and the persistent volume is then going to snapshot that and then clone it back to itself and maybe we can get into the demo later on this as well if we've got time but we run through this like extensively when we when we first, when this first came came out, but really that's an automated approach it really is as simple as as running if I just go back into here. If I just wanted to run CSI check, and then I guess if I run this against and I think that won't work, that won't work. Maybe just run Cubester by itself and see what options. Yeah, I was just, I was trying to cheat and maybe I'd run it against the class but clearly I haven't. But what it does is, it's going to go and create that that pod. It's got so I could run Cubester CSI check minus the I think it is or the storage EBS this is definitely a live demo minus CSI AWS. Yes, see, this will use the default as well so this will be 100 gig PVC but it's going to go and create that if I go into actually Michael I think this is only a 10 gig PVC, something smaller, the FIO check does it on 100 big. Ah, yes CSI checks. It is smaller. If I do now in the default namespace we should see this containers being created. If I do a QCTL get PVC as well should see that we've created our own PVC there to confirm one gig. So, and then we're going to take the snapshot against that and then we're going to release that and clear up after us, but I'll come back and show you what that report looks like after. Similar to what we do from an evaluation point of view so when we're using FIO. Again, it's going to deploy that pod and that lightweight OS which includes FIO within within that same pod. It's going to take a persistent volume create a persistent volume claim and a PV and it's going to run a scan against that and I think this is where that 100 gig is by default but you can change that and it's going to give you that that those FIO results out of the back of that. Yep. Yeah, it's all configurable. Like, like he said, you know, there's many options that you can use to change how it performs. We also allow you to pass in a customized FIO file. So if you really know the requirements of your application in terms of performance, you can simulate your application's load workload with the customer FIO file and then once you pass that into that FIO command, you can more accurately test what your application needs, right? Yeah, so you can see here that this was the original pod that we created. You can see that it took a clone. If I did a volume snapshot, we'd get that as well, but you can see here that we've run our initial cubes to CSI check. We created that pod. We created the pod and the PVC. We took a snapshot of this. We can see the name of the snapshot and then we restored that to a cloned pod and a clone PVC and then we went away and we cleaned up everything and then we got the report back saying successfully and then we got the snapshot and restored. So we know that the CSI driver that we're leveraging here is functional and we're validated that things are configured correctly. Okay. I'm back into here. When we look at the new functionality, the idea, in fact, Sari, tell us how you came about and what the reason was to add in the browse functionality into Cubester. Sure. Again, it really came down to like customers, customer requests saying, hey, I want to quickly get an insight into what my volumes have, especially when they're trying to kind of track what has changed between snapshots because our customers take snapshots frequently and if they want to roll back, they sometimes want to see the contents of a snapshot. So we kind of came up with this tool of how do we see what's inside of a PVC and what are different ways to visualize this, right? And so the top process there was that, well, we could take a snapshot and then for fun we thought maybe we could put a browser in a pod and then deploy it against that PV. And that would be an interesting way to visualize it. So then, you know, we thought Cubester was a good place for that to land because, like I said, it's a toolbox and this could be just another tool in the toolbox. And once you kind of had that there, you know, the thoughts process started spinning of what could we put in this pod besides just a file browser, right? And we'll maybe touch a bit on that later in terms of where we can take this. Yeah, for sure. But if we dive back into the demo, and here's one I did definitely use earlier. So I do know that this one works. But before we do that, so basically here, I'm going to run Cubester, the browse functionality against a PVC that I have called Mongo Storage, so MongoDB. On a, for the volume snapshot class CSI AWS VSC in the namespace Pacman. Michael, do you want to quickly list the pod and the PVC just so people have an idea of what, what the application itself looks like. Yeah. Yeah, yeah. Good idea. So if I, we take a look at this, and then if we look at PVC dot Pacman. It's called demo application. And so you can see here that that that's what we've got currently if I set up a get our namespace Pacman watch, and then we kick this off. Then in a similar way, you're going to see one it's going to give you the output on this, this screen. And so obviously it's taken a snapshot to begin with. In fact, I probably should have done the, the look at the volume snapshot as well. But basically what we're going to do is we're going to, that, that snapshot is going to take place of the PVC. And we'll look back at that shortly because, and then you get to see this pod, which is this is the, this is the browser that we're going to be exposing and put forward into that we get access to it through our browser. So you see here that we're, we're doing that and in the background, what we're also going to be doing is creating a clone and I'll touch on that after because nothing goes away. You can see, okay, that's running. So we're now creating the file browser application within that pod. And then the next stage is forward in that port, it should open a browser. So this is now port forward into now I've got access to a clone copy of my PVC of my MongoDB basically with all my mission critical high scores in there. Now, this is probably a good point where Sareesh is where our brains went afterwards as well, where else could we go with that. And this is probably where we want help or need help from the community for how do we, how do we accomplish these, these, this vision. Yeah. And I mean, obviously, like a file browser to look at MongoDB files may not be the best use case, but you know, let's say you have an application that stores images or has like media file or something like that. This would be a much better representation or much better way to see the contents of those pvs. And of course, you can always like, you know, download those files through this browser. If that's something that you need to do, right. But, but yeah, like Michael was saying that this is just like one application that we're deploying on your data. Maybe you have, let's say in the case of a, if this is a MongoDB, if you have a better MongoDB visualizer or something that, you know, can let you better view the data. If that can be deployed containerized and deployed in a pod and then pointed towards this PVC, then that would be an interesting use case where customers could have their own, a variation of, I mean, a variety of pods that they may want to run against their own data, right, a variety of applications should I should say. Yeah, I think that opens up a huge door in that. Okay, so the browse part is the, the opening the door to that particular data. But if you think about cloning that data and making it accessible, especially a database, such as Mongo, I don't know whether I'm not a database expert by any stretch but if you could take something like, you know, a SQL workbench and I know that there are potentially web browser versions of that that we can implement into into pods. Same, I expect for for Mongo and various other Postgres, etc. And I think that becomes very interesting because at this point, we're on a clone of that data. We're on the production. So think about this is this is our production PVC, there's still serving data and we can still get to that and everything's still running for the, for the end user but what if we wanted to actually have a have insight into that data and start doing something with that as well. I think that becomes a very interesting roadmap idea as to where, where cubes to goes, like in the future. Not only databases but like Sarish said around media files being able to, yeah, it's great that we can, we can open that up here if that was a, if that was a group of images that were being stored in a flat file type storage, then we could definitely potentially leverage that somewhere else but that whole visibility and being able to go in and leverage that data is kind of an interesting, interesting topic that we could, we could definitely get into. Then, once we're so it gives you the port forward or all automatically happens. I found that you needed. Depending on the operating system that you're running X, I think it's xdg that this is WSL that I'm using on windows. So maybe that's a caveat that we just need to mention in there but, but other than that it was pretty easy to get up and run in download the binary start running. It does give you a nice error saying xdg not found. And I assume that's what the, the, this process is pulling. But once we're finished and we want to start getting rid of this, we clean up all the resources. And again, if we go and take a look at the pods, you'll see that we're terminating those pods, hopefully, and cleaning up what we've just done from that. So, so then, another, in fact, this was this was the one of the first community involvement out there first issue raised and I think it was a PR that came in series correct me if I'm wrong but the ask was around arm support. Obviously, out there and if we look at the bigger, bigger wider world around edge, but also around other architectures for for home labs, etc. Getting used to, again, back going back to that the learning, the learning curve of, of Kubernetes and storage being just another, a whole that you could go down and spend a lot of time in is being able to run Cubester across platforms is is hugely important because who knows where your Kubernetes cluster potentially could be, especially with the, but the ready for the edge deployments that are out there so in the latest release. It was, we released the ability to push that out to the arm as well. And not only that but obviously there's a lot of Mac OS and one laptops out there now, and that have that arm processes that's also included here. Have you got anything to add their series. It's No, like I said, the the suggestions came in saying that you support arm and, you know, we decided, yeah, why not right. And like, you know, we're, we're trying to be more and more receptive to feedback. So yeah, if you guys do have any Anything you want to see in the future. Please, you know, create an issue, comment. Yeah, get get the word out there and then we'll do our best to to support that in the future. I realized I didn't didn't circle windows arm 64 as well my bad for that. And then I saw this on a couple of issues as well there was a few CSI drivers that they were not added not the AWS one I'm just using this as an example but where where we where it reports back and says this is a CSI driver this is based on a list I assumed to reach. And then there was a couple that I saw that we that we just had to update that list. Is that you yeah so description, if you if you go through Kubernetes website and try to find the list of CSI drivers, there's a list that's maintained there by I can't really let me try to find a link for that but that's the list that has all the CSI drivers and that's the one that we source all our data from. So if you're up to date, any listed as CSI driver there in the then then we'll get all your information as well as when we do cubes here. Okay, so it's more of a yeah if you've got a CSI driver then make sure you're on that list and cubes to we'll just pick it up we didn't have to do anything to support it. It's more of just, you know, we have to do a sort of a go generate and it pulls all that information and then check in the file right so it's not it's not too big of a change but something that I could definitely do. If you don't see your driver listed here. Yeah, yeah, there was there was some vendors out there that that wanted it. Now I've kind of already ran through the demo side of things. In the chat, let us know if there's anything you'd like to see if you if this is the first time you'll see in Cubester, then you might want to see the FIO. I think there was some other enhancements around the FIO Jason output as well so reach I didn't put it into a slide but I don't know if there's something else or anything else from a recent release that you want to touch on I'll leave this up and then we'll talk talk about getting getting hands on and using it. No, I think you covered most of high level ones of course there's a lot of smaller little issues that we fix but yeah the high level ones you got most of them. In terms of FIO I think there's a question about the blog. Do you remember where the blog is Michael I think it was on CNCF website. I'm not mistaken. Yeah, let me I thought. Oh yeah we did put it on CNCF that might be that's our live stream benchmarking evaluated. Let me I don't know if I can pop that in there. Oh no that was another one. That was my one. Here we go to this one. Is there a chat that I can post this in. Yeah, there we go posted in the chat. Yeah, so I guess, guess where we wanted to go is is firstly how do you get hands on to it so I've put a couple of QR codes up here that that should still be working one is to cubester.io and that's that first site that actually went to where I thought the blog was. And that's where you're going to get instructions but also some resources in series you've spoken quite a bit about about cubester over the last six months. In all different forms so whether that's blogs webinars like this, or like general general sessions around the functionality and walking through what that looks like we did a live stream. As well with the CNCF where it was all demo so we we batted around a bit and went through the functionality around that, and in particular showed that bring your own Fi O type file as well which is super simple to. You've got access to those which FiO is an open source tool as well. And so all of the examples are also listed on GitHub so you can go and grab hold of those. But to get started with cubester to install the tool and go and grab the the binaries again you'll get to see it in the in the release and the assets of GitHub you'll see this long list of files. Another way, yeah, another way to install it is using another open source tool called Arcade, and we've just recently added quite a few open source tools that we're that we're looking after from a from a custom point of view. Cubester being one of those so being able to go to arcade arcade get Cubester and it will go and download based on your OS based on your architecture and it will go and download and install or put the cubes to binary in the right place within your system. The other area that I've been using it and I know I didn't show it but basically just downloading the binary and then putting it into your path as a cube CTL plugin as well basically just changing the binary so that it's always there it's always handy to have just in that that element on whatever whatever context you're on. And you can see yeah that the various different commands that we kind of went through but even even that within the within the binary when you run that there's quite good help functionality if if if we're missing something then please let us know on that that front as well. I think our closing thoughts if as depending on if there's any questions but happy to answer the question show anything that we need to on on Cubester but I think our biggest ask is take a look. Whether that's just using it just to see if it's useful. But also that feedback and the contributions is huge for us to. We really think this is useful. You could you already heard that we had some ideas we had some other ideas before as well about how do we visualize that fio output. And how do we how do we, yeah how do we visualize that. Then also spreading the word like if it was useful it'd be great for us to spread it around the community let's make everyone's life. A little bit easier especially when it comes to Kubernetes storage. We're all gonna have to we're all learning all different stuff and everything's got to be a level. And yeah, our biggest takeaway is it's a handy little tool for for benchmarking your your Kubernetes storage it's one of them things to have in your back pocket just to quickly spin up and and use. Is there any questions right now I can't see the chat. Yeah, there's no questions in the chat but just to reiterate what Michael was saying you know we really value contributions from the community. We had a couple going to this last release, you know we're very grateful for for that. Like I said, a handy little tool for benchmarking your storage, but more than that just a way to explore your storage options and then also now, you know, the browse feature let's you just observe and explore your pvcs as well and you know we'd like to know what else you guys want to see out of this tool. Where do you want to see it go, and what what do you think we should add to it. Yeah, I'm super excited to see how how we can progress and start visualizing database and other data services that would be also useful in that in that browse functionality. Yep. Yeah, I think with that, I think, unless anyone wants to see anything specific. Any questions anyone else. Yeah moose of makes a good point seeing that DB being spun up in the same pod, like basically acting as that as the visualization for the data would be super. Yeah, how I see that working is, you know, you run the browse function, and then you can pass in any image that you'd want to pass into that, that function right. And then if your images happens to be some sort of a database visualization visualization tool, and that's what you could do. Yeah, definitely something something to look at when we get some time. Yep. Very cool. Are there any other questions everyone. Right. Well thank you both so much for joining everyone for bearing with us. Like I said, we'll get this online ASAP this afternoon and hopefully in the next hour so that anyone that wasn't able to join can view it up here. We've got one. How can we get the certificate. Can you share the link. Um, when you say certificate. So do you mean in order to install the app. Um, I don't think we have science certificates yet. So that's something that's something that we have to work on. That's probably one of the more requested items. So that's probably top of the list and getting that done as well that we started a Slack channel that could be useful for the community to communicate with as well. So I'll just pop that link in there. But again, everything's open on GitHub. So issues is a good place to start. Okay. Perfect. Well, thank you both so much. Thank you everyone for joining us and hit up that Slack channel. If you have any questions for everybody post event. And we will see y'all next time. Thank you everybody so much and thank you Michael and Sharisha. Thanks. Thanks.