 Welcome, everyone, on the video stream. Before we start, I want to introduce myself. My name is Orlin, my US folks call me Orlix, maybe it's a bit easier for everyone. I have two kids. I'm CNCS ambassador, so I'm very involved in the whole ecosystem of CNCS stuff. For the last 20 years, I was CS admin DevOps, you name it, and for the last one year, I decided to take a turn and become a community manager. So also, I'm a DIY person, maybe that roots back to the open source stuff, and another thing, I'm part of the KubeCon program community, so if you're submitting something for KubeCon, most probably I'll be one of the folks who is going to review that. So with that, let's call it. My name is Scott Sego, I'm a Principal Software Engineer at Red Hat. I've been at Red Hat for 20 years now, and then I've been involved in the Valera community since 2019, and I've been a maintainer for the project since last year. I previously worked on other projects, OpenStack, Java-based projects, various things over the years, but I'm pretty much full-time on OpenShift, Kubernetes Valera-related projects at this point. So this is the agenda for today. What we're going to do is I'm going to talk a little bit about Valero and what's Valero, what kind of problems it solves, then Scott is going to do a demo, and then we're going to do a little bit of roadmap and release, then I'm going to talk about community, and then I hope we'll have some time for Q&A. So I forgot to mention I'm a huge fan of barbecue, so when our talk was accepted here, I was super enthusiastic and super, super excited, but also I have a very special thing to say. My little boy, this folk over there, is turning four right now, went back home in Vergara, so it's emotional, also I'm first-time speaker here, Scott as well, so please bear with us. Okay, so let's go. Okay, so Valero 101, Valero was initially called Arc, and it was released back in 2017 by the Heptu folks. Then you know the story, VMware acquired Heptu, and somewhere in like mid-2019, it was decided to be renamed to Valero. So what's Valero? Valero is a backup tool, which allows you to backup your resources and data on your Kubernetes clusters. So Valero solves mainly three major problems. Disaster recovery, which is, for example, some with fat fingers can delete the namespace, and if you have a backup, we can restore it. Yeah, you can redeploy, but that will not bring your data back. So Valero is here to help. Data migration is the case when you want to migrate from one Kubernetes cluster to another, for example, from one cloud provider to another, or from on-prem to cloud, whatever, and then data protection. It's the third portion of the solution. If you have data corruption, you can restore the data through Valero, so it can save your business. So what's Valero and how it's working? Valero is client and service site kind of solution, so we have Valero as a deployment running in your Kubernetes cluster. When you deploy Valero, it will extend your API. So you're going to apply a bunch of CRDs on top of Kubernetes. And a few examples are backup and restore. So you work at the end, you work with Kubernetes-native resources, so you can do kubectl get backups, for example. Every single instance of Valero, or every installation of Valero, needs a place to store the backups. And the case that we choose to do is to store some object storage, for example, S3 bucket or Minio, something S3 compatible, where you can store the backups and the data if you decide to do that. And then we have hooks, which are a possibility to modify and customize the process of backup. So if you want to execute a backup and you need to perform something in the very beginning, for example, to freeze the file system if you're going to backup a database, you can do that through the hooks. And then you can do some syncing in the end, like post hooks. I forgot to ask, how many of you have used Valero before? OK. And how many are hearing about Valero for the first time? Good. We have swag for you. So we brought some t-shirts and some stickers. So please, after that, if you're interested, come and pick some. So that's the workflow overall. And I'm going to describe it in the next thing, which is the COI. So Valero ships with COI, which integrates with Kubekado. You can do a lot of the stuff only with Kubekado when you have once installed Valero. But the Valero COI you needed to install Valero. And then when you do, for example, Valero get backups, it gives you a little bit more detailed or more information, which Scottie is going to demonstrate later on. So the thing is, you do Valero create backup. And that talks to the Kube API. Kube API verifies everything, creates a new object, new resource, for example, backup. And then the Valero controller reads these events. And when such events happens, it's reconciling, and it's running the flow for backup, for example. So that means you say, I want to backup that namespace with all the resources there. So if you dump the resources, you dump, for example, the PVs and store it somewhere on the S3 bucket. The other way is when you do the restore, it's going to read from the S3 bucket and restore. So maybe you're asking the question now, OK, why I should use Valero instead of just Kubekado to get pods, whatever, hyphen O, YAML, because you have to clean a lot, which means when you dump everything, your resources, there'll be statuses, metadata that are OK, but you have to clean them. And some of them maybe will stop you to reproduce that somewhere else. And also, with that, you cannot get the data out. So you have to figure out some other way to dump the PVs and then do whatever you're going to do with them. So without how we backup the PVs, we have something called plugins or providers. So that's the way how Valero talks with the underlying infrastructure, for example, AWS. And it's using the native methods to backup, so to do snapshot, for example. So there are two types of providers in our space. One is Valero support, and the other one is community supported, which is kind of strange. I mean, Valero is a community project. So what means Valero support? It means the maintainers cannot support every flavor of provider out there. So there should be some subset of things that we say, yeah, we work with this one for sure. Rest, if you want it, yeah, work with us. We will support you, but we cannot say we work with them and they are fully supported. So go on our website, check, and you see the different features. And yeah, that's my wife wishing me luck. I thought I'd forget this story. OK, so PV backups. There are a few ways to do PV backup. So the cloud native way is to use the underlying cloud platform and to do, for example, EBS snapshots. But sometimes you may not run in the cloud, or you want to do something else with your data, or you don't want to rely on the underlying cloud. So we have RESTIC. RESTIC is a file system level backup. And I'm not talking about CSI right now because Scott is going to demonstrate that, but I want to touch on RESTIC. For example, if you have something that is running on AWS or EAP or Jiki, whatever, and you want to transfer that on-prem or the other way around, you have to find a way to transfer that data. And one of the ways is to use RESTIC. So you have your PVs. Bless you. And you can backup that, backup all the resources, plus the data, which will be uploaded into your S3 bucket. And then when you install Valero on the destination cluster, you can read from that S3 bucket and restore everything on the new cluster. Am I missing something? Good. So with that, I'll give the squat to you to do the demo. I'm not sure how we can work that. OK. So here I've got a cluster that I had set up. It's an EKS cluster running here. It's Kubernetes 121 and AWS. And got Valero installed here. And Valero 1.9 just got released today. What I'm running here for the demo was kind of a pre-release about two weeks ago, kind of the code base, because that's what was available then. We're going to look now at the Valero namespace to see what's running there. And you see the Valero deployment mentioned that that handles all the essential components of Valero, backups, restores. Oh. It's a video. So I'm not sure if we can zoom more than that. I'm sorry. Yeah. Yeah, I think it's all we can do here. And then we also see those three other pods, the daemon set. That's the REST component. That's the optional component that you need that if you're going to be doing the file system restore. And that's run as a daemon set because we've got to be able to run that pod on the same node that your pod is running and it has that mounted volume. And what I've got installed here, let's see a second, is the basic WordPress demo app. So it's not going no under. Here we go. Yeah, so. And it's basically got, let's see a second here, two different deployments. It's got the database front end and the front end and the database back end. So this is in that namespace there. We've got WordPress running. So what I'm going to do now is we're going to go to the web UI and create a blog post. And then we're going to back it up. I'm just showing you how we've got the two pvcs, one for the database and one for the front end. Those will also be backed up and restored here. So creating a new post. Publish that now and view the post. I'm just going to go ahead and add a comment. So we'll see all this should show up when we restore it in a few minutes. So now we're going to go and actually create that backup using the Valera CLI. And the basic backup, we're just giving it a namespace, taking all the other defaults. So we're just going to do a Valera backup, create, give it a name, and the namespaces. And you can do a whole cluster backup. If you don't specify, they include the African name there. So if you don't specify that, then you can back up all namespaces. And there's a bunch of other ways you can tweak it, including cluster scope resources or not, label selectors, if you want to just do a subset of your namespaces. And you can also just create the CRS directly if you have more specific needs there, or you have some tool that's creating those. So we've created a backup. The Valera pod is now running through. It sees the new backup in the queue and it's going to start backing up that namespace. We'll use the Valera CLI again to look at the current backups. I'm just waiting here to give it a chance to run the backup. So we just get a list of backups. This is going to show all the backups that are in that bucket for your backup storage location. So if you have multiple clusters sharing the same SVBucket, you might see additional backups from other clusters. So this is the one we just backed up WordPress demo. It's completed. Going to use that backup describe CLI. This gives it a list of all the resources that were included in the backup. And then you can also see there were 53 items backed up. Status, if there were warnings or errors, you'd see the information about those as well. So now I'm just going to add another comment post backup. So we'll see when we do the restore, it's going to be the data that was there at that point. So this post backup comment should not appear in the restored cluster, in the restored namespace rather. So now we're going to delete the namespace, which we'll get rid of, the pods, the deployments, the volumes and everything there. And as Arlen mentioned, we're using the CSI plug-in here. It's actually using RookSaf CSI driver. So we're using the Valero CSI plug-in for doing that backup and restore. And if you're using EBS or something with a native Cloud Snapshot provider, then we have, and it's a plug-in for it, whether it's one of those supported ones or one of those community supported ones, then you can do that as well. I also mentioned here that there's one, and I'm just reloading the page here. You see it's stalling there, it's not loading. So now we're going to look in the namespace and there's nothing there. So now it's time to create the restore. And again, the basic defaults for the CLI for the restore, you got to get all the backup you're restoring from and that's all you need for a basic restore. You can also restore some subset from a backup, specify resources to exclude, you can use the label selector there as well. So we're just restoring the whole backup from, so we give it a name and then from backup WordPress demo. As mentioned on the, with the plugins, pretty much any provider that has a plug-in that you can install for, that has a Snapshot plug-in, then you can use those native snapshots for the backup and restore as well. So we're going to do a list on the restore and the restores are different from the backups in the sense that they're only local to the cluster. So you have a shared S3 store that'll just ship your backups across but you're only going to see the restores from this cluster. But if you had another cluster that is using the same backup store then you could back it up in this cluster and then restore it in another cluster. Maybe you want to, maybe you have a second cluster that you want to mirror the content from your current cluster with some scheduled set of backups from one cluster and restores to the other. I will see you here that this was completed. I'm going to show one of the, so the restore completed at this point, what's happening is Valero has run through and actually created all the Kubernetes resources in the cluster and the application should be initializing. We're going to look at another feature from the CLI, the backup logs. You can look at backup and restore logs. Those are stored in S3 as well. So even if the Valero pod has gone down and been restarted, these logs get preserved as long as the backup is still there. And the logs can be useful, especially if you get warnings or errors obviously, but also if there's some resource that you expected to be restored and you don't see it, you can check the logs. Any plug in that you've added might have some contraint to the logs like this one saying it's skipping resource because it's cluster scoped. And if you're doing a single namespace backup then we don't include all the cluster scoped resources unless you've explicitly set that as a CLI option. And I should bring up, as Orlin mentioned, the plugins for the storage, both for the object store and for volume snapshots. But there's another type of plugins that people use as well and that's the backup item action and restore item action restore. So it lets you define custom behaviors for specific resource types. Now maybe, in fact, maybe you wanna modify certain attributes either on backup or on restore for secrets or for pods. You can also specify dependencies to say, anytime you backup in a resource A, also include B and C. And those get pulled into backup as well. And the same on restore, you can specify dependencies that way on restore. You can also pull things out of the backup and your plugin might say, oh, if the spec field is true, then I wanna skip this thing. And then we'll just completely skip that item for the restore. All that can be done from plugins. So I'm just trying to reload this now that the application is still initializing. Another minute we'll see that it should be there. On the OpenShift team, we have a project, OADP, which is kind of bringing in Valero into the OpenShift world. And one of the things we're doing with that is we have several plugins that we've created for OpenShift-specific resource types, as well as even for standard Kubernetes types that have OpenShift-specific behavior that we may wanna do certain things, clear certain fields. We've got plugins to do that. And so that's one thing. And pretty much when you install Valero, you can add any plugin you want. It's just, again, there's a CLI option for Valero plugin add. Those get created as added as init containers on the Valero pod plugins and Valero communicate via gRPC. Load, shortly, I think it's almost up. It's just the WordPress takes a little while for everything to get up and ready to go. Yeah, we're actually pretty close to that. We should see this load. And should see that that post backup comment is not there. Yeah, here it is. It sites up again, post restore. Look at the post. And we see that initial comment before the backup, but that was not because we restored the contents that as they existed before then. So, where are you going next? Yeah. Thank you. For some reason, many folks are trying to wish me luck today. Okay. All right, so next thing, I wanna talk about community. And that's my role as a community manager to encourage folks to join us. So how many of you are contributing daily on open source? Can someone raise hand? Okay. And how many of you wants to start contributing? I'm not talking about code. I'm talking about everything, like documentation, ideas, nobody? Okay, great. So, I think our community is quite vibrant and very welcoming to join. So, the boring starts. We have like 6,000 stars on GitHub, more than 1,000 folks. More importantly, we have more than 230 contributors active. By contributors, I don't mean folks that are contributing code or documentation. Super active Slack channels and people are asking questions and people are joining discussions. So, if you feel like joining this kind of community, I'll show you later on how. So, we have seven maintainers. Even though the project was started and initiated, have to you and then VMware, not all the maintainers are VMware. We have Scott, we have Dave from Casting. So, we have a good bunch of maintainers from different organizations. And yeah, we're all across the globe. We have folks in China and in the US. I'm in Bulgaria. We have folks in Canada as well. So, if you want to join that diverse and around the globe community, join us. So, a part of the maintainers, that's our contributor. So, you can see Zuzzi are supporting us SAP, Dell, and of course the community. And if you take a look at the graph of the contributions, it's 50-50. One 50 side percent is all these organizations. The other 50 percent is unidentified organizations. Either the folks are not filling up their affiliation with their organization, or they're just not affiliated to any organization. So, I'll say that's a very strong indicator that the community is healthy and the project is healthy because we have very diverse contributions from different parts of the world and organizations. So, how you can get a vote and why a community is important. It's important because that's how it's built, it's in the project. So, I'm gonna repeat that. Even it's an X VMware project and VMware is doing a lot of stuff. The rest is done by the community and is doing by folks who are spraying their time to work on this one. So, thank you very much. If you wanna start your journey into our project, you can check our governance. It's a well-described document, how you can start contributing and how you can become a contributor and then maintainer. And ask for everyone. If you're using Valero, reach out to me. I wanna talk to you. I wanna talk about your programs. I wanna talk how you implemented it, what kind of issues you have and what kind of features you want. So, we have a doctor's file. So, feel free to fill in if you like it. So, how we can help you. That QR code is my Twitter. I'm open for DMs. So, if you feel like chatting with me, just get in touch with me. Valero.io is the website and that's the GitHub under the VMware Tanzu and how you can join us. We do almost every week. Okay, every week. We have a community meeting just alternating between U.S. and China-ish friendly time zone and the other week we do U.S. and European-ish friendly time zone. So, you can match easily in some of these two meetings. We have a Google group. So, if you're interested to receive our newsletters, I promise I won't spam you a lot. It's like one or two messages. Per month, I suppose. It's not very active, though. Slack is much more active. And talking about Slack, you can find those in the Kubernetes space. We have two Slack channels. Two main Slack channels, one is Dev. If you feel like you wanna start developing and wanna contribute, Valero Dev is the place to join. But if you're a user and you wanna ask questions about how to implement and how to solve specific problems, Valero users is the other one. We have a bunch of folks answering questions every day, it's a very active Slack channel, and you can find a lot of information there. How to interact with us? You can follow the Twitter for Valero and you can receive the news. So, with that said, talking about news, we just released a few hours ago, 1.9. That slide was previously, it was Roadmap, but now it's released so it's no more Roadmap. It's done. Those are few of the main features that we've accomplished in that release. I don't wanna go every one of them. Maybe it's called if you wanna touch on some of the main ones. Yeah, just to mention a couple of them. I mean, CSIP Login is a big one because that kind of gives us more more ability to work with a greater variety of storage providers. So that's pretty important. The other ones are a lot of incremental updates, existing resource policies, just one where normally when we restore, if the resource is already there, we ignore it, we only recreate new things, but there's kind of a problem for use cases where you wanna create a kind of live backup. So you wanna update things, and so this allows us to actually update existing items. And then again, there's other incremental features, better testing, refactor controllers, using a newer framework. That's more kind of developer focused, making it easier on the rest of us for maintaining. If you have questions of some of this, we can answer that in the Q&A session. We are building the roadmap for 1.10. So everything is public. Everything is in GitHub, everything is in YouTube. If you wanna follow the community meetings, recordings, or if you wanna add, we have a discussion in GitHub. If you wanna feature that we don't have it right now, just drop a line there. We can discuss it, we can set up countless calls about discussing the new architectures, new features. So we just need your feedback and your input so we can make Valero better about the release date. I think we cannot share that right now. Without, thank you very much. I think we're at the end. So do we have time for Q&A? Great. So if, what's that? About a little over 10 minutes. Oh, great. Oh, we were fast. Okay. All right, so if you're free to ask questions, are there any questions on the live stream, I think? All right. Okay, thank you. Okay, if no questions, I have a question. Do you want a t-shirt or sticker? If yes, over here. Okay. Thank you everyone. Bye. Thank you.