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: AnalyzerBase

Validates 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:

list[CheckResult]

name: ClassVar[str] = 'HardwareTierMappingAnalyzer'
pydantic model domino_admin_toolkit.analyzers.karpenter_analyzer.NodepoolCapacityUtilizationAnalyzer

Bases: AnalyzerBase

Validates NodePool capacity utilization to prevent resource exhaustion

Evaluates:
  • Current utilization against defined limits

  • Warning and critical threshold breaches

  • Active node count vs expected capacity

Fields:
field critical_utilization_pct: float = 90.0

Utilization percentage threshold for critical alerts

field warning_utilization_pct: float = 80.0

Utilization percentage threshold for warnings

analyze(data)

Monitors nodepool capacity utilization to prevent job failures

Return type:

list[CheckResult]

name: ClassVar[str] = 'NodepoolCapacityUtilizationAnalyzer'
pydantic model domino_admin_toolkit.analyzers.karpenter_analyzer.NodepoolMaxWorkloadMemoryAnalyzer

Bases: AnalyzerBase

Validates 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:

list[CheckResult]

name: ClassVar[str] = 'NodepoolMaxWorkloadMemoryAnalyzer'
pydantic model domino_admin_toolkit.analyzers.karpenter_analyzer.ResourceEstimationAccuracyAnalyzer

Bases: AnalyzerBase

Validates 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

Fields:
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:

list[CheckResult]

name: ClassVar[str] = 'ResourceEstimationAccuracyAnalyzer'