Chart Configuration
Voithos helm chart configuration options
Helm Value Reference
values.yaml
# =========================================================
#
# Helm Chart values for the voithos k8s autoscaling stack
#
# =========================================================
auth:
# Account email
virtexAccountEmail: ""
# Account API key
virtexApiKey: ""
# Virtex API URL
#
# Note: Voithos requires access to its API solely for
# authorization and billing purposes. It does
# not share information from your cluster.
virtexApiUrl: "https://api.virtex.ai"
registry:
# Virtex container registry
host: "registry.virtex.ai"
# Voithos software version
imageTag: "latest"
# Image pull policy
imagePullPolicy: "IfNotPresent"
storage:
# Storageclass resource name
storageClass: "standard"
# Volume access modes
#
# Note: It is recommended to change this value to
# "ReadWriteMany" if the driver specified in
# the storage class (under the `.provisioner`
# field) supports it (see Ref).
#
# Ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
volumeAccessMode: "ReadWriteOnce"
# Volume size limit
capacityLimit: "1Ti"
components:
# Note: Container resources will be adjusted by Voithos
# following installation.
controller:
logLevel: "info"
resources:
requests:
cpu: "200m"
memory: "2Gi"
limits:
cpu: "2000m"
memory: "8Gi"
podSpecAffinity: {}
collector:
logLevel: "info"
resources:
requests:
cpu: "10m"
memory: "256Mi"
limits:
cpu: "50m"
memory: "512Mi"
podSpecAffinity: {}
autoscaler:
logLevel: "info"
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "2000m"
memory: "4Gi"
podSpecAffinity: {}
api:
logLevel: "info"
resources:
requests:
cpu: "50m"
memory: "128Mi"
limits:
cpu: "100m"
memory: "256Mi"
podSpecAffinity: {}
dashboard:
logLevel: "info"
resources:
requests:
cpu: "25m"
memory: "512Mi"
limits:
cpu: "100m"
memory: "1024Mi"
podSpecAffinity: {}
kairos:
replicas: 1
resources:
requests:
cpu: "500m"
memory: "4Gi"
limits:
cpu: "2000m"
memory: "8Gi"
podSpecAffinity: {}
cassandra:
manager:
resources:
requests:
cpu: "100m"
memory: "512Mi"
limits:
cpu: "500m"
memory: "1Gi"
operator:
resources:
requests:
cpu: "100m"
memory: "512Mi"
limits:
cpu: "500m"
memory: "1Gi"
cluster:
size: 1
softPodAntiAffinity: false # Set true on single node
jvmHeapSize: "2Gi"
resources:
requests:
cpu: "1000m"
memory: "4Gi"
limits:
cpu: "2000m"
memory: "8Gi"
volumeClaimSpecResources:
requests:
storage: "10Gi"
patching:
# Note: This flag allows voithos to patch resources
# without the need to create finegrained
# permissions. Alternatively, patching permissions
# can to be granted when each voithosautoscalinggroup
# CR is created. This can be done by creating a
# Role/ClusterRole with `verbs: ["patch"]` and the
# following label:
#
# `voithosautoscalinggroups.virtex.ai/aggregate-to-controller: "true"`
#
# A full list of permissions can be found here:
# - https://voithos.virtex.ai/docs/architecture/metrics/
# - https://voithos.virtex.ai/docs/architecture/rbac/
#
# Note: Setting this to `true` (boolean) will not by
# itself trigger voithos to patch resources.
# Use the `VoithosAutoscalingGroup` custom resource
# to group resources according to a common
# autoscaling configuration, which includes the
# ability to specify which resource fields to
# optimize. Refer to the docs for more information.
provisionRBAC: true
# Namespace exclude list.
#
# This is an extra layer of safety for cluster
# administrators to specify namespaces that should NOT be
# autoscaled.
#
# Note: Recommendations will still be generated for
# resources in these namespaces.
#
# Note: This setting will never be overriden by selection
# rules specified in a voithosautoscalinggroup, or
# any associated Role or ClusterRole.
#
# Note: Voithos reserves the right to patch the namespace
# in which it is deployed. Including that namespace
# in this list will have no effect.
namespaceExcludeList:
- "kube-system"
# Voithos engine configuration
voithosConfig:
# Cluster API server FQDN
kubeApiServerURL: "https://kubernetes.default.svc.cluster.local"
# Control loop interval.
#
# The Voithos controller will generate recommendations
# for the entire cluster at this interval.
#
# Note: This sets the effective resolution at which kube
# state metrics are stored.
#
# Note: For large clusters (~100K+ workloads),
# this value may need to be increased to allow
# voithos to complete each cycle in the allotted
# time. This setting is honored with a best effort.
controlLoopIntervalSeconds: "300"
# The resolution at which container metrics get stored
#
# Note: The effective lower bound is 10, which is the
# rate at which cadvisor publishes metrics.
cadvisorScrapeIntervalSeconds: "15"
# Local host to access cadvisor metrics on node
cadvisorHost: "https://127.0.0.1:10250"
# Sets the TTL for container metrics in seconds
#
# Default is 8 weeks
metricTTL: "4838400"
# Number of `spec.configuration.patching.schedule`
# (default=1d) windows to lookback when querying resource
# metrics.
metricQueryRangeMultiplier: "14"
# Number of `spec.configuration.patching.schedule`
# (default=1d) windows of metrics data that must
# accumulate before applying autoscaling patches
# (if enabled via an autoscalinggroup).
#
# Fractional values are supported.
patchMetricSaturation: "2.0"
# Number of `spec.configuration.patching.schedule`
# (default=1d) windows of metrics data that must
# accumulate before voithos will start generating
# autoscaling recommendations.
#
# Fractional values are supported.
recommendationMetricSaturation: "0.1"
# Extra cadvisor metrics to collect
cadvisorMetricsExtras: []
# Default autoscaling group
#
# Note: This is the autoscaling group that every workload
# in the cluster is assigned to by default.
#
# Note: To customize Voithos' behavior for specific
# workloads, create a custom voithosautoscalinggroup
# with the appropriate selector field and desired
# configuation field.
#
# Note: Voithos currently supports k8s built-in workload types:
# - Deployment
# - ReplicaSet
# - DaemonSet
# - StatefulSet
# - Job
# - CronJob
#
# Note: The configuration is not intended to be specific
# to one workload type, but is a union of any set
# of configuration options. For example, having
# `DaemonSet` under the `selector.kinds` field with
# HPA settings configured is valid; in this case HPA
# patching will only occur for compatible built-in
# types with an attached HPA was also specified.
#
# Note: Voithos will not scale to zero, but is compatible
# with workloads that are scaled by KEDA. Voithos
# will infer periods of inactivity based on replica
# count when building it's recommendations.
defaultAutoscalingGroup:
selector:
kinds:
- "Deployment"
- "DaemonSet"
- "ReplicaSet"
- "StatefulSet"
- "Job"
- "CronJob"
configuration:
patching:
schedule: "1d"
allowReactiveUpdates: true
resources:
containers:
- resources:
requests:
cpu:
min: "5m"
target:
percentile: 97
bufferPercentage: 15
memory:
min: "25Ki"
target:
percentile: 99
bufferPercentage: 20
limits:
cpu:
min: "50m"
memory:
min: "100Ki"