       ; (https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/)
       ; from happening. We want this pod to preempt lower priority pods
       ; (e.g. synthetic pods).
-      (add-node-selector pod-spec k8s-hostname-label hostname)
+      (do
+        (add-node-selector pod-spec k8s-hostname-label hostname)
+        ; Allow real pods to run on tenured nodes.
+        (.addTolerationsItem pod-spec toleration-tenured-node))
       (when (seq pod-hostnames-to-avoid)
         ; Use node "anti"-affinity to disallow scheduling on nodes with particular labels
         ; (https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#node-affinity)

; This pod annotation signals to the cluster autoscaler that
; it's safe to remove the node on which the pod is running
(def k8s-safe-to-evict-annotation "cluster-autoscaler.kubernetes.io/safe-to-evict")

(def default-shell
  "Default shell command used by our k8s scheduler to wrap and launch a job command

    false
    (let [taints-on-node (or (some-> node .getSpec .getTaints) [])
          other-taints (remove #(contains?
                                  #{cook-pool-taint-name k8s-deletion-candidate-taint gpu-node-taint tenured-node-taint}
                                  (.getKey %))
                               taints-on-node)
          node-name (some-> node .getMetadata .getName)
