VoyageAI
ai.mongodb.com / v1
apiVersion: ai.mongodb.com/v1
kind: VoyageAI
metadata:
name: example
apiVersion
string
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
object
spec object required
dataParallel object
DataParallel configures data parallel processing settings.
batching object
Batching configures batching settings for data parallel processing.
maxQueueSize
integer
MaxQueueSize is the maximum number of items in the batch queue.
format:
int32
maxWaitTimeMs
integer
MaxWaitTimeMs is the maximum time in milliseconds to wait for a batch to fill.
format:
int32
strategy
string
Strategy is the batching strategy to use.
enum:
simple, time_window
enabled
boolean
Enabled controls whether data parallel processing is enabled.
healthMonitoring object
HealthMonitoring configures health monitoring settings for data parallel workers.
activeCheckIntervalSeconds
integer
ActiveCheckIntervalSeconds is the interval in seconds between active health checks.
format:
int32
activeCheckTimeoutSeconds
integer
ActiveCheckTimeoutSeconds is the timeout in seconds for active health checks.
format:
int32
checkIntervalSeconds
integer
CheckIntervalSeconds is the interval in seconds between health checks.
format:
int32
enableActiveChecks
boolean
EnableActiveChecks controls whether active health checks are enabled.
maxConsecutiveTimeouts
integer
MaxConsecutiveTimeouts is the maximum number of consecutive timeouts before a worker is considered unhealthy.
format:
int32
maxRestartAttempts
integer
MaxRestartAttempts is the maximum number of restart attempts for an unhealthy worker.
format:
int32
restartCooldownSeconds
integer
RestartCooldownSeconds is the cooldown period in seconds between restart attempts.
format:
int32
loadBalancingStrategy
string
LoadBalancingStrategy is the strategy for distributing work across workers.
enum:
round_robin, least_loaded, token_aware
numWorkers
integer
NumWorkers is the number of data parallel workers. Nil means auto.
format:
int32
workerExecutionTimeoutSeconds
integer
WorkerExecutionTimeoutSeconds is the timeout in seconds for worker execution.
format:
int32
workerInitTimeoutSeconds
integer
WorkerInitTimeoutSeconds is the timeout in seconds for worker initialization.
format:
int32
workerQueueMaxSize
integer
WorkerQueueMaxSize is the maximum size of the worker queue.
format:
int32metrics object
Metrics configures the Prometheus metrics endpoint exposed by the server.
enabled
boolean
Enabled controls whether the Prometheus metrics endpoint is active.
Maps to SERVER__METRICS__ENABLED.
path
string
Path is the HTTP path at which Prometheus metrics are served on the
dedicated metrics port.
Maps to SERVER__METRICS__PATH.
port
integer
Port is the dedicated TCP port for the Prometheus HTTP server
(e.g. 9946).
Maps to SERVER__METRICS__PORT.
format:
int32minimum:
1maximum:
65535
model
string required
Model is the VoyageAI model to deploy.
enum:
voyage-4-large, voyage-4, voyage-4-lite, rerank-2.5, rerank-2.5-lite, voyage-context-4, voyage-code-3nodeAffinity object
NodeAffinity configures node affinity scheduling rules for VoyageAI pods.
preferredDuringSchedulingIgnoredDuringExecution []object
The scheduler will prefer to schedule pods to nodes that satisfy
the affinity expressions specified by this field, but it may choose
a node that violates one or more of the expressions. The node that is
most preferred is the one with the greatest sum of weights, i.e.
for each node that meets all of the scheduling requirements (resource
request, requiredDuringScheduling affinity expressions, etc.),
compute a sum by iterating through the elements of this field and adding
"weight" to the sum if the node matches the corresponding matchExpressions; the
node(s) with the highest sum are the most preferred.
preference object required
A node selector term, associated with the corresponding weight.
matchExpressions []object
A list of node selector requirements by node's labels.
key
string required
The label key that the selector applies to.
operator
string required
Represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
values
[]string
An array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. If the operator is Gt or Lt, the values
array must have a single element, which will be interpreted as an integer.
This array is replaced during a strategic merge patch.
matchFields []object
A list of node selector requirements by node's fields.
key
string required
The label key that the selector applies to.
operator
string required
Represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
values
[]string
An array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. If the operator is Gt or Lt, the values
array must have a single element, which will be interpreted as an integer.
This array is replaced during a strategic merge patch.
weight
integer required
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
format:
int32requiredDuringSchedulingIgnoredDuringExecution object
If the affinity requirements specified by this field are not met at
scheduling time, the pod will not be scheduled onto the node.
If the affinity requirements specified by this field cease to be met
at some point during pod execution (e.g. due to an update), the system
may or may not try to eventually evict the pod from its node.
nodeSelectorTerms []object required
Required. A list of node selector terms. The terms are ORed.
matchExpressions []object
A list of node selector requirements by node's labels.
key
string required
The label key that the selector applies to.
operator
string required
Represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
values
[]string
An array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. If the operator is Gt or Lt, the values
array must have a single element, which will be interpreted as an integer.
This array is replaced during a strategic merge patch.
matchFields []object
A list of node selector requirements by node's fields.
key
string required
The label key that the selector applies to.
operator
string required
Represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
values
[]string
An array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. If the operator is Gt or Lt, the values
array must have a single element, which will be interpreted as an integer.
This array is replaced during a strategic merge patch.
replicas
integer
Replicas is the number of VoyageAI pods to deploy.
format:
int32minimum:
1resourceRequirements object
ResourceRequirements configures resource requests and limits for the VoyageAI container.
claims []object
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
name
string required
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
request
string
Request is the name chosen for a request in the referenced claim.
If empty, everything from the claim is made available, otherwise
only the result of this request.
limits
object
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
requests
object
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
security object
Security configures TLS settings for the VoyageAI server.
tls object
TLS configures TLS for the VoyageAI server. When set, TLS is enabled.
certificateKeySecretRef object required
CertificateKeySecretRef is a reference to a Secret containing a private key and certificate for TLS.
The key and cert are expected to be PEM encoded and available at "tls.key" and "tls.crt".
This enables server-side TLS only. For mutual TLS (client certificate
verification) use a service mesh such as Istio or Linkerd.
name
string
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
server object
Server configures the VoyageAI server settings.
maxRequests
integer
MaxRequests is the maximum number of requests before a worker is restarted.
format:
int32minimum:
0
maxRequestsJitter
integer
MaxRequestsJitter is the jitter applied to MaxRequests.
format:
int32minimum:
0
port
integer
Port is the port the VoyageAI server listens on.
format:
int32minimum:
0maximum:
65535
timeout
integer
Timeout is the server request timeout in seconds.
format:
int32minimum:
1
workers
integer
Workers is the number of server workers.
format:
int32minimum:
1
version
string required
Version is the version (image tag) of the VoyageAI model image. The full
image is composed as <repository>/<model>:<version>, where the repository
is configured operator-wide via the MDB_VOYAGEAI_REPO_URL environment
variable (defaulting to quay.io/mongodb/voyageai).
minLength:
1status object
lastTransition
string
message
string
observedGeneration
integer
format:
int64
phase
string required
pvc []object
phase
string required
statefulsetName
string required
resourcesNotReady []object
errors []object
message
string
reason
string
kind
string required
ResourceKind specifies a kind of a Kubernetes resource. Used in status of a Custom Resource
message
string
name
string required
version
string
warnings
[]string
No matches. Try .spec.dataParallel for an exact path