domino_admin_toolkit.analyzers.karpenter_analyzer module
Karpenter-specific analyzers for validating node provisioning and capacity management.
This module contains analyzers that validate Karpenter’s resource estimation accuracy, NodePool capacity utilization, and hardware tier mapping configuration.
- pydantic model domino_admin_toolkit.analyzers.karpenter_analyzer.HardwareTierMappingAnalyzer
Bases:
AnalyzerBaseValidates hardware tier to NodePool mapping configuration
- Evaluates:
Required hardware tiers have corresponding NodePools
GPU and Neuron tiers have proper taints configured
Instance type consistency within hardware tiers
- Fields:
-
field required_hardware_tiers:
list= ['compute', 'gpu', 'neuron'] List of required hardware tiers that must have proper nodepool mapping
- analyze(data)
Ensures hardware tiers are properly mapped to Karpenter nodepools
- Return type:
- name: ClassVar[str] = 'HardwareTierMappingAnalyzer'
- pydantic model domino_admin_toolkit.analyzers.karpenter_analyzer.NodepoolCapacityUtilizationAnalyzer
Bases:
AnalyzerBaseValidates NodePool capacity utilization to prevent resource exhaustion
- Evaluates:
Current utilization against defined limits
Warning and critical threshold breaches
Active node count vs expected capacity
- analyze(data)
Monitors nodepool capacity utilization to prevent job failures
- Return type:
- name: ClassVar[str] = 'NodepoolCapacityUtilizationAnalyzer'
- pydantic model domino_admin_toolkit.analyzers.karpenter_analyzer.NodepoolMaxWorkloadMemoryAnalyzer
Bases:
AnalyzerBaseValidates maximum workload memory capacity for NodePools.
This analyzer calculates the maximum hardware tier memory that can fit on each NodePool’s instance type after accounting for Karpenter system overhead and Domino sidecar containers.
- Evaluates:
Whether instance type data is available for the NodePool
The calculated maximum hardware tier memory for informational purposes
- The calculation uses:
Karpenter formula: EC2_memory * 0.925 - (255 + 11 * MAX_PODS)
Domino sidecar overhead: 2574 MiB (istio-proxy + executor + nginx)
- Fields:
- analyze(data)
Reports maximum workload memory capacity for NodePools
- Return type:
- name: ClassVar[str] = 'NodepoolMaxWorkloadMemoryAnalyzer'
- pydantic model domino_admin_toolkit.analyzers.karpenter_analyzer.ResourceEstimationAccuracyAnalyzer
Bases:
AnalyzerBaseValidates Karpenter resource estimation accuracy against actual node capacity
- Evaluates:
Resource efficiency to avoid excessive waste
Node readiness state after provisioning
Reasonable overprovisioning bounds for cost control
-
field max_overprovisioning_ratio:
float= 100.0 Maximum ratio of actual to requested resources (cost control threshold)
-
field min_efficiency_ratio:
float= 0.01 Minimum ratio of requested to actual resources (1% efficiency minimum)
- analyze(data)
Validates resource efficiency for NodeClaims
- Return type:
- name: ClassVar[str] = 'ResourceEstimationAccuracyAnalyzer'