 Hello, this is a demo of the new storage quota management functionality introduced in Red Hat Quay 3.7. My name is Daniel Messer, I am the product manager for Red Hat Quay and I am going to take you on a quick tour through this new management capability. But first things first, since quota management is a brand new feature, we do not enable it by default for existing Quay configurations. Make sure you have the feature flag for quota management enabled in the Quay configuration file like shown here. With this prerequisite checked off, let's head to the Quay UI. You will notice that in the repository list view there is a new column that shows the storage consumption of each of the repositories this user currently has access to. When we look at one of the organizations this user is a member of, we can also see the total aggregate storage consumption of all the image repositories inside this organization. Each repository is also tracking its own storage utilization which is defined as the sum of all image tags inside the respective repository. In the tag list view you can see the individual image sizes. This information lets you quickly drill down into an organization and identify where the storage consumption originates from. Let's push some additional content into the registry. I am going to use Scopio to conveniently copy images from a public registry into the organization we just looked at. When we switch back to the Quay UI and refresh we can see that both the consumption of the repository I pushed the tag into as well as the total organization consumption were updated immediately. Right now I can store as much as I want in my test organization. Let's change that by applying a quota. In the repository list view you may already have spotted that some repositories report their consumption along with a percentage value. This is because they are part of an organization that has a storage quota set. We are going to do the same now for our organization. Storage quotas in Quay are applied at the organization level. The persona that can set, modify or disable quotas in Quay is the super user. I am currently logged in as a super user and can switch perspectives by going to the admin panel. In the organization list view I can see all organizations that are currently created in my environment including total storage consumption for the entire registry, storage utilization of each individual organization and percentage of quota used if one is defined. This is very useful to identify large consumers in the system. Let's set a quota for my test organization. First I'll set the overall storage quota for this organization, one gigabyte for now. After I applied that I can now define a quota policy. This allows me to define what happens when a certain threshold barrier is reached. First I'll define that the organization should reject any new content getting pushed when the quota attainment reaches 100% or one gigabyte in this case. Then I'll set an additional threshold at 80% quota attainment or 800 megabytes in this case to start generating warnings for the organization owners. This kind of policy lets tenants of the registry know when they are about to reach a certain storage utilization and will then enforce a hard cap at the quota limit. Let's see how that works from the user perspective. The organization is currently at roughly 75% utilization. I'm going to push additional images. First I'll copy the Quay builder image into my registry. This should not exceed the quota for now as the image is roughly 150 megabytes. As a result I'm now at 91% utilization and as expected the system starts to warn me that I'm nearing my capacity limit. To introspect my quota configuration and the various threshold definitions as a user I can look at this in my organization's setting panel. Notice that since only the super user persona can adjust quotas in the systems these settings are read only for me. Let's push some more content. The Quay image of the Project Quay open source project is roughly 350 megabytes and will definitely not fit my remaining storage capacity. Let's push it to see what happens. As you can see the upload fails halfway through because I'm exceeding my quota. If we go back to the Quay UI we can also see that while the repository for the Quay image has been created the image tag has not been uploaded and my utilization remains at 91%. Now that I've effectively reached my limit I need to interact with the registry administrator to increase it. This way Quay administrators can contain and control growth in a multi-tenant environment. Since I'm already logged in as the super user I can increase the quota for this particular organization right away. Heading back to the settings panel I can update the quota and set it to 2 gigabytes. Alternatively I could have lifted the reject policy at the 100% quota utilization. This is useful in emergency situations when you do not want to increase the quota for a project long term but you want to unblock them short term. Attempting to push the Quay image again now succeeds thanks to my expanded storage limit. While as a Quay administrator you can individually manage organization quota like I've just shown you may want to define a registry-wide default. This default quota is applied to every newly created organization and every existing organization that doesn't already have a quota configured. In my environment I have several of those cases. To set the system by default quota I add the corresponding setting to my Quay configuration file. The value for the field is specified in bytes and I am setting it here to 10 gigabytes. Then I need to restart Quay. Once that is done we will see that all organizations that previously didn't have a quota defined are now limited to 10 gigabytes. The default quota has also a policy attached that rejects any new content at 100% utilization. If I create a new organization I will immediately see that it is subject to the default quota. From here on I need to justify to the holder of the Quay Super User Privilege why I need more than that. This way the default quota is an additional instrument to keep registry growth in check when new projects and tenants are on boarded. This concludes this demonstration. Be also sure to check out the other new features of Red Hat Quay 3.7 pull-through caching, container native builds and geo-replication with the Red Hat Quay operator. Thanks for watching!