Skip to main content
logoTetrate Service BridgeVersion: next

Pod Priority for TSB Components

In Kubernetes, a PriorityClass defines the scheduling priority of pods. When cluster resources are under pressure, the scheduler evicts lower-priority pods first to free capacity for higher-priority ones.

Assigning a PriorityClass to TSB components ensures that mesh infrastructure is protected from eviction ahead of application workloads. TSB lets you set a priorityClassName once across all operator-managed component deployments, or override it per component.

note

The PriorityClass must already exist in the cluster before it is referenced. TSB does not create PriorityClass objects. For built-in classes, Kubernetes provides system-cluster-critical and system-node-critical; for custom priorities, create a PriorityClass object first. See the Kubernetes documentation for details.

Operator pod

The TSB operator pod itself can be given a priority class via the operator.deployment.priorityClassName field in the Helm values file. This applies to both the management plane and control plane operators.

operator:
deployment:
priorityClassName: system-cluster-critical

TSB component pods

To assign a priority class to all TSB component pods managed by the operator, set spec.components.defaultKubeSpec.deployment.priorityClassName in the ManagementPlane or ControlPlane CR, or equivalently in the Helm values file under spec:

spec:
components:
defaultKubeSpec:
deployment:
priorityClassName: system-cluster-critical

This applies the specified PriorityClass to every operator-managed component deployment for the management plane or control plane.

Per-component override

To assign a different PriorityClass to a specific component, set kubeSpec.deployment.priorityClassName on that component. This takes precedence over defaultKubeSpec:

spec:
components:
defaultKubeSpec:
deployment:
priorityClassName: system-cluster-critical
xcp:
kubeSpec:
deployment:
priorityClassName: system-node-critical

The same pattern applies to management plane components. For example, to give the API server a higher priority than other management plane components:

spec:
components:
defaultKubeSpec:
deployment:
priorityClassName: system-cluster-critical
apiServer:
kubeSpec:
deployment:
priorityClassName: system-node-critical

Coverage

defaultKubeSpec.deployment.priorityClassName applies to all TSB component deployments managed by the operator. cert-manager pods also honour the global priority class. The following embedded external charts are not covered:

  • ECK (Elasticsearch / embedded telemetry store)
  • kubegres (embedded PostgreSQL datastore)

If you use embedded Elasticsearch or Postgres and need priority classes on those pods, configure them using the relevant chart values independently.