Reference

virtex.ai CRD API Reference

API Reference

Packages:

virtex.ai/v1

Resource Types:

VoithosAutoscalingGroup

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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[]

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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[]

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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[]

↩ Parent

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[]

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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

↩ Parent

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