1# -- Overrides the chart's name.
3# -- Overrides the chart's computed fullname.
5# -- Additional labels to add into metadata.
9# -- Additional annotations to add into metadata.
10additionalAnnotations: {}
11# -- Image pull policy for Docker images.
12imagePullPolicy: IfNotPresent
13# -- Image pull secrets for Docker images.
16 # -- Additional annotations for the Service.
19 # -- Specifies if a ServiceAccount should be created.
21 # -- The name of the ServiceAccount to use.
22 # If not set and create is true, a name is generated using the fullname template.
24 # -- Additional annotations for the ServiceAccount.
26# -- Specifies additional rules for the core ClusterRole.
27additionalClusterRoleRules: []
29 # -- Specifies whether a ServiceMonitor should be created.
31 # -- Additional labels for the ServiceMonitor.
33 # -- Relabelings for the `http-metrics` endpoint on the ServiceMonitor.
34 # For more details on relabelings, see: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
36 # -- Metric relabelings for the `http-metrics` endpoint on the ServiceMonitor.
37 # For more details on metric relabelings, see: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
39 # -- Configuration on `http-metrics` endpoint for the ServiceMonitor.
40 # Not to be used to add additional endpoints.
41 # See the Prometheus operator documentation for configurable fields https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#endpoint
43 # -- Specifies the sampleLimit for prometheus scrapes.
44 # Per-scrape limit on the number of scraped samples that will be accepted.
45 # If more than this number of samples are present after metric relabeling
46 # the entire scrape will be treated as failed. 0 means no limit.
48# -- Number of replicas.
50# -- The number of old ReplicaSets to retain to allow rollback.
51revisionHistoryLimit: 10
52# -- Strategy for updating the pod.
56# -- Additional labels for the pod.
58# -- Additional annotations for the pod.
63# -- SecurityContext for the pod.
68# -- PriorityClass name for the pod.
69priorityClassName: system-cluster-critical
70# -- Override the default termination grace period for the pod.
71terminationGracePeriodSeconds:
72# -- Bind the pod to the host network.
73# This is required when using a custom CNI.
75# -- Specify which Kubernetes scheduler should dispatch the pod.
76schedulerName: default-scheduler
77# -- Configure the DNS Policy for the pod
78dnsPolicy: ClusterFirst
79# -- Configure DNS Config for the pod
84# -- add additional initContainers to run before karpenter container starts
86# - name: list-ec2-instances
87# image: amazon/aws-cli:latest
88# command: [ 'aws', 'ec2', 'describe-instance-types']
89# -- Node selectors to schedule the pod to nodes with labels.
91 kubernetes.io/os: linux
92# -- Affinity rules for scheduling the pod. If an explicit label selector is not provided for pod affinity or pod anti-affinity one will be created from the pod selector labels.
95 requiredDuringSchedulingIgnoredDuringExecution:
98 - key: karpenter.sh/nodepool
99 operator: DoesNotExist
101 requiredDuringSchedulingIgnoredDuringExecution:
102 - topologyKey: "kubernetes.io/hostname"
103# -- Topology spread constraints to increase the controller resilience by distributing pods across the cluster zones. If an explicit label selector is not provided one will be created from the pod selector labels.
104topologySpreadConstraints:
106 topologyKey: topology.kubernetes.io/zone
107 whenUnsatisfiable: DoNotSchedule
108# -- Tolerations to allow the pod to be scheduled to nodes with taints.
110 - key: CriticalAddonsOnly
112# -- Additional volumes for the pod.
114# - name: aws-iam-token
118# - serviceAccountToken:
119# audience: sts.amazonaws.com
120# expirationSeconds: 86400
123 # -- Distinguishing container name (containerName: karpenter-controller).
124 containerName: controller
126 # -- Repository path to the controller image.
127 repository: cgr.dev/chainguard-private/karpenter
128 # -- Tag of the controller image.
130 # -- SHA256 digest of the controller image.
131 digest: sha256:49857aa6cdbb44df1327608d2f274490be3a913fa597adfeb3dd9a369f82e10b
132 # -- Additional environment variables for the controller pod.
138 # -- AppArmor profile for the controller container.
140 # -- SELinux options for the controller container.
142 # -- Seccomp profile for the controller container.
144 # -- Resources for the controller container.
146 # We usually recommend not to specify default resources and to leave this as a conscious
147 # choice for the user. This also increases chances charts run on environments with little
148 # resources, such as Minikube. If you do want to specify resources, uncomment the following
149 # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
156 # -- Additional volumeMounts for the controller container.
157 extraVolumeMounts: []
158 # - name: aws-iam-token
159 # mountPath: /var/run/secrets/eks.amazonaws.com/serviceaccount
161 # -- Additional sidecarContainer config
163 # -- Additional volumeMounts for the sidecar - this will be added to the volume mounts on top of extraVolumeMounts
164 sidecarVolumeMounts: []
166 # -- The container port to use for metrics.
169 # -- The container port to use for http health probe.
171# -- Global log level, defaults to 'info'
173# -- Log outputPaths - defaults to stdout only
176# -- Log errorOutputPaths - defaults to stderr only
179# -- Global Settings to configure Karpenter
181 # -- The maximum length of a batch window. The longer this is, the more pods we can consider for provisioning at one
182 # time which usually results in fewer but larger nodes.
183 batchMaxDuration: 10s
184 # -- The maximum amount of time with no new ending pods that if exceeded ends the current batching window. If pods arrive
185 # faster than this time, the batching window will be extended up to the maxDuration. If they arrive slower, the pods
186 # will be batched separately.
187 batchIdleDuration: 1s
188 # -- How the Karpenter scheduler should treat preferences. Preferences include preferredDuringSchedulingIgnoreDuringExecution
189 # node and pod affinities/anti-affinities and ScheduleAnyways topologySpreadConstraints. Can be one of 'Ignore' and 'Respect'
190 preferencePolicy: Respect
191 # -- How the Karpenter scheduler treats min values. Options include 'Strict' (fails scheduling when min values can't be met) and 'BestEffort' (relaxes min values when they can't be met).
192 minValuesPolicy: Strict
193 # -- Cluster CA bundle for TLS configuration of provisioned nodes. If not set, this is taken from the controller's TLS configuration for the API server.
197 # -- Cluster endpoint. If not set, will be discovered during startup (EKS only).
199 # -- If true then assume we can't reach AWS services which don't have a VPC endpoint.
200 # This also has the effect of disabling look-ups to the AWS pricing endpoint.
202 # -- Marking this true means that your cluster is running with an EKS control plane and Karpenter should attempt to discover cluster details from the DescribeCluster API.
203 eksControlPlane: false
204 # -- The VM memory overhead as a percent that will be subtracted from the total memory for all instance types. The value of `0.075` equals to 7.5%.
205 vmMemoryOverheadPercent: 0.075
206 # -- Interruption queue is the name of the SQS queue used for processing interruption events from EC2.
207 # Interruption handling is disabled if not specified. Enabling interruption handling may
208 # require additional permissions on the controller service account. Additional permissions are outlined in the docs.
209 interruptionQueue: ""
210 # -- Marking this true signals Karpenter to respect zonal shifts when making node claims.
211 # More information about Zonal Shift here: https://docs.aws.amazon.com/eks/latest/userguide/zone-shift-enable.html#zone-shift-enable-steps
212 enableZonalShift: false
213 # -- Reserved ENIs are not included in the calculations for max-pods or kube-reserved.
214 # This is most often used in the VPC CNI custom networking setup https://docs.aws.amazon.com/eks/latest/userguide/cni-custom-network.html.
216 # -- Ignore pods' DRA requests during scheduling simulations.
217 ignoreDRARequests: true
218 # -- Disable cluster state metrics and events.
219 disableClusterStateObservability: false
220 # -- Disable dry run validation for EC2NodeClasses.
222 # -- Feature Gate configuration values. Feature Gates will follow the same graduation process and requirements as feature gates
223 # in Kubernetes. More information here https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/#feature-gates-for-alpha-or-beta-features.
225 # -- nodeRepair is ALPHA and is disabled by default.
226 # Setting this to true will enable node repair.
228 # -- nodeOverlay is ALPHA and is disabled by default.
229 # Setting this will allow the use of node overlay to impact scheduling decisions
231 # -- reservedCapacity is BETA and is enabled by default.
232 # Setting this will enable native on-demand capacity reservation support.
233 reservedCapacity: true
234 # -- spotToSpotConsolidation is ALPHA and is disabled by default.
235 # Setting this to true will enable spot replacement consolidation for both single and multi-node consolidation.
236 spotToSpotConsolidation: false
237 # -- staticCapacity is ALPHA and is disabled by default.
238 # Setting this to true will enable static capacity provisioning.
239 staticCapacity: false