Skip to content

Enterprise Deployment: Upgrades and Troubleshooting ​

Use ovadmin and Operators to update configuration, upgrade, and troubleshoot your Enterprise Deployment. For open-source container updates, see server deployment. Check delivery and runtime versions separately.

Applying configuration changes ​

ChangeSourceApply through
Model endpoint, credentials, embedding configurationSecret / ConfigMap TemplateRe-render and roll the workspace
Workspace storage or vector backendWorkspace declaration and delivery configurationworkspace update; assess data migration first
VikingDB images, scheduling, observabilityvdb.yaml / corresponding valuesPreview, then setup apply --module vikingdb
Client endpointEndpoint selection during client configuration generationRegenerate and verify caller connectivity

After editing templates, use the actual namespace:

bash
ovadmin -c "${CONFIG_DIR}/ovadmin.conf" workspace restart "${WORKSPACE_NAME}" \
  --namespace vikingdb --yes --wait

This rolls workloads; schedule a change window. Do not maintain configuration by editing the generated Secret, Pod files, or Operator-managed Deployments. Plan index rebuilding before changing embedding semantics or dimensions.

Upgrade checklist ​

  1. Record the baseline. Preserve configuration, versions, CR status, workspace inventory, and license state. Resolve unhealthy or unlicensed states first.
  2. Establish recovery. Back up workspace data, external dependency data, configuration, credentials, and license materials, with a restore procedure for each. A configuration copy is not a data backup. OpenViking snapshots do not back up the entire external infrastructure.
  3. Check the release set. Record ovadmin version --output json and version --cluster. Follow release notes for cross-x.y upgrades. Replacing an individual product image invalidates automatic reliance on the original release-set compatibility statement.
  4. Generate a candidate configuration. Run the new delivery's ovadmin init config in a separate directory. Transfer confirmed namespaces, Registry, Secret references, StorageClass, scheduling, and resource values. Do not overwrite the current directory or copy old default images.
  5. Check and preview. Run check, then setup apply --dry-run for each product being changed. Confirm image availability, dependencies, and licensing.
  6. Apply and verify. Follow the bundled upgrade order, retain command output and events, and repeat CR Ready, License Active when enabled, doctor, and each product's P0 smoke. Validate application access afterwards.

New workspace configuration defaults requests and limits to 2 CPU / 4 GiB. Preserve approved workload sizing when preparing an upgrade; defaults do not replace a capacity plan.

If an upgrade fails, stop subsequent changes and retain failure state, previews, and events. Follow the prepared rollback procedure using the previous configuration, delivery materials, and data restore where required. An image downgrade does not guarantee data compatibility. Repeat acceptance after rollback; do not bypass the Operator by editing managed child resources.

Observe before repairing ​

These commands inspect state. Set the configuration directory and replace cluster / workspace names:

bash
ovadmin -c "${CONFIG_DIR}/ovadmin.conf" version --cluster
ovadmin -c "${CONFIG_DIR}/ovadmin.conf" check
ovadmin -c "${CONFIG_DIR}/ovadmin.conf" cluster get vikingdb
ovadmin -c "${CONFIG_DIR}/ovadmin.conf" workspace get "${WORKSPACE_NAME}"
ovadmin -c "${CONFIG_DIR}/ovadmin.conf" doctor
kubectl -n vikingdb get pods,pvc,jobs,svc -o wide
kubectl -n vikingdb get events --sort-by=.lastTimestamp
SymptomInspect firstNext action
ImagePullBackOff / failed image checkFull prefix, delivery tag, image synchronization, per-namespace pull SecretsFix source configuration or synchronize images, then preview
Pod PendingLabels, taints, resource requests, PVCs, node affinityUse Pod / PVC events to distinguish scheduling from storage failures
PVC Pending / no StorageClass reportedActual classes, kubeconfig context, RBAC for listing classesSet the appropriate class explicitly; do not delete PVCs as a first response
License not ActiveFingerprint, expiry, system namespace, first CR synchronization; for online licensing, network and certificates from the cluster to the license serviceFollow the bundled licensing procedure and check status again; for online licensing, license renew <cluster-name> --yes renews manually
license checksum mismatchWhether the .vlic was issued for this cluster's fingerprint and left unmodifiedDo not edit the file; request the original .vlic again using this cluster's fingerprint.json
API Server fails after resources were submittedHost-to-API network and API healthAfter recovery, inspect cluster get / doctor instead of reinstalling
Workspace Ready but import or retrieval failsModel credentials, dimensions, API paths, limits, vector service, user keyRun OpenViking P0 and inspect the failed stage
Root Key works for administration but fails on dataKey type used by the applicationUse a User / Admin Key
Model configuration did not changeWhether source templates were edited and re-renderedRun workspace restart, then verify model requests
Internal access works but external access failsService DNS endpoint, Ingress / LB / TLSConfigure the external entry point and generate matching client configuration
VikingDB Ready, but indexes stay INIT; workspace VectorDBReady is FalsePermission denied: user=root in /var/log/tiger/hdfs_upload.log in the fermat containerGrant root write access to the HDFS model directory (see deployment); fermat retries the upload automatically. slot ... resource not enough messages in the meta logs are not necessarily the cause
Deployment edit rejected: direct update is rejected ... managed by VikingDbClusterWhether a managed workload was edited directlyEdit vdb.yaml, then run setup apply --module vikingdb
tbase-api / tbase-scan Pending while other components runNode taints; this release does not render spec.tbase tolerationsUse spec.tbase.nodeSelector to place them on untainted nodes
Apply fails with namespaces "viking-infra" not foundspec.observability.oneAgent.enabledSet to false if the matching observability stack is not deployed
open /tmp/openviking-operator-install.yaml: permission deniedA file with the same name left by another user on the deployment hostRun setup apply --module openviking with TMPDIR=<your-own-directory>

Evidence for support ​

Provide delivery versions, timestamps, affected operations, CR conditions, relevant events, the failing doctor / P0 stage, and redacted configuration differences. Exclude kubeconfig credentials, model keys, Root/User keys, license files, full Secrets, and signed download links.

An enabled collector does not establish a working monitoring platform. The package requires VictoriaMetrics / Grafana to be prepared separately through the delivery plan. Verify metric ingestion, dashboards, alert delivery, and retention. Offline licensed environments also need renewal and telemetry return arrangements under their license policy.

Open source under the AGPL-3.0 License. Font licenses