# infrastructure/core/node-prefer-noschedule-cronjob.yaml apiVersion: batch/v1 kind: CronJob metadata: name: node-prefer-noschedule namespace: kube-system spec: schedule: "*/20 * * * *" concurrencyPolicy: Forbid successfulJobsHistoryLimit: 1 failedJobsHistoryLimit: 3 jobTemplate: spec: backoffLimit: 1 template: spec: serviceAccountName: node-prefer-noschedule restartPolicy: OnFailure containers: - name: taint image: bitnami/kubectl@sha256:554ab88b1858e8424c55de37ad417b16f2a0e65d1607aa0f3fe3ce9b9f10b131 command: - /usr/bin/env - bash - -ceu - | for node in titan-13 titan-15 titan-17 titan-19; do if kubectl get node "${node}" >/dev/null 2>&1; then kubectl label node "${node}" atlas.bstein.dev/spillover=true --overwrite=true kubectl taint node "${node}" longhorn=true:PreferNoSchedule --overwrite=true kubectl taint node "${node}" atlas.bstein.dev/spillover=true:PreferNoSchedule --overwrite=true else echo "skipping missing node ${node}" fi done