WorkloadDescriptor field reference

WorkloadDescriptor field reference

This topic describes the fields available to configure HiberScale protections.

Top-level fields

Field Type Required Default Format / Units Description Observable signals Dependencies
apiVersion string Yes None String API version of the custom resource. For WorkloadDescriptor, use kompass.zesty.co/v1alpha1. N/A Must match Kompass API version installed in the cluster.
kind string Yes None String Object type. For HiberScale, this is always WorkloadDescriptor. N/A N/A
metadata.name string Yes None String Name of the WorkloadDescriptor object. kubectl get workloaddescriptor shows object by this name. Must be unique within the namespace.
metadata.namespace string Yes None String Namespace in which the WorkloadDescriptor is created. kubectl get workloaddescriptor -n <namespace> Must match the namespace of the workload.
spec object Yes None Object Specification of workload reference, protection options, and resources. N/A N/A

spec.workloadReference

Field Type Required Default Format / Units Description Observable signals Dependencies
apiVersion string Yes None String API version of the workload (for example, apps/v1). N/A Must correspond to an existing workload type in the cluster.
kind string Yes None String Workload type N/A Must be a Deployment type.
name string Yes None String Name of the workload that HiberScale protects. kubectl get <kind> <name> Must reference an existing workload in the same namespace.

spec.protection.spike

Field Type Required Default Format / Units Description Observable signals Dependencies
active boolean No false true / false Determines whether Kompass resumes hibernated nodes when Pods are unschedulable. kubectl get workloaddescriptor shows resumed state when Pods are pending. Requires hibernated node pool (resources) to be defined.
threshold string No None Percentage string Minimum percentage of Pods that must be unschedulable before Kompass resumes hibernated nodes. When threshold is exceeded, kubectl get qnodes shows resumed nodes. Applies only if active=true.
strategy string No manual Enum: manual - manual: user controls minReplicas. HPA changes visible with kubectl get hpa.
draining.method string No accelerated Enum: accelerated, regular Drain strategy. accelerated: Duplicates Pods and schedules duplicates on autoscaler nodes. accelerated: Total Pod count temporarily exceeds workload size during drain. None
draining.threshold string or integer No None Percentage or integer Maximum Pods that can be unscheduled simultaneously. kubectl get pods shows Pending Pods limited to threshold during drain. Requires method: regular. Has no effect when method: accelerated.

spec.resources

Field Type Required Default Format / Units Description Observable signals Dependencies
cpu string No None Kubernetes CPU Amount of vCPU allocated to hibernated nodes that protect the workload. kubectl describe qnodes shows allocated CPU. Must match supported instance sizing for the nodepool.
memory string No None Kubernetes memory Amount of memory allocated to hibernated nodes that protect the workload. kubectl describe qnodes shows allocated memory. Must match supported instance sizing for the nodepool.