Kubernetes Utility Module
This module is used to construct standard values for the following fields:
Providers
The following providers are needed by this module:
Required Inputs
No required inputs.
Optional Inputs
The following input variables are optional (have default values):
arm_nodes_enabled
Description: Whether to allow pods to schedule on arm64 nodes
Type: bool
Default: true
az_anti_affinity_required
Description: Whether to prevent pods from being scheduled in the same availability zone
Type: bool
Default: false
az_spread_preferred
Description: Whether to enable topology spread constraints to spread pods across availability zones (with ScheduleAnyways)
Type: bool
Default: true
az_spread_required
Description: Whether to enable topology spread constraints to spread pods across availability zones (with DoNotSchedule)
Type: bool
Default: false
burstable_nodes_enabled
Description: Whether to allow pods to schedule on burstable nodes
Type: bool
Default: false
controller_nodes_enabled
Description: Whether to allow pods to schedule on EKS Node Group nodes (controller nodes)
Type: bool
Default: false
controller_nodes_required
Description: Whether the pods must be scheduled on an EKS Node Group node
Type: bool
Default: false
extra_labels
Description: Extra labels to add to the workload
Type: map(string)
Default: {}
extra_tolerations
Description: Extra tolerations to add to the pods
Type:
list(object({
key = optional(string)
operator = string
value = optional(string)
effect = optional(string)
}))
Default: []
host_anti_affinity_required
Description: Whether to prefer preventing pods from being scheduled on the same host
Type: bool
Default: true
instance_type_anti_affinity_required
Description: Whether to enable anti-affinity to prevent pods from being scheduled on the same instance type
Type: bool
Default: false
lifetime_evictions_enabled
Description: Whether to allow pods to be evicted after exceeding a certain age (configured by Descheduler)
Type: bool
Default: true
match_labels
Description: kubernetes labels to use in selectors to match the workload
Type: map(string)
Default: null
node_preferences
Description: Node label preferences for the pods
Type: map(object({ weight = number, operator = string, values = list(string) }))
Default: {}
node_requirements
Description: Node label requirements for the pods
Type: map(list(string))
Default: {}
panfactum_scheduler_enabled
Description: Whether to use the Panfactum pod scheduler with enhanced bin-packing
Type: bool
Default: false
pod_affinity_match_labels
Description: Labels to match for pod affinity
Type: map(string)
Default: {}
pull_through_cache_enabled
Description: Whether to use the ECR pull through cache for the deployed images
Type: bool
Default: true
spot_nodes_enabled
Description: Whether to allow pods to schedule on spot nodes
Type: bool
Default: true
workload_name
Description: The name of the workload. Used by observability platform for grouping pods.
Type: string
Default: null
Outputs
The following outputs are exported:
affinity
Description: The affinity spec to add to each pod
labels
Description: The labels to add to each pod
match_labels
Description: The label selector to use to match pods in this workload
scheduler_name
Description: The schedulerName to use for the pods in the workload
tolerations
Description: The tolerations to add to each pod
topology_spread_constraints
Description: The topology spread constraints to add to each pod
Usage
No notes