Priority classes
The Platform's chart provides configuration options for the priority classes of the components provided.
You can learn more about Priority and Priority Classes on the official Kubernetes documentation.
Keep in mind that priority classes are cluster resources and will affect your whole environment, so previous knowledge of the resource is strictly required before using it.
With the configuration options provided, you can:
- Set a priority to the components
- Let the platform chart create the Priority Classes and assign them to the components
- Use custom Priority Classes that you already defined in your environment
If you enable priority through the Values file, you can specify two priority classes, a high priority one and a low priority:
global:
# global.priority -- Priority class configuration
priority:
# global.priority.enabled -- Enable/Disable priority classes
enabled: true
# global.priority.highPriority -- High priority class configuration
highPriority:
# global.priority.highPriority.className -- Name of the high priority class
className: &highPriority "HIGH_PRIORITY_CLASS"
# global.priority.highPriority.existingClass -- Set this to true if you have an existing priority class with the name specified in className
existingClass: false
# global.priority.highPriority.value -- Value of the high priority class created by the chart
value: 1000
# global.priority.lowPriority -- Low priority class configuration
lowPriority:
# global.priority.lowPriority.className -- Name of the low priority class
className: &lowPriority "LOW_PRIORITY_CLASS"
# global.priority.lowPriority.existingClass -- Set this to true if you have an existing priority class with the name specified in className
existingClass: false
# global.priority.lowPriority.value -- Value of the low priority class created by the chart
value: 100
If global.priority.highPriority/lowPriority.existingClass is set to false, the chart will create these priority classes for you, using className and setting the priority as of value.
Vice versa, if global.priority.highPriority/lowPriority.existingClass is set to true, the priority classes will not be created and the ones with the same name as className present on your environment will be used.
By default, these two classes use an anchor to assign the classes to the components quickly through the Values file, so check all the components before installing or upgrading the Platform.
You are not limited to using only a high priority and a low priority class, you can use as many as you like as long as you create them yourself and specify them in the values.
IMPORTANT: The pods generated by the users like Coder workspaces, Core runs and models, have a priority set to the default one present in your environment. Please, keep this in mind when you are planning your hierarchy!
Currently, priority classes are supported by the following components with the respective anchor assigned by default:
High Priority:
- Argo Workflows
- Core
- STS (Core)
- Docker Registry
Low Priority:
- API Gateway Operator
- Dashboard
- Dremio Rest Server Operator
- External Postgres Operator
- Kubernetes Resource Manager
- Open Web UI
- PostgRest Operator
To change the priority of a specific component, edit the value of the respective priorityClassName field.
For example:
core:
# core.priorityClassName -- Name of the priority class to use for the core pods. If not set, no priority class will be used.
priorityClassName: "NAME_OF_YOUR_PRIORITY_CLASS"