Experimental: GPU/KAI-related fields in this resource are subject to breaking changes. When using them, set spec.experimental.gpuKaiContract: v1alpha1-2026-07.
GlobalConfiguration defines cluster-wide controller behavior that applies across strategies and policies.
Use it to control recommendation refresh timing, proactive rescans, heartbeat reporting, global automation switches, protected namespaces, and webhook health thresholds.
Field Reference
The probe uses dry-run Pod admission, so no container runs. The secure probe defaults are supplied by Helm, not by the CRD or controller. Directly managed
GlobalConfiguration resources must specify them under spec.webhookProbe, as in the example below. Partial Helm security settings retain other chart defaults; explicit overrides remain supported.
Status Reference
Global configuration remains
IN_PROGRESS while webhook health transitions or a required reload or rescan is pending. A completed setup reports Success; a failed required operation reports Failure. Proposal sync maps current Success to APPLIED and current Failure to FAILED.
Example
Helm-Managed Mapping
The chart creates a defaultGlobalConfiguration when globalConfiguration.enabled=true.
Legacy
deployment.controllerEnv values still act as fallbacks for the default GlobalConfiguration:
If both the new
globalConfiguration.* value and the legacy value are set, the globalConfiguration.* value wins.
Multi-policy annotation keys
WhenmultiPolicyContainerRightsizingEnabled is false, resource policies use their fixed legacy request and limit annotation keys. When true, each policy writes keys shaped like <policy-prefix>/h<digest>-desired-resource-requests and <policy-prefix>/h<digest>-desired-resource-limits. GPU reactive policies use the same digest for baseline state.
A flag change converts each workload in one Kubernetes patch. Conversion across the cluster is eventual because policy reconcilers process workloads independently. Readers accept fixed and hashed keys throughout the transition. A selected recommendation that changes key restarts rollback monitoring because rollback fingerprints remain key-sensitive.
Each matching policy adds up to two annotations, or three for GPU reactive state. Kubernetes limits total annotation data on an object to 256 KiB. Keep the number and payload size of overlapping policies within that limit.
Heartbeat Reporting
Proposal Sync Toggle
spec.proposalSyncEnabled is top-level operational switch for proposal-backed resource management.
When the field is omitted from a directly managed GlobalConfiguration, proposal sync is disabled. The Helm chart sets it to true by default.
- When
true, the controller continues syncing proposals on the configured proposal sync interval. - When
false, the controller skips proposal sync and deletes all controller-managed proposal-backed resources. - Re-enabling triggers immediate proposal sync on next reconcile.
- For local dev,
PROPOSALS_PATH=... make local-deployopts proposal sync in automatically in helper flow.
rightsizing.kubex.ai/v1alpha1, including both namespaced and cluster-scoped resources.
The controller periodically sends health and activity status to Kubex. This allows the Kubex platform to monitor controller health, display the running version, and track automation activity across your clusters.
The controller version included in heartbeat payloads is read from the IMAGE_TAG environment variable, which the Helm chart automatically injects into the manager container from the image.tag Helm value. In airgapped environments, ensure this value matches your mirrored image tag so Kubex can accurately report the running version.
Webhook Probe Pod Settings
The pod admission webhook health probe creates a dry-run Pod usingspec.webhookProbe.
spec.webhookProbe.imagecontrols the probe Pod container imagespec.webhookProbe.labelsandspec.webhookProbe.annotationsallow cluster-specific admission labels and annotationsspec.webhookProbe.resources,spec.webhookProbe.podSecurityContext, andspec.webhookProbe.securityContexthelp satisfy admission policies that require explicit resource or security settings
spec.webhookProbe.image is unset, the Helm chart defaults it to the controller image (image.repository:image.tag). This allows airgapped environments to mirror only the controller image and have probe admissions use that same image by default.
On EKS clusters, the probe pod is labeled with eks.amazonaws.com/skip-pod-identity-webhook: "true" so the AWS-managed pod identity webhook skips this dry-run probe admission.
Verification
Use these commands to inspect the rendered and live resource:Related
- For cluster-wide operating guidance, see Advanced Configuration.
- For Helm values, see Configuration Reference.
- For same-kind policies with separate container scopes, see Multi-Policy Container Rightsizing.
- For protected namespaces and recommendation filtering, see Safety Controls Reference.

