Skip to content

Deployment Checklist ​

Choose how the service will run before provisioning infrastructure. If you already have an endpoint and API key, connect through the CLI quick start.

GoalDeployment pathNext step
Let the platform operate the infrastructureVolcengine hosted OpenVikingHosted service entry
Run the open-source service yourselfPython, Docker, or the open-source Helm chartServer deployment
Deploy VikingDB / OpenViking on your infrastructureKubernetes, Operators, and ovadminEnterprise Deployment

Private delivery has its own components, licensing, and configuration lifecycle. Requirements marked as private delivery do not apply to every OpenViking installation.

For every self-managed installation ​

AreaDecide before deploymentReference
WorkloadDocument count and size, vector dimensions, concurrency, ingestion frequency, retentionObservability
ModelsProvider, model name, API base, credentials, output dimensions, rate limits, timeouts, connectivity from the runtimeConfiguration
StoragePersistent workspace location, capacity, permissions, backup destination, restore procedureStorage, snapshots
Network and identityClient endpoint, TLS, DNS, proxy, administrator and application keysPublic access, authentication
OperationsOwners for alerts, upgrades, credentials, and recoveryDiagnostics

Measure capacity with representative data. A running container or a successful health probe does not demonstrate that the deployment can handle your workload.

Private delivery: versions and environment ​

Review the environment and version requirements below, then confirm component compatibility against your deployment package.

AreaRequirementVerify
OS / CPULinux, x86_64 by defaultarm64 requires matching images and binaries
KubernetesCompatibility matrix specifies 1.24+Actual version, CRDs, CNI, CSI, RBAC; no maximum version is declared
Helm / kubectlHelm 3.x, not Helm 4; kubectl within one minor of the clusterTool versions on the deployment host
Profilestandalone for demos and reproductions; cluster for cluster evaluationChoose a profile for the environment and verify replicas, scheduling, and recovery
Release combinationovadmin, VikingDB, OpenViking runtime, and Operators form a delivery setRecord ovadmin version --output json; the archive version is not the runtime version

The package gives a cluster planning reference of at least three machines with 32 CPU cores, 256 GiB RAM, and 2 TiB local disk per machine. These are not minimum requirements for open-source OpenViking or a validated capacity guarantee. Suitability depends on index size, vector dimensions, QPS, build concurrency, replicas, and dependency placement. A three-node deployment that also hosts infrastructure dependencies is a starting point for development, demos, or POCs.

Private delivery: infrastructure checklist ​

AreaConfirm
PermissionsDeployment kubeconfig; CRD and RBAC creation; Operator access to target namespaces; use the package permission matrix
Cluster exclusivityOne private delivery per Kubernetes cluster; see below
NamespacesApplication and Operator namespaces, illustrated as vikingdb and viking-system; Secret scope
SchedulingDefault cluster selectors are nodeLevel=online / nodeLevel=offline; matching labels, tolerations, and resources
RegistryFull repository prefix, delivery tags, pull credentials; validate host login and cluster pulls separately; create repositories first if the Registry does not create them on push (for example Amazon ECR)
StorageAvailable StorageClass; separate settings for VikingDB data, OpenViking workspace PVCs, and external dependencies
NetworkPod / Service DNS, API Server, dependency and model access, cluster DNS suffix, external endpoint and TLS
LicenseOffline: a license file matching the cluster fingerprint. Online: a one-time activation code and the HTTPS license endpoint, reachable from both the deployment host and the cluster. Confirm expiry, renewal, and telemetry arrangements

Review generated local-path, disk capacity, and node selectors before use. The default OpenViking workspace requests and limits are both 2 CPU / 4 GiB; these are configuration defaults, not workload sizing results.

The VikingDB defaults generated by the cluster profile assume the large machines described above; for example, viking defaults to 2 replicas at 16 CPU / 128 GiB each. Before deploying, add up replicas × requests for every component in vdb.yaml and compare the total with the allocatable capacity of the target node pools. setup apply --dry-run does not check capacity; an oversized plan only shows up after deployment as many Pending Pods.

Cluster exclusivity. The VikingDB / OpenViking CRDs are cluster-scoped, the VikingDB Operator watches all namespaces, the license webhook is always named vikingdb-license-guard.openviking.ai, and the Operator always reads licensing from the viking-system namespace. A second installation in the same cluster, even in a different application namespace, overwrites the CRDs, runs two Operators against the same resources, and competes for the webhook and license Secrets. Use separate clusters for separate environments.

Impact on shared clusters. The managed-workload.openviking.ai entry of the license webhook has no namespace selector. It validates updates and deletions of every Deployment, StatefulSet, and Job labeled app.kubernetes.io/managed-by=Helm in the cluster, with failure policy Fail. While the VikingDB Operator is unavailable, upgrades and deletions of other Helm applications in the cluster are rejected too. Assess this before sharing a cluster with other workloads, and include Operator availability in your operations scope.

The cluster delivery expects infrastructure supplied by the customer or prepared through the delivery plan:

ComponentPackage recommendationDeclared minimum / condition
MySQL8.05.7+
Redis6.2.xNo minimum declared
Kafka3.x3.0+
ZooKeeper3.7.2No minimum declared
HDFS3.3.xHigh-availability topology
HBase2.5.xDepends on HDFS and ZooKeeper

This records the package's compatibility statement, not an ongoing certification. In addition to connectivity, verify databases, topics, namespaces, directories, permissions, and initialization against the bundled infrastructure requirements. Re-run acceptance checks after dependency changes.

The HDFS model directory (default /home/vikingdb_data) must be writable by the identity VikingDB runs as. fermat and other components run as root in their containers and do not set HADOOP_USER_NAME, so under simple authentication they reach HDFS as user root. When HDFS permission checks are enabled and root is not a superuser (for example, the Amazon EMR defaults), grant root write access to the directory; see enterprise deployment.

Model integration checks ​

  • Embedding must return fixed-size dense vectors. Align actual output, embedding.dense.dimension, and vector database dimensions.
  • Confirm whether the API base includes /v1 or /api/v3. Text and multimodal embedding may use different paths and request bodies; “OpenAI compatible” alone is insufficient.
  • VLM / LLM supports understanding, summaries, and memory extraction. Validate image input for image tasks and tool calls for agents that use tools.
  • Test authentication, DNS, certificates, and timeouts from the Pod network. Connectivity from a laptop does not establish Pod connectivity.
  • Changing embedding models can change vector semantics even when dimensions match. Plan index rebuilding before switching an existing dataset.

In private delivery, OpenVikingWorkspace.spec.vectordb.dimension overrides the template's storage dimension, but does not change embedding.dense.dimension. Check both.

Continue to Enterprise Deployment and upgrades and troubleshooting.

Open source under the AGPL-3.0 License. Font licenses