-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Add UI information about AAQ operator #111679
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
rheslop
wants to merge
11
commits into
openshift:main
Choose a base branch
from
rheslop:main-cnv-62019
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
ddc5c0a
INITIAL COMMIT for CNV-62019 with updates
rheslop 7cedac0
Apply suggestion from @rheslop
rheslop d71f2a6
Apply suggestion from @rheslop
rheslop 7a529b6
Apply suggestion from @rheslop
rheslop 55ff6f7
Apply suggestion from @rheslop
rheslop a07f0c9
Apply suggestion from @rheslop
rheslop e599242
Apply suggestion from @rheslop
rheslop 9abb5f4
Apply suggestion from @rheslop
rheslop f7b21ab
Apply suggestion from @rheslop
rheslop 2f0b7a3
Apply suggestion from @rheslop
rheslop 4a67736
Update step six to express variability of fields
rheslop File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,66 @@ | ||
| // Module included in the following assemblies: | ||
| // | ||
| // * virt/managing_vms/advanced_vm_management/virt-working-with-resource-quotas-for-vms.adoc | ||
|
|
||
| :_mod-docs-content-type: PROCEDURE | ||
| [id="virt-creating-vm-quotas-web_{context}"] | ||
| = Creating virtual machine quotas using the web console | ||
|
|
||
| [role="_abstract"] | ||
| You can create Application Aware Quota (AAQ) quotas that limit virtual machine resource consumption by using the guided form in the {product-titles} web console. The form is the recommended approach for simple virtualization quota use cases. | ||
|
|
||
| .Prerequisites | ||
|
|
||
| * You have administrator privileges in the OpenShift cluster. | ||
| * The Application Aware Quota operator is enabled in your cluster. See xref:virt-enabling-aaq-operator_{context}[Enabling the Application Aware Quota operator]. | ||
| * The project where you want to create the quota exists. | ||
|
|
||
| .Procedure | ||
|
|
||
| . In the {product-title} web console, click *Virtualization* -> *Quotas*. | ||
|
|
||
| . Click *Create quota*. | ||
|
|
||
| . In the dropdown menu, select *With form*. | ||
| + | ||
| The create quota form is displayed. | ||
|
|
||
| . Enter a name for your quota in the *Name* field. | ||
| + | ||
| The name must be unique within the project. | ||
|
|
||
| . Select the project where you want to apply this quota. | ||
| + | ||
| By default, the current project is selected. You can click the dropdown to select a different project if needed. | ||
| + | ||
| [NOTE] | ||
| ==== | ||
| If a Kubernetes `ResourceQuota` already exists in the selected project, an alert is displayed with a link to view the existing ResourceQuota. You can still create the AAQ quota, but both quotas will apply to the project. | ||
| ==== | ||
|
|
||
| . Configure CPU, memory, and VMI limits for the quota: | ||
| + | ||
| The fields displayed vary based on the selected quota calculation method: | ||
| + | ||
| * For the `Virtual resources` or `Dedicated virtual resources` quota calculation method, the quotas exclude pod overhead: | ||
| ** Use the *vCPU allocation* field to set the maximum number of virtual CPUS permitted for all VMs in the project, excluding pod overhead. | ||
| ** Use the *Virtual memory allocattion* field to set the maximum memory capicity, in GiB, excluding pod overhead. | ||
| ** Use the *VMI limits* field to set the maximum number of virtual machine instances. | ||
| * For the `Virtual Maching Instance (VMI) pod usage` quota calculation method, the quotas include pod overhead: | ||
| ** Use the *CPU allocation* field to set the maximum number of CPU cores for pods that run VM workloadss | ||
| ** Use the *Memory allocation* field to set the maximum memory capicity, in GiB, for pods that run VM workloads. | ||
| ** Use the *VMI limits* field to set the maximum number of virtual machine instances. | ||
|
|
||
| . Review the configuration and click *Create*. | ||
| + | ||
| The quota is created and you are redirected to the quota details page. The new quota is now active and enforcing resource limits on virtual machines in the selected project. | ||
|
|
||
| .Verification | ||
|
|
||
| . In the OpenShift web console, click *Virtualization* -> *Quotas*. | ||
|
|
||
| . In the quotas list, locate your newly created quota. | ||
|
|
||
| . Verify that the quota name is displayed in the list with the correct project and resource limits configured. | ||
|
|
||
| . Click the quota name to open its details page and confirm all settings are correct. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,23 +1,37 @@ | ||
| // Module included in the following assemblies: | ||
| // | ||
| // * virt/virtual_machines/advanced_vm_management/virt-understanding-aaq-operator.adoc | ||
| // * virt/managing_vms/advanced_vm_management/virt-working-with-resource-quotas-for-vms.adoc | ||
|
|
||
| :_mod-docs-content-type: PROCEDURE | ||
| [id="virt-enabling-aaq-operator_{context}"] | ||
| = Enabling the AAQ Operator | ||
| = Enabling the Application Aware Quota Operator | ||
|
|
||
| [role="_abstract"] | ||
| To deploy the AAQ Operator, set the `enableApplicationAwareQuota` field value to `true` in the `HyperConverged` custom resource (CR). | ||
| Enable the Application Aware Quota (AAQ) operator to manage resource quotas to extend native resource management capabilities. Enabling AAQ from the web console eliminates the need to manually edit the HyperConverged custom resource by using the CLI. | ||
|
|
||
| .Prerequisites | ||
| * You have access to the cluster as a user with `cluster-admin` privileges. | ||
| * You have installed the OpenShift CLI (`oc`). | ||
|
|
||
| * You have administrator privileges in the OpenShift cluster. | ||
| * The OpenShift Virtualization operator is installed and running. | ||
|
|
||
| .Procedure | ||
| * Set the `enableApplicationAwareQuota` field value to `true` in the `HyperConverged` CR by running the following command: | ||
|
|
||
| . In the OpenShift web console, click *Virtualization* -> *Settings*. | ||
|
|
||
| . Under *Resource Management*, toggle the *Application Aware Quotas (AAQ)* to On. | ||
| + | ||
| The operator deployment begins automatically. The status changes from *Disabled* to *Enabled* after the operator pods are running. | ||
|
|
||
| . Optional: Click the *Edit* icon next to the *Quota calculation method* field to change the calculation method. | ||
| + | ||
| [source,terminal,subs="attributes+"] | ||
| ---- | ||
| $ oc patch {HCOCliKind} kubevirt-hyperconverged -n {CNVNamespace} \ | ||
| --type json -p '[{"op": "add", "path": "/spec/enableApplicationAwareQuota", "value": true}]' | ||
| ---- | ||
| A modal dialog is displayed with the following options: | ||
|
|
||
| ** *Virtual resources*: Measures only the virtual CPU and memory allocated to virtual machines (VMs), excluding pod runtime overhead. This is the default option for virtualization workloads. | ||
| ** *Virtual Machine Instance (VMI) pod usage*: Measures the total virtual CPU and memory consumption of the VM pod, including both the virtual machine and pod runtime overhead. | ||
| ** *Dedicated virtual resources*: Measures the virtual CPU and memory resources assigned to virtual machines and their associated pods, tracking quota usage separately for each type. | ||
|
|
||
| . Select your preferred quota calculation method and click *Save*. | ||
|
|
||
| .Verification | ||
|
|
||
| . Verify that a new *Quotas* option is displayed in the left navigation menu under *Virtualization*. This indicates that AAQ is ready for quota creation and management. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| // Module included in the following assemblies: | ||
| // | ||
| // * virt/managing_vms/advanced_vm_management/virt-working-with-resource-quotas-for-vms.adoc | ||
|
|
||
| :_mod-docs-content-type: PROCEDURE | ||
| [id="virt-managing-quota-details-web_{context}"] | ||
| = Managing virtual machine quota details using the web console | ||
|
|
||
| [role="_abstract"] | ||
| The quota details page in the {product-title} web console provides information about an Application Aware Quota (AAQ), including resource limits, current usage, and visualizations of how quota capacity is being consumed. | ||
|
|
||
| [NOTE] | ||
| ==== | ||
| Cluster scoped quotas show only the YAML definition due to the complexity that these quotas require. | ||
| ==== | ||
|
|
||
| .Prerequisites | ||
|
|
||
| * You have administrator privileges in the OpenShift cluster. | ||
| * The Application Aware Quota operator is enabled in your cluster. | ||
| * An Application Aware Quota exists in your cluster. | ||
|
|
||
| .Procedure | ||
|
|
||
| . In the {product-title} web console, click *Virtualization* -> *Quotas*. | ||
|
|
||
| . Click the quota name to open the *Quota details* view. | ||
| + | ||
| The *Quota details* view displays visual indicators, quota metadata, and tabulated data: | ||
| + | ||
| * Circular utilization charts visually represent resource consumption in your project | ||
| * The *Details* element provides metadata such as the Quota name, scope, applied labels and project. | ||
| * The *Quota details* element provides a tabulated views that display the current and maximum utilization of each resource type. | ||
| + | ||
| [NOTE] | ||
| ==== | ||
| If a Kubernetes `ResourceQuota` also exists in the same project as this AAQ quota, an alert is displayed at the top of the details page with a link to view the ResourceQuota. Both quotas apply simultaneously to the project. | ||
| ==== | ||
|
|
||
| . Optional: Click on the *YAML* tab to review the resource configuration of the quota. | ||
|
|
||
| . Optional: Use the *Actions* panel to edit or delete the quota. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| // Module included in the following assemblies: | ||
| // | ||
| // * virt/managing_vms/advanced_vm_management/virt-working-with-resource-quotas-for-vms.adoc | ||
|
|
||
| :_mod-docs-content-type: PROCEDURE | ||
| [id="virt-managing-quotas-list-web_{context}"] | ||
| = Managing virtual machine quotas using the list view | ||
|
|
||
| [role="_abstract"] | ||
| The Application Aware Quota (AAQ) quotas page in the OpenShift web console provides a centralized view of all quotas managed by the AAQ operator. From this page, you can view quota status, usage, and perform management actions such as editing and deleting quotas. | ||
|
|
||
| .Prerequisites | ||
|
|
||
| * You have administrator privileges in the OpenShift cluster. | ||
| * The Application Aware Quota operator is enabled in your cluster. | ||
| * At least one Application Aware Quota exists in your cluster. | ||
| .Procedure | ||
|
|
||
| . In the OpenShift web console, click *Virtualization* -> *Quotas*. | ||
| + | ||
| The quotas list view is displayed, showing all project-scoped AAQ quotas by default. | ||
|
|
||
| . Click the *Cluster-scoped quotas* tab to view cluster scoped quotas. | ||
| + | ||
| This tab is displayed only if cluster-scoped quotas have been defined in your cluster. | ||
| + | ||
| [NOTE] | ||
| ==== | ||
| Cluster-scoped quotas can only be created or edited using YAML. The form-based creation option is not available for cluster-scoped quotas due to their complexity. | ||
| ==== | ||
|
|
||
| . To view detailed information about a specific quota, click the quota name to open the quota details page. | ||
|
|
||
| . To edit a quota, click the Options menu {kebab} at the end of the quota row | ||
| .. Select *Edit quota*. | ||
| + | ||
| The edit form is displayed with the current quota configuration. | ||
| .. Click *Save* after you have completed modifying the resource limits. | ||
| + | ||
| [NOTE] | ||
| ==== | ||
| If the quota was initially created with advanced settings via YAML, clicking *Edit quota* opens the YAML editor instead of the form. | ||
| ==== | ||
|
|
||
| . To delete a quota, click the Options menu {kebab} at the end of the quota row and select *Delete quota*. A confirmation dialog is displayed. | ||
| .. Click *Delete* to remove the quota. | ||
| + | ||
| [WARNING] | ||
| ==== | ||
| Deleting a quota removes all resource enforcement for the quota. Virtual machines in the affected project are no longer subject to the quota limits. | ||
| ==== | ||
|
|
||
| . To create a new quota from the list view, click *Create quota*. | ||
| .. Select an option from the dropdown menu: | ||
| + | ||
| ** *With form*: Opens the form-based creation experience for simple VM quota use cases. | ||
| ** *With YAML*: Opens the YAML editor for advanced quota configurations that include pod limits or other resource types. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| // Module included in the following assemblies: | ||
| // | ||
| // * virt/managing_vms/advanced_vm_management/virt-working-with-resource-quotas-for-vms.adoc | ||
|
|
||
| :_mod-docs-content-type: CONCEPT | ||
| [id="virt-understanding-aaq-operator_{context}"] | ||
| = Understanding the Application Aware Quota Operator | ||
|
|
||
| [role="_abstract"] | ||
| The Application Aware Quota (AAQ) operator extends Kubernetes native `ResourceQuota` to measure virtual machine (VM) resource consumption in mixed pod and VM environments. | ||
|
|
||
| AAQ provides quota enforcement designed for virtualization workloads: | ||
|
|
||
| Kubernetes ResourceQuota:: Measures and enforces resource limits at the pod level. When applied to VMs, it measures the entire VM pod's resource consumption, including hypervisor overhead and pod infrastructure, which does not reflect actual VM resource allocation. | ||
|
|
||
| Application Aware Quota (AAQ):: Extends ResourceQuota functionality to accurately measure and enforce VM resource consumption. AAQ understands the virtualization layer and can measure actual virtual CPU and memory allocated to VMs, separate from pod overhead. | ||
|
|
||
| AAQ supports two types of quotas: | ||
|
|
||
| Project-scoped quotas:: Apply resource limits to a specific namespace or project. These are the most common use case for virtualization workloads. | ||
|
|
||
| Cluster-scoped quotas:: Apply resource limits across the entire cluster. These are useful for advanced scenarios where you need cluster-wide resource enforcement. | ||
|
|
||
| When you enable AAQ, you must configure a quota calculation method. This setting determines how AAQ measures VM resource consumption across your cluster: | ||
|
|
||
| Virtual resources:: Measures only the virtual CPU and memory allocated to virtual machines (VMs), excluding pod runtime overhead. This is the default option for virtualization workloads. | ||
|
|
||
| Virtual Machine Instance (VMI) pod usage:: Measures the total virtual CPU and memory consumption of the VM pod, including both the virtual machine and pod runtime overhead. | ||
|
|
||
| Dedicated virtual resources:: Measures the virtual CPU and memory resources assigned to virtual machines and their associated pods, tracking quota usage separately for each type. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@adamviktora Let me know if this step looks better, and if there's a way I can improve it