1# Default values for descheduler.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
8 repository: cgr.dev/scratch-images/test-tmp/descheduler
9 # Overrides the image tag whose default is the chart version
10 tag: 0.36.0-r1@sha256:ec5bc23e3d93cf29c51635321e5085f6c0fb176903d98647e502af28dc7be215
11 pullPolicy: IfNotPresent
13# - name: container-registry-secret
22 - containerPort: 10258
25 allowPrivilegeEscalation: false
30 readOnlyRootFilesystem: true
33# podSecurityContext -- [Security context for pod](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)
39# -- Override the deployment namespace; defaults to .Release.Namespace
41# labels that'll be applied to all resources
43cronJobApiVersion: "batch/v1"
44schedule: "*/2 * * * *"
46# startingDeadlineSeconds: 200
47# successfulJobsHistoryLimit: 3
48# failedJobsHistoryLimit: 1
49# ttlSecondsAfterFinished: 600
50# activeDeadlineSeconds: 60 # Make sure this value is SHORTER than the cron interval.
53# Required when running as a Deployment
54deschedulingInterval: 5m
55# Specifies the replica count for Deployment
56# Set leaderElection if you want to use more than 1 replica
57# Set affinity.podAntiAffinity rule if you want to schedule onto a node
58# only if that node is in the same zone as at least one already-running descheduler
60# Specifies whether Leader Election resources should be created
61# Required when running as a Deployment
62# NOTE: Leader election can't be activated if DryRun enabled
68# resourceLock: "leases"
69# resourceName: "descheduler"
70# resourceNamespace: "kube-system"
76# Recommended to use the latest Policy API version supported by the Descheduler app version
77deschedulerPolicyAPIVersion: "descheduler/v1alpha2"
78# deschedulerPolicy contains the policies the descheduler will execute.
80 # nodeSelector: "key1=value1,key2=value2"
81 # maxNoOfPodsToEvictPerNode: 10
82 # maxNoOfPodsToEvictPerNamespace: 10
84 # - source: KubernetesMetrics
86 # collectorEndpoint: otel-collector.observability.svc.cluster.local:4317
89 # serviceNamespace: ""
91 # fallbackToNoOpProviderOnError: true
95 - name: DefaultEvictor
99 - "PodsWithLocalStorage"
102 - name: RemoveDuplicates
103 - name: RemovePodsHavingTooManyRestarts
105 podRestartThreshold: 100
106 includingInitContainers: true
107 - name: RemovePodsViolatingNodeAffinity
110 - requiredDuringSchedulingIgnoredDuringExecution
111 - name: RemovePodsViolatingNodeTaints
112 - name: RemovePodsViolatingInterPodAntiAffinity
113 - name: RemovePodsViolatingTopologySpreadConstraint
114 - name: LowNodeUtilization
128 - RemovePodsViolatingTopologySpreadConstraint
132 - RemovePodsHavingTooManyRestarts
133 - RemovePodsViolatingNodeTaints
134 - RemovePodsViolatingNodeAffinity
135 - RemovePodsViolatingInterPodAntiAffinity
136priorityClassName: system-cluster-critical
142# requiredDuringSchedulingIgnoredDuringExecution:
145# - key: kubernetes.io/e2e-az-name
151# requiredDuringSchedulingIgnoredDuringExecution:
154# - key: app.kubernetes.io/name
158# topologyKey: "kubernetes.io/hostname"
159topologySpreadConstraints: []
161# topologyKey: kubernetes.io/hostname
162# whenUnsatisfiable: DoNotSchedule
165# app.kubernetes.io/name: descheduler
170# effect: 'NoSchedule'
173 # Specifies whether RBAC resources should be created
176 # Specifies whether a ServiceAccount should be created
178 # The name of the ServiceAccount to use.
179 # If not set and create is true, a name is generated using the fullname template
181 # Specifies custom annotations for the serviceAccount
183 # Opt out of API credential automounting
185 # automountServiceAccountToken Default is not set
186 # automountServiceAccountToken: true
187# Mount the ServiceAccountToken in the Pod of a CronJob or Deployment
188# Default is not set - but only implied by the ServiceAccount
189# automountServiceAccountToken: true
191# Annotations that'll be applied to deployment
192deploymentAnnotations: {}
193cronJobAnnotations: {}
206 initialDelaySeconds: 5
209# Init containers to run before the main descheduler container
212# - name: init-myservice
214# command: ['sh', '-c', 'echo The app is running! && sleep 10']
218 # @param service.ipFamilyPolicy [string], support SingleStack, PreferDualStack and RequireDualStack
221 # @param service.ipFamilies [array] List of IP families (e.g. IPv4, IPv6) assigned to the service.
222 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/
230 apiVersion: "monitoring.coreos.com/v1"
231 # The namespace where Prometheus expects to find service monitors.
233 # Add custom labels to the ServiceMonitor resource
235 # prometheus: kube-prometheus-stack
238 insecureSkipVerify: true
240 metricRelabelings: []
242 # regex: 'descheduler_(build_info|pods_evicted)'
243 # sourceLabels: [__name__]
245 # - sourceLabels: [__meta_kubernetes_pod_node_name]
248 # targetLabel: nodename
252## Additional Volume mounts when automountServiceAccountToken is false
253# extraServiceAccountVolumeMounts:
254# - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
255# name: kube-api-access
258## Additional Volumes when automountServiceAccountToken is false
259# extraServiceAccountVolumes:
260# - name: kube-api-access
268# name: kube-root-ca.crt
273# fieldPath: metadata.namespace
275# - serviceAccountToken:
276# expirationSeconds: 3600