apiVersion: batch/v1
kind: CronJob
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: '{"apiVersion":"batch/v1","kind":"CronJob","metadata":{"annotations":{},"labels":{"app.kubernetes.io/instance":"descheduler","app.kubernetes.io/managed-by":"Helm","app.kubernetes.io/name":"descheduler","app.kubernetes.io/version":"0.28.0","helm.sh/chart":"descheduler-0.28.0"},"name":"descheduler","namespace":"descheduler"},"spec":{"concurrencyPolicy":"Forbid","jobTemplate":{"spec":{"template":{"metadata":{"annotations":{"checksum/config":"70349a2abc2e3d047d77f9bc37e4d284066c08115e539ac11f30805d22dfc6aa"},"labels":{"app.kubernetes.io/instance":"descheduler","app.kubernetes.io/name":"descheduler"},"name":"descheduler"},"spec":{"containers":[{"args":["--policy-config-file=/policy-dir/policy.yaml","--v=3"],"command":["/bin/descheduler"],"image":"registry.k8s.io/descheduler/descheduler:v0.28.0","imagePullPolicy":"IfNotPresent","livenessProbe":{"failureThreshold":3,"httpGet":{"path":"/healthz","port":10258,"scheme":"HTTPS"},"initialDelaySeconds":3,"periodSeconds":10},"name":"descheduler","resources":{"requests":{"cpu":"500m","memory":"256Mi"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsNonRoot":true,"runAsUser":1000},"volumeMounts":[{"mountPath":"/policy-dir","name":"policy-volume"}]}],"priorityClassName":"system-cluster-critical","restartPolicy":"Never","serviceAccountName":"descheduler","volumes":[{"configMap":{"name":"descheduler"},"name":"policy-volume"}]}}}},"schedule":"*/30
* * * *","successfulJobsHistoryLimit":1}}
'
creationTimestamp: '2021-08-30T18:59:22Z'
labels:
app.kubernetes.io/instance: descheduler
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: descheduler
app.kubernetes.io/version: 0.28.0
helm.sh/chart: descheduler-0.28.0
managedFields:
- apiVersion: batch/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:kubectl.kubernetes.io/last-applied-configuration: {}
f:labels:
.: {}
f:app.kubernetes.io/instance: {}
f:app.kubernetes.io/managed-by: {}
f:app.kubernetes.io/name: {}
f:spec:
f:concurrencyPolicy: {}
f:failedJobsHistoryLimit: {}
f:jobTemplate:
f:spec:
f:template:
f:metadata:
f:annotations:
.: {}
f:checksum/config: {}
f:labels:
.: {}
f:app.kubernetes.io/instance: {}
f:app.kubernetes.io/name: {}
f:name: {}
f:spec:
f:containers:
k:{"name":"descheduler"}:
.: {}
f:command: {}
f:imagePullPolicy: {}
f:name: {}
f:resources:
.: {}
f:requests:
.: {}
f:cpu: {}
f:memory: {}
f:securityContext:
.: {}
f:allowPrivilegeEscalation: {}
f:capabilities:
.: {}
f:drop: {}
f:privileged: {}
f:readOnlyRootFilesystem: {}
f:runAsNonRoot: {}
f:terminationMessagePath: {}
f:terminationMessagePolicy: {}
f:volumeMounts:
.: {}
k:{"mountPath":"/policy-dir"}:
.: {}
f:mountPath: {}
f:name: {}
f:dnsPolicy: {}
f:priorityClassName: {}
f:restartPolicy: {}
f:schedulerName: {}
f:securityContext: {}
f:serviceAccount: {}
f:serviceAccountName: {}
f:terminationGracePeriodSeconds: {}
f:volumes:
.: {}
k:{"name":"policy-volume"}:
.: {}
f:configMap:
.: {}
f:defaultMode: {}
f:name: {}
f:name: {}
f:successfulJobsHistoryLimit: {}
f:suspend: {}
manager: argocd-application-controller
operation: Update
time: '2021-08-30T18:59:22Z'
- apiVersion: batch/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
f:kubectl.kubernetes.io/last-applied-configuration: {}
f:labels:
f:app.kubernetes.io/version: {}
f:helm.sh/chart: {}
f:spec:
f:jobTemplate:
f:spec:
f:template:
f:metadata:
f:annotations:
f:checksum/config: {}
f:spec:
f:containers:
k:{"name":"descheduler"}:
f:args: {}
f:image: {}
f:livenessProbe:
.: {}
f:failureThreshold: {}
f:httpGet:
.: {}
f:path: {}
f:port: {}
f:scheme: {}
f:initialDelaySeconds: {}
f:periodSeconds: {}
f:successThreshold: {}
f:timeoutSeconds: {}
f:securityContext:
f:runAsUser: {}
f:schedule: {}
manager: argocd-controller
operation: Update
time: '2023-09-06T20:31:58Z'
- apiVersion: batch/v1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:lastScheduleTime: {}
manager: k3s
operation: Update
time: '2025-10-26T04:00:00Z'
name: descheduler
namespace: descheduler
resourceVersion: '3523889695'
uid: 080dbde2-b621-42fd-8559-72099f0bb1e0
spec:
concurrencyPolicy: Forbid
failedJobsHistoryLimit: 1
jobTemplate:
metadata:
creationTimestamp: null
spec:
template:
metadata:
annotations:
checksum/config: 70349a2abc2e3d047d77f9bc37e4d284066c08115e539ac11f30805d22dfc6aa
creationTimestamp: null
labels:
app.kubernetes.io/instance: descheduler
app.kubernetes.io/name: descheduler
name: descheduler
spec:
containers:
- args:
- --policy-config-file=/policy-dir/policy.yaml
- --v=3
command:
- /bin/descheduler
image: registry.k8s.io/descheduler/descheduler:v0.28.0
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 10258
scheme: HTTPS
initialDelaySeconds: 3
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: descheduler
resources:
requests:
cpu: 500m
memory: 256Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /policy-dir
name: policy-volume
dnsPolicy: ClusterFirst
priorityClassName: system-cluster-critical
restartPolicy: Never
schedulerName: default-scheduler
securityContext: {}
serviceAccount: descheduler
serviceAccountName: descheduler
terminationGracePeriodSeconds: 30
volumes:
- configMap:
defaultMode: 420
name: descheduler
name: policy-volume
schedule: '*/30 * * * *'
successfulJobsHistoryLimit: 1
suspend: false
status:
lastScheduleTime: '2025-10-26T04:00:00Z'