Skip to content

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"