Skip to search

MongoDBSearch

mongodb.com / v1

apiVersion: mongodb.com/v1 kind: MongoDBSearch metadata: name: example
View raw schema
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
autoEmbedding object
AutoEmbedding configures MongoDB Search to generate vector embeddings automatically through an embedding model service. These values populate the `embedding` section of the mongot config.
embeddingModelAPIKeySecret object
EmbeddingModelAPIKeySecret references a Secret holding the embedding model's API keys. The Secret must contain two keys: query-key and indexing-key. It may be omitted only when ProviderEndpoint points to the Kubernetes Service exposing the self-hosted Voyage AI embedding model managed by this operator. For any other endpoint the secret remains required; the operator validates this at reconcile time.
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
providerEndpoint string
ProviderEndpoint is the URL of the embedding model service.
clusters []object required
Clusters configures the deployment per Kubernetes cluster: one entry for a single cluster (name optional), or one entry per cluster for multi-cluster (name required, len > 1). This is the place to set replicas, resources, storage, and StatefulSet overrides.
minItems: 1
maxItems: 50
advancedMongotConfigs object
AdvancedMongotConfigs is an opaque block of mongot settings rendered verbatim under the advancedConfigs key of this cluster's mongot config file. The operator neither reads nor modifies it; operator-generated settings are unaffected.
index integer
Index is the stable integer in per-cluster resource names. Required on every entry of a multi-cluster spec, and even on a single entry when each member cluster runs its own operator. Changing it renames this cluster's resources, orphaning those at the old index.
format: int32
minimum: 0
maximum: 999
jvmFlags []string
JVMFlags sets the `--jvm-flags` option for this cluster's mongot pods.
loadBalancer object
LoadBalancer configures how mongod/mongos connect to this cluster's mongot (managed Envoy or user-provided). Every cluster must agree on the mode: either all clusters set managed, all set unmanaged, or none set loadBalancer.
managed object
Managed configures an operator-managed Envoy load balancer.
deployment object
Deployment holds optional overrides merged into the operator-created Envoy Deployment. Follows the same convention as spec.statefulSet on MongoDB resources.
metadata object
DeploymentMetadataWrapper is a wrapper around Labels and Annotations
annotations object
labels object
spec object required
externalHostname string
ExternalHostname is the hostname Envoy expects for SNI matching on incoming requests. For sharded clusters, may contain a {shardName} placeholder. In multi-cluster deployments, every cluster's hostname must be distinct. Required when MongoDB is externally managed. Ignored for operator-managed MongoDB.
minMongotReadyReplicas integer
MinMongotReadyReplicas is the minimum number of ready mongot replicas in a group before this mongot group can be considered ready and envoy routes real traffic to it. Until this threshold is met, traffic for that shard is forwarded to a healthy mongot group with the routed_from_another_shard header (returning empty results). Defaults to 1 if not specified.
format: int32
minimum: 1
replicas integer
Replicas is the number of Envoy proxy pods to deploy. Defaults to 1 if not specified.
format: int32
minimum: 1
resourceRequirements object
ResourceRequirements for the Envoy container. When not set, defaults to requests: {cpu: 100m, memory: 128Mi}, limits: {cpu: 500m, memory: 512Mi}.
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/
retryPolicy object
RetryPolicy configures Envoy retry behavior for individual gRPC streams to upstream mongot clusters. When not set, retries are enabled with sensible defaults (2 retries, 60s per-try timeout).
numRetries integer
NumRetries is the maximum number of retries per request. Defaults to 2 if not specified (3 total attempts including the original).
format: int32
minimum: 1
perTryTimeout string
PerTryTimeout is the timeout for each retry attempt (including the original). Specified as a Go duration string (e.g., "60s", "30s"). Defaults to "60s" if not specified.
routerHostname string
RouterHostname is the host:port a sharded cluster's mongos (router) uses to reach this cluster's mongot via the managed Envoy LB, and the SNI hostname Envoy matches for the cluster-level filter chain. Unlike ExternalHostname it is shard-agnostic and must NOT contain a {shardName} placeholder. This value is per-cluster: in multi-cluster deployments each cluster has its own Envoy LB and its mongos routes to it, so every cluster's RouterHostname must be distinct. Required for an external sharded MongoDB source with managed LB; ignored for ReplicaSet sources and operator-managed MongoDB. Must be covered by the Envoy LB server certificate SANs.
unmanaged object
Unmanaged configures a user-provided (BYO) L7 load balancer.
endpoint string
Endpoint is the full host:port of the BYO load balancer written into mongod config. For sharded clusters, must contain a {shardName} placeholder.
name string
Name is the Kubernetes cluster name. Required and immutable when len(spec.clusters) > 1; optional in the single-cluster case. MaxLength is 253 — the DNS subdomain limit Kubernetes cluster names follow.
maxLength: 253
persistence object
Persistence configures this cluster's mongot persistent volume. Defaults to 10GB if unset.
multiple object
data object
labelSelector object
storage string
storageClass string
journal object
labelSelector object
storage string
storageClass string
logs object
labelSelector object
storage string
storageClass string
single object
labelSelector object
storage string
storageClass string
replicas integer
Replicas is the number of mongot pods for this cluster's StatefulSet. For ReplicaSet sources this is the total; for sharded sources it is per shard. When Replicas > 1, a load balancer (spec.clusters[].loadBalancer) is required to distribute traffic across mongot instances. Set to 0 to take mongot offline: the StatefulSet scales to 0 while the MongoDBSearch CR stays.
format: int32
minimum: 0
resourceRequirements object
ResourceRequirements configures resource requests and limits for this cluster's mongot pods.
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/
shardOverrides []object
ShardOverrides applies per-shard sizing exceptions within this cluster, for external sharded sources only. Each entry layers its set sizing fields onto this cluster's resolved values for the named shards.
jvmFlags []string
JVMFlags replaces the cluster's jvmFlags for these shards when non-empty.
persistence object
Persistence replaces the cluster's mongot persistent volume config for these shards.
multiple object
data object
labelSelector object
storage string
storageClass string
journal object
labelSelector object
storage string
storageClass string
logs object
labelSelector object
storage string
storageClass string
single object
labelSelector object
storage string
storageClass string
replicas integer
Replicas replaces the cluster's mongot replica count for these shards. Set to 0 to take these shards' mongot offline.
format: int32
minimum: 0
resourceRequirements object
ResourceRequirements replaces the cluster's mongot resource requests/limits for these shards.
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/
shardNames []string required
ShardNames are the shards (within this cluster) this override applies to. Each must exist in spec.source.external.shardedCluster.shards[].
minItems: 1
statefulSet object
StatefulSetConfiguration is deep-merged onto the cluster's StatefulSet override for these shards.
metadata object
StatefulSetMetadataWrapper is a wrapper around Labels and Annotations
annotations object
labels object
spec object required
statefulSet object
StatefulSetConfiguration is applied to this cluster's mongot StatefulSet at the end of the reconcile loop, for customizations not exposed as first-class fields.
metadata object
StatefulSetMetadataWrapper is a wrapper around Labels and Annotations
annotations object
labels object
spec object required
syncSourceSelector object
SyncSourceSelector picks which mongods this cluster's mongot fleet syncs from.
matchTagSets []object
MatchTagSets selects sync-source mongods by replica-set tags: an ordered list of tag sets passed to mongot's syncSource.replicationReader (secondaryPreferred). mongot syncs from the first set with matches; a trailing {} is a match-any fallback.
maxItems: 50
featureFlags object
FeatureFlags configures mongot feature flags. When a flag is set to true in the CR, it is rendered into the mongot config YAML. When omitted or false, the flag is not included in mongot config and mongot uses its built-in defaults.
enableOverloadRetrySignal boolean
EnableOverloadRetrySignal enables the OVERLOAD_RETRY_SIGNAL feature in mongot, allowing it to signal load shedding to upstream proxies (e.g., Envoy) via gRPC RESOURCE_EXHAUSTED status codes. Defaults to true.
logLevel string
Configure verbosity of mongot logs. Defaults to INFO if not set.
enum: TRACE, DEBUG, INFO, WARN, ERROR
observability object
Observability configures observability features (e.g. Prometheus endpoint and metrics forwarding to Ops Manager).
metricsForwarder object
MetricsForwarder configures a metrics forwarder Deployment that scrapes mongot Prometheus metrics and forwards them to Ops Manager.
deployment object
Deployment holds optional overrides merged into the operator-created metrics forwarder Deployment.
metadata object
DeploymentMetadataWrapper is a wrapper around Labels and Annotations
annotations object
labels object
spec object required
mode string
Mode controls whether the metrics forwarder Deployment is created. Auto (default): enabled for internal MongoDB sources, and for external sources when OpsManager is set. Enabled: always create the metrics forwarder. Disabled: never create the metrics forwarder.
enum: auto, enabled, disabled
opsManager object
OpsManager holds the Ops Manager project and credentials configuration for the metrics forwarder. If not set, the operator derives the connection details from the source MongoDB resource's connection spec.
agentCredentials object required
AgentCredentials is a reference to a Secret containing the Ops Manager Agent API key.
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
projectConfigMapRef object required
ProjectConfigMapRef is a reference to a ConfigMap containing OM Project configuration.
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
resourceRequirements object
ResourceRequirements for the metrics forwarder 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/
prometheus object
Prometheus configures the Prometheus metrics endpoint in mongot. By default the endpoint is enabled on port 9946.
mode string
Mode controls whether the Prometheus metrics endpoint in mongot is enabled. Defaults to enabled.
port integer
Port where metrics endpoint will be exposed on. Defaults to 9946.
minimum: 0
maximum: 65535
security object
Security holds the TLS settings for the MongoDB Search server.
tls object
TLS configures TLS for the MongoDB Search server.
certificateKeySecretRef object
CertificateKeySecret is a reference to a Secret containing a private key and certificate to use for TLS. The key and cert are expected to be PEM encoded and available at "tls.key" and "tls.crt". This is the same format used for the standard "kubernetes.io/tls" Secret type, but no specific type is required. If both CertificateKeySecret.Name and CertsSecretPrefix are specified, CertificateKeySecret.Name takes precedence.
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
certsSecretPrefix string
CertsSecretPrefix is a prefix used to derive the TLS secret name. When set, the operator will look for a secret named "{prefix}-{resourceName}-search-cert". If CertificateKeySecret.Name is also specified, that takes precedence over this field.
keyFilePasswordSecretRef object
KeyFilePasswordSecret references a Secret with the password (key: "keyFilePassword") that decrypts the password-encrypted server private key. Omit when the key is not encrypted.
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
source object
Source is the MongoDB database that MongoDB Search syncs from to build its indexes.
external object
ExternalMongoDBSource describes a MongoDB deployment the operator does not manage. Mutually exclusive with MongoDBResourceRef.
hostAndPorts []string
HostAndPorts is the list of mongod host:port seeds for replica set sources. Mutually exclusive with Sharded.
keyfileSecretRef object
mongod keyfile used to connect to the external MongoDB deployment
key string
name string required
shardedCluster object
ShardedCluster contains configuration for external sharded MongoDB clusters. Mutually exclusive with HostAndPorts.
router object required
Router contains the mongos router configuration
hosts []string required
Hosts is the list of mongos router endpoints (host:port)
minItems: 1
shards []object required
Shards is the list of shard configurations
minItems: 1
hosts []string required
Hosts is the list of mongod host:port seeds for this shard's replica set
minItems: 1
shardName string required
ShardName is the logical shard name (e.g., "shard-0").
minLength: 1
tls object
TLS configuration for the external MongoDB deployment
ca object required
CA is a reference to a ConfigMap containing the CA certificate that issued mongod's TLS certificate. The CA certificate is expected to be PEM encoded and available at the "ca.crt" key.
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
mongodbResourceRef object
MongoDBResourceRef points to an operator-managed MongoDB resource to sync from. Mutually exclusive with External.
name string required
namespace string
passwordSecretRef object
PasswordSecretRef references the Secret holding the sync-source user's password.
key string
name string required
tls object
TLS configures TLS transport settings for the sync source SCRAM connection. When set, mongot presents the specified client certificate during the TLS handshake. Only applicable when using SCRAM auth (passwordSecretRef). Mutually exclusive with X509.
clientCertificateSecretRef object required
ClientCertificateSecret is a reference to a Secret containing a TLS client certificate and key to present during the TLS handshake with the source MongoDB. Expected keys: "tls.crt", "tls.key".
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
keyFilePasswordSecretRef object
KeyFilePasswordSecret references a Secret with the password (key: "keyFilePassword") that decrypts the password-encrypted client private key. Omit when the key is not encrypted.
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
username string
Username is the sync-source user mongot authenticates as. Defaults to search-sync-source.
x509 object
X509 configures x509 client certificate authentication for the sync source connection. When set, mongot authenticates to MongoDB using x509 instead of username/password. Mutually exclusive with PasswordSecretRef and Username.
clientCertificateSecretRef object required
ClientCertificateSecret is a reference to a Secret containing the x509 client certificate and key for authenticating to the MongoDB sync source. Expected keys: "tls.crt", "tls.key".
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
keyFilePasswordSecretRef object
KeyFilePasswordSecret references a Secret with the password (key: "keyFilePassword") that decrypts the password-encrypted client private key. Omit when the key is not encrypted.
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
version string
Version of MongoDB Search (mongot) to run. If unset, the operator picks the most appropriate version.
status object
lastTransition string
loadBalancer object
LoadBalancer reports the state of the operator-managed load balancer. Only populated when spec.clusters[].loadBalancer.managed is set.
message string
phase string required
message string
metricsForwarder object
MetricsForwarder reports the state of the Ops Manager metrics forwarder.
message string
phase string required
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.autoEmbedding for an exact path