As of App Connect Operator 12.17.0, operand version 13.0.5.1-r1, we now support tolerations and nodeSelectors for all App Connect resources, including support for App Connect Designer, switch server and the IBM App Connect Operator. This complements our existing support for these scheduling fields in integration runtimes and integration servers at version 12.0.9.0-r2, and App Connect Dashboard instances at version 13.0.1.1-r1. Adding this support now allows you to have better control over where all of your App Connect resources are scheduled across your Red Hat OpenShift or Kubernetes worker nodes.
For a worked example as to how tolerations and nodeSelector can work with node taints, please see our previous post, and for further information on how these scheduling fields can be used, see Taints and Tolerations.
Scheduling App Connect Designer and switch server pods (Operand version 13.0.5.1-r1 or later)
App Connect Designer and switch server instances now support new custom resource (CR) fields that mirror the current fields in the Dashboard, namely adding spec.pod.nodeSelector and spec.pod.tolerations which are standard Kubernetes objects:
spec:
pod:
nodeSelector:
workloadType: ace
tolerations:
- key: workloadType
operator: Equal
value: ace
effect: NoSchedule
Scheduling IBM App Connect Operator pods
The IBM App Connect Operator pods themselves can also be scheduled.
Red Hat OpenShift with Operator Lifecycle Manager (OLM) subscription
Within OpenShift, when using the OLM subscription-based operator installations, pods can be scheduled by using out-of-the-box functionality. To achieve this you can add spec.config fields to the subscription object:
kind: Subscription
spec:
channel: v12.17
config:
nodeSelector:
workloadType: ace
tolerations:
- effect: NoSchedule
key: workloadType
operator: Equal
value: ace
The subscription config supports multiple fields that are documented here.
Kubernetes with Helm chart (Operator version 12.17.0 or later)
Additional scheduling fields have been added to the values.yaml file for Helm chart installation:
operator.deployment.nodeSelector
operator.deployment.tolerations
These fields get added to the operator deployment and schedule where the operator pods are deployed.
- The nodeSelector field takes the form of a JSON object. For example: {workloadType: ace}
- The tolerations field takes the form of a JSON array. For example: [{key: "workloadType", operator: "Equal", value: "ace", effect: "NoSchedule"}]