Reference
API Reference
Packages:
virtex.ai/v1
Resource Types:
VoithosAutoscalingGroup
Group resources according to a common voithos autoscaling configuration.
| Name | Type | Description | Required |
|---|---|---|---|
| apiVersion | string | virtex.ai/v1 | true |
| kind | string | VoithosAutoscalingGroup | true |
| metadata | object | Refer to the Kubernetes API documentation for the fields of the metadata field. |
true |
| spec | object | The spec field of the VoithosAutoscalingGroup resource. | true |
| status | object | Voithos system populated field to track the status of the autoscaling group. This field provides useful information for debugging resource selection rules. | false |
VoithosAutoscalingGroup.spec
The spec field of the VoithosAutoscalingGroup resource.
| Name | Type | Description | Required |
|---|---|---|---|
| selector | object | Rules for selecting kubernetes resources to include in the autoscaling group. A given kubernetes resource can only be assigned to a single autoscaling group. Autoscaling groups that match against resources already matched against non-default autoscaling groups will be assigned a status of inactive and ignored until the collisions are resolved. |
true |
| configuration | object | Voithos autoscaling configuration specification. | false |
VoithosAutoscalingGroup.spec.selector
Rules for selecting kubernetes resources to include in the autoscaling group. A given kubernetes resource can only be assigned to a single autoscaling group. Autoscaling groups that match against resources already matched against non-default autoscaling groups will be assigned a status of inactive and ignored until the collisions are resolved.
| Name | Type | Description | Required |
|---|---|---|---|
| kinds | []enum | The kubernetes kinds to be matched against. Enum: {DaemonSet, Deployment, ReplicaSet, StatefulSet, Job, CronJob} |
false |
| labelSelector | object | Label selector string to match resources against. All kubernetes label selection operators are supported. | false |
| namespaces | object | The namespaces in which to match resources against. All non Kubernetes control plane namespaces will be included when this field is left empty. | false |
| workloads | object | The workload names (i.e., metadata.name) to match resources against. All names can be matched using ["*"] wildcard, or by omitting this field. |
false |
VoithosAutoscalingGroup.spec.selector.labelSelector
Label selector string to match resources against. All kubernetes label selection operators are supported.
| Name | Type | Description | Required |
|---|---|---|---|
| matchExpressions | []object | Array of Kubernetes MatchExpressions. | false |
| matchLabels | map[string]string | Kubernetes MatchLabels. | false |
VoithosAutoscalingGroup.spec.selector.labelSelector. matchExpressions[]
| Name | Type | Description | Required |
|---|---|---|---|
| key | string | The MatchExpression key. | true |
| operator | enum | The MatchExpression operator. Enum: In, NotIn |
true |
| values | []string | The MatchExpression values. | false |
VoithosAutoscalingGroup.spec.selector.namespaces
The namespaces in which to match resources against. All non Kubernetes control plane namespaces will be included when this field is left empty.
| Name | Type | Description | Required |
|---|---|---|---|
| operator | enum | The operator to use in the matchExpression. Enum: In, NotIn |
true |
| values | []string | Array of values to match/filter against. | true |
VoithosAutoscalingGroup.spec.selector.workloads
The workload names (i.e., metadata.name) to match resources against. All names can be matched using ["*"] wildcard, or by omitting this field.
| Name | Type | Description | Required |
|---|---|---|---|
| operator | enum | The operator used to select workloads. Enum: In, NotIn |
true |
| values | []string | Array of values to match/filter against. | true |
VoithosAutoscalingGroup.spec.configuration
Voithos autoscaling configuration specification.
| Name | Type | Description | Required |
|---|---|---|---|
| flags | map[string]string | Interface to configure the Voithos algorithm. This schema is not public. | false |
| patching | object | Configures the timing of patches that Voithos will apply to the specified workload(s). Note that this does not enable patching. | false |
| resources | object | Configures how Voithos scales resources for the specified Workload(s). | false |
VoithosAutoscalingGroup.spec.configuration.patching
Configures the timing of patches that Voithos will apply to the specified workload(s). Note that this does not enable patching.
| Name | Type | Description | Required |
|---|---|---|---|
| allowReactiveUpdates | boolean | Allow unscheduled updates to the specified workload(s) during spurious load fluctuations. Only applies to resources for which enablePatching=true. Default: true |
false |
| schedule | string | Target time duration between container resource updates for the specified workload(s). The implied units are seconds unless otherwise specified with a qualified suffix in the set (s=seconds,m=minutes,h=hours,d=days,w=weeks). Default: 1d |
false |
VoithosAutoscalingGroup.spec.configuration.resources
Configures how Voithos scales resources for the specified Workload(s).
| Name | Type | Description | Required |
|---|---|---|---|
| containers | []object | Configures how Voithos scales container resources vertically. To specialize configurations for specific containers, use the .resources[].container field. Note that if a container name is specified, the configuration applies to all container resources (cpu, memory); default values will be injected into any missing fields, not values from other configuations with the container left blank (i.e. wildcard captures). |
false |
| horizontalPodAutoscalers | []object | Configures how Voithos scales container resources when there is a Kubernetes HPA controlling the workload. | false |
VoithosAutoscalingGroup.spec.configuration.resources. containers[]
| Name | Type | Description | Required |
|---|---|---|---|
| resources | object | Configures container resources for the specified container(s). | true |
| container | string | Container name to configure. Leaving this blank serves as a wildcard capture, and will only be overridden by a configuration with an explicit container name match. | false |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources
Configures container resources for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| limits | object | Configures container resource limits for the specified container(s). | false |
| requests | object | Configures container resource requests for the specified container(s). | false |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources.limits
Configures container resource limits for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| cpu | object | Configures container cpu limits for the specified container(s). | false |
| memory | object | Configures container memory limits for the specified container(s). | false |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources.limits.cpu
Configures container cpu limits for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| enablePatching | boolean | Allow Voithos to patch cpu limits for the specified container(s). Default: false |
false |
| max | string | Container cpu limits upper bound for the specified container(s). | false |
| min | string | Container cpu limits lower bound for the specified container(s). Default: 1m |
false |
| target | object | Container cpu limits optimization settings for the specified container(s). | false |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources.limits.cpu.target
Container cpu limits optimization settings for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| requestsRatio | number | Cpu limit-requests ratio for the specified container(s). Default: 2 |
true |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources.limits.memory
Configures container memory limits for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| enablePatching | boolean | Allow Voithos to patch memory limits for the specified container(s). Default: false |
false |
| max | string | Container memory limits upper bound for the specified container(s). | false |
| min | string | Container memory limits lower bound for the specified container(s). Default: 10Ki |
false |
| target | object | Container memory limits optimization settings for the specified container(s). | false |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources.limits.memory.target
Container memory limits optimization settings for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| requestsRatio | number | Memory limit-requests ratio for the specified container(s). Default: 2 |
true |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources.requests
Configures container resource requests for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| cpu | object | Configures container cpu requests for the specified container(s). | false |
| memory | object | Configures container memory requests for the specified container(s). | false |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources.requests.cpu
Configures container cpu requests for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| enablePatching | boolean | Allow Voithos to patch cpu requests for the specified container(s). Default: false |
false |
| max | string | Container cpu requests upper bound for the specified container(s). | false |
| min | string | Container cpu requests lower bound for the specified container(s). Default: 1m |
false |
| target | object | Container cpu requests optimization settings for the specified container(s). | false |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources.requests.cpu.target
Container cpu requests optimization settings for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| bufferPercentage | integer | Add a buffer to the percentile-derived cpu requests for the specified container(s). The formula is requests = raw_requests * (1 + bufferPercentage / 100). Default: 15 |
false |
| percentile | integer | Derive cpu requests from a specified percentile of the estimated cpu usage distribution for the specified container(s). Default: 97 |
false |
| utilization | integer | Target cpu utilization percentage for the specified container(s). If specified, the percentile and bufferPercentage fields will be ignored. | false |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources.requests.memory
Configures container memory requests for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| enablePatching | boolean | Allow Voithos to patch memory requests for the specified container(s). Default: false |
false |
| max | string | Container memory requests upper bound for the specified container(s). | false |
| min | string | Container memory requests lower bound for the specified container(s). Default: 10Ki |
false |
| target | object | Container memory requests optimization settings for the specified container(s). | false |
VoithosAutoscalingGroup.spec.configuration.resources. containers[].resources.requests.memory.target
Container memory requests optimization settings for the specified container(s).
| Name | Type | Description | Required |
|---|---|---|---|
| bufferPercentage | integer | Add a buffer to the percentile-derived memory requests for the specified container(s). The formula is requests = raw_requests * (1 + bufferPercentage / 100). Default: 20 |
false |
| percentile | integer | Derive memory requests from a specified percentile of the estimated memory usage distribution for the specified container(s). Default: 99 |
false |
| utilization | integer | Target memory utilization percentage for the specified container(s). If specified, the percentile and bufferPercentage fields will be ignored. | false |
VoithosAutoscalingGroup.spec.configuration.resources. horizontalPodAutoscalers[]
| Name | Type | Description | Required |
|---|---|---|---|
| metrics | []object | Configures how Voithos optimizes the autoscaling/v2 MetricSpec field of the specified HPA(s) metric(s). |
true |
| name | string | Name of the Kubernetes HPA object. Leaving this blank serves as a wildcard capture, and will only be overridden by a configuration with an explicit HPA name match. | false |
VoithosAutoscalingGroup.spec.configuration.resources. horizontalPodAutoscalers[].metrics[]
| Name | Type | Description | Required |
|---|---|---|---|
| containerResource | object | Configures ContainerResource HPA metric targets. | false |
| resource | object | Configures Resource HPA metric targets. | false |
| type | enum | HPA metric target type. Enum: ContainerResource, Resource |
false |
VoithosAutoscalingGroup.spec.configuration.resources. horizontalPodAutoscalers[].metrics[]. containerResource
Configures ContainerResource HPA metric targets.
| Name | Type | Description | Required |
|---|---|---|---|
| name | enum | Name of the container resource being scaled on. Enum: cpu, memory |
true |
| target | object | References the autoscaling/v2 MetricTarget field of the specified HPA(s) ContainerResource metric. |
true |
| container | string | Name of the container referenced by the containerResource HPA metric. Leaving this blank serves as a wildcard capture, and will only be overridden by a configuration with type ContainerResource and an explicit container name match. |
false |
VoithosAutoscalingGroup.spec.configuration.resources. horizontalPodAutoscalers[].metrics[]. containerResource.target
References the autoscaling/v2 MetricTarget field of the specified HPA(s) ContainerResource metric.
| Name | Type | Description | Required |
|---|---|---|---|
| averageUtilization | object | Configures how Voithos optimizes the HPA target container resource utilization. | false |
| averageValue | object | Configures how Voithos optimizes the HPA target container resource value. | false |
| type | enum | Specifies the HPA metric target type being configured. Enum: AverageValue, Utilization |
false |
VoithosAutoscalingGroup.spec.configuration.resources. horizontalPodAutoscalers[].metrics[]. containerResource.target.averageUtilization
Configures how Voithos optimizes the HPA target container resource utilization.
| Name | Type | Description | Required |
|---|---|---|---|
| enablePatching | boolean | Allow Voithos to patch the target resource utilization for the specified HPA(s). Default: false |
false |
| max | integer | Target memory utilization upper bound for specified HPA(s) metric. | false |
| min | integer | Target memory utilization lower bound for specified HPA(s) metric. | false |
VoithosAutoscalingGroup.spec.configuration.resources. horizontalPodAutoscalers[].metrics[]. containerResource.target.averageValue
Configures how Voithos optimizes the HPA target container resource value.
| Name | Type | Description | Required |
|---|---|---|---|
| enablePatching | boolean | Allow Voithos to patch the target resource averageValue for the specified HPA(s). Default: false |
false |
| max | string | Target memory averageValue upper bound for specified HPA(s) metrics. | false |
| min | string | Target memory averageValue lower bound for specified HPA(s) metrics. | false |
VoithosAutoscalingGroup.spec.configuration.resources. horizontalPodAutoscalers[].metrics[]. resource
Configures Resource HPA metric targets.
| Name | Type | Description | Required |
|---|---|---|---|
| name | enum | Name of the container resource being scaled on. Enum: cpu, memory |
true |
| target | object | References the autoscaling/v2 MetricTarget field of the specified HPA(s) Resource metric(s). |
true |
VoithosAutoscalingGroup.spec.configuration.resources. horizontalPodAutoscalers[].metrics[]. resource.target
References the autoscaling/v2 MetricTarget field of the specified HPA(s) Resource metric(s).
| Name | Type | Description | Required |
|---|---|---|---|
| averageUtilization | object | Configures how Voithos optimizes the HPA target resource utilization. | false |
| averageValue | object | Configures how Voithos optimizes the HPA target resource value. | false |
| type | enum | Specifies the HPA metric target type being configured. Enum: AverageValue, Utilization |
false |
VoithosAutoscalingGroup.spec.configuration.resources. horizontalPodAutoscalers[].metrics[]. resource.target.averageUtilization
Configures how Voithos optimizes the HPA target resource utilization.
| Name | Type | Description | Required |
|---|---|---|---|
| enablePatching | boolean | Allow Voithos to patch the target resource utilization for the specified HPA(s). Default: false |
false |
| max | integer | Target memory utilization upper bound for specified HPA(s) metrics. | false |
| min | integer | Target memory utilization lower bound for specified HPA(s) metrics. | false |
VoithosAutoscalingGroup.spec.configuration.resources. horizontalPodAutoscalers[].metrics[]. resource.target.averageValue
Configures how Voithos optimizes the HPA target resource value.
| Name | Type | Description | Required |
|---|---|---|---|
| enablePatching | boolean | Allow Voithos to patch the target resource averageValue for the specified HPA(s). Default: false |
false |
| max | string | Target memory averageValue upper bound for specified HPA(s) metrics. | false |
| min | string | Target memory averageValue lower bound for specified HPA(s) metrics. | false |
VoithosAutoscalingGroup.status
Voithos system populated field to track the status of the autoscaling group. This field provides useful information for debugging resource selection rules.
| Name | Type | Description | Required |
|---|---|---|---|
| status | enum | The status of the autoscaling group. Enum: active, inactive Default: active |
true |
| collisions | map[string]string | A map between the kubernetes resources and its parent autoscaling group name. | false |
| matches | map[string]string | A map between each kubernetes resource matched and the timestamp at which it was matched. | false |
| numCollisions | integer | Number of kubernetes resource collisions by the autoscaling group’s selection rules. Default: 0 |
false |
| numMatched | integer | Number of kubernetes resources matched by the autoscaling group’s selection rules. Default: 0 |
false |