 Hi, my name is Benjamin Schmouse, and I'm a field product manager with Red Hat. Today, we're going to talk about storage quota limits in proxy organizations within Quay. With Red Hat Quay 3.8, the proxy cache feature has been enhanced with an auto pruning feature for tagged images. The auto pruning of images, image tags, is only available when a proxied namespace has quota limitations configured. Only if an image size is greater than the quota for an organization, the image is skipped from being uploaded until an administrator creates the necessary space. Now when an image is pushed that exceeds the allotted space, the auto pruning enhancement marks the least recently used tags for deletion. As a result, this new image tag is stored, while the least used image tag is marked for deletion. I want to go ahead and demonstrate this feature. The first thing that we need to do is make sure that our config YAML that we're using to deploy Quay has a couple of enhancements added to it. In my config YAML that I used to deploy Quay, I went ahead and made sure that the feature proxy cache feature flag is set to true. I also made sure that the feature quota management flag is also set to true. As you can see from the command line output of my config YAML, I have those listed. The next thing we need to do is actually go ahead and configure the quota and configure the proxy cache for one of our organizations. So let's go ahead and log in as the Quay admin. Once I've logged in as the Quay admin, I can go ahead and go up to the upper right hand corner and go to the super user admin panel. From there, I can go ahead and click on manage organizations on the left hand side. From that, I'm going to go ahead and click on the gear, which signifies the options, and I'm going to go ahead and configure the quota. Here I'm going to go ahead and set the quota for 150 megs. Obviously, in a real working environment, you'd probably want to set this at a greater length, but for our example here, it'll be 150 megs. I'll go ahead and click apply. At this point, I can go ahead and close this window out. From here, I'm going to go back to repositories, and then I'm going to go ahead and click on the OpenShift 4 organization listed under users and organizations in the right hand side. Once I'm there, I can go ahead and scroll down to the gears on the left hand side where it has organization settings. Click on that, and I can now set up the proxy cache component. You can see my quota is already set, which, again, was 150 megs. For our remote registry, I'm going to go ahead and define quay.io. If you needed a remote registry username or password, you can go ahead and put that in here as well. The images we're going to be pulling today are going to be public, so we don't need to actually log into the registry for that. Further down, we've got the expiration. In this case, we're setting it to one day, but if you wanted to do it for a longer period of time, this just defines when the default tag expiration for cached images happens. For example, if I pulled an image and it got cached, I could let it sit there, and it would sit there for a day, and then it would automatically be garbage collected. If you're dealing with an insecure registry, you can go ahead and check the insecure registry box. In my case, we're not. Again, I'll just leave it with quay.io in my settings and leave the default expiration and click Save. At this point, I'm going to go to the upper right-hand corner, and I'm going to click out Sign Out All Sessions, and I'm now going to log in as my OpenShift user. Once I've logged in, I can see that I do have an existing repository, but I'm going to go ahead and leave this screen exactly where it's at, and we're now going to go ahead and start to pull our images. But before we pull the images, we're going to go ahead and log in. I've gone ahead now and logged in to my registry, and let's go ahead and pull the first image for our proxy cache. You can see now I'm pulling that image down, and once that image is completed being pulled, we're going to refresh the quay web UI up above just to show you that we did actually pull that into our organization. So let's go ahead and click Refresh, and you can now see that I have OpenShift 4 as my organization along with a repository underneath called project quay slash clear, and you notice we're using about 46% of our quota consumed. All right, so at this point, we haven't had anything purged because we haven't reached our limit, so let's go ahead and pull another image. And if we go ahead and refresh the web UI again, you can see now that our consumption has gone up. If we actually go inside the repository of project quay and clear and go to the tags, you can see that we've got the two different tags that we had pulled in our proxy cache. You can see one of the versions is 4.1.5, and the other one is 4.2.3, just like we had pulled from the command line. But we still haven't reached our quota limit because if we go back to organizations, you can see we're at 92%. So let's go ahead now and pull another image, and now if we go ahead and refresh the UI, we can see that we're still at 92%. But let's go inside the repository and see if anything's changed in there. If we go back over to tags, oh, look at that. We can see now that we have two tag versions in there, 4.1.4 and 4.1.5. But we don't have the original 4.2.3 image that we first downloaded or pulled. And the reason being is because when we pulled that last image in the 4.1.4, while it will fit underneath our quota, it needed to purge out the least used image before, and that least used image was the first image that we actually pulled in. So it purged that one out, allowing us to make room for the one that we wanted to pull. Now let's try a different example. Instead of pulling a clear image down, let's go ahead and try to pull a different image and see what happens. And here's the image name, and you'll notice we didn't get to pull anything. And the reason being is because the quota was exceeded on that namespace or that repository. And the reason being is because the actual image I'm trying to pull here, the Metal 3 I.O. Ironic image, is actually too big for our quota. It exceeds the 150 megs that we set for our quota value. So we're going to get an automatic deny. So let's try something else. Let's try another image again that's going to fit inside of our quota and see what happens. I'm going to go back to the original image that we pulled the first time. The clear 4.2.3 image. We went ahead and run that, and it completed. Now let's go ahead and refresh our web UI. You'll notice that the 4.1.5, because it was the least used image, got pushed out, and that allowed for us to repull the 4.2.3. And again, this is just demonstrating how the proxy cache quota works inside of Quay 3.8. I hope this demonstration was useful and helpful. Thank you. Bye-bye.