# Pod Scheduling

Users may declare a `schedulingDetails` section. This is an optional section that allows scheduling configurations to be set over different groups of pods via the node selector, affinity / anti-affinity, taints, and tolerations attributes. To configure pod scheduling, add the following section to the `sdb-cluster.yaml` file.

```yaml
schedulingDetails:
    STATEFULSET_TYPE:
      nodeName: custom_node_name
      nodeSelector:
        custom: label
      tolerations:
      - key: "custom_key"
        operator: "Exists"
        effect: "NoSchedule"
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            podAffinityTerm:
              labelSelector:
                matchLabels:
                  custom: label
              topologyKey: "kubernetes.io/hostname"
        podAffinity: ...
        nodeAffinity: ... 
    STATEFULSET_TYPE:
      ...

```

`STATEFULSET_TYPE` is one of `master`, `aggregator`, `leaf-ag1`, or `leaf-ag2`. Scheduling details that are specified within the StatefulSet type will be passed directly to the pods that are owned by that StatefulSet.

For Operator versions 3.6.0 and later, the `Parallel` pod management policy is used to reduce the start-up time by child aggregators in parallel. For Operator versions earlier than 3.6.0, the `OrderedReady` pod management policy is used. Refer to [Pod Management Policies](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies) for more information.

Refer to the [Kubernetes.io documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/) for more information about these attributes.

***

Modified at: May 22, 2023

Source: [/db/v9.1/reference/singlestore-operator-reference/pod-scheduling/](https://docs.singlestore.com/db/v9.1/reference/singlestore-operator-reference/pod-scheduling/)

(An index of the documentation is available at /llms.txt)
