Skip to main content
This page covers the prerequisites for a Vantage 3.0 self-hosted install. You provision everything on this page in your own subscription and cluster; this page describes what to create, not tooling that creates it. For a complete procedure, choose Azure or Self-Managed Kubernetes.
Vantage 3.0 uses a different deployment model than 2.7 and earlier. Previous releases required ABBYY’s exact specified infrastructure, created and configured by ABBYY-provided Ansible and Azure CLI scripts. That model is not supported in 3.0:
  • You provision your own infrastructure: the Kubernetes cluster, databases, storage accounts, and key vault. ABBYY does not provide provisioning scripts, templates, or other infrastructure automation for 3.0.
  • The installer deploys Vantage Core only. Third-party software that Vantage relies on, such as ArgoCD, your service mesh and ingress controller, your secrets integration, and your monitoring stack, is installed and maintained by you, usually via Helm.
  • The documented configurations are scenarios ABBYY has tested. You can adapt your installation based on the documented examples; validating an adaptation is your responsibility.

Operator requirements

The Vantage operator runs on top of Kubernetes and ArgoCD.

Cluster-level requirements

These services and components must be present in the cluster before you install Vantage. Concrete tested versions are listed on Compatibility.

KEDA Support

Some Vantage KEDA ScaledObject resources depend on a Prometheus instance in the observability namespace. The Prometheus service must be reachable at http://prometheus-operated.observability.svc.cluster.local:9090, and it must scrape Vantage application metrics through the chart-created ServiceMonitor. See Autoscaling with KEDA for trigger behavior and verification, and Monitoring for the metrics pipeline.

Kubernetes Node Requirements

Vantage schedules its workloads across three node pools: a default pool for UI, API, and platform services, a TechCore pool for document processing workers, and a training pool for training-related workers. Label and taint the TechCore and training pools as described below so that processing work is isolated from the rest of the application.

TechCore Worker Nodes

Vantage includes several workloads referred to as “techcore workers”. These workloads carry out much of the main processing of the application (as opposed to workloads running UI and API applications). It is recommended to dedicate a pool of Kubernetes nodes specifically to these workloads. Do so by adding the label k8s.abbyy.com/techcore=true to the set of nodes on which techcore worker workloads should be scheduled, and by tainting those nodes with:

Training Worker Nodes

Further segment TechCore worker nodes by designating specific nodes that should run training-related work. Training-related workloads possess the following toleration:
Taint the nodes that should run training workloads with k8s.abbyy.com/techcore=training:NoSchedule. Only training-related workloads tolerate this taint, so no other Vantage workloads are scheduled on those nodes. See official Kubernetes documentation for more details on taints and tolerations.

Kubernetes Node Sizes and Counts

Node counts and sizes depend on the install profile and on which optional components you enable. See the Sizing guide for per-node-pool CPU, memory, and pod-count requirements for minimal and production installs.

External services

Provision these before installing. Concrete tested products are listed on Compatibility. † SendGrid and SMTP are mutually exclusive; only one is required. ¶ Required only when using the Azure secrets provider (vantage.secrets.azure). The Kubernetes Secrets provider (vantage.secrets.kubernetes) reads from pre-existing Secret resources in the install namespace and needs neither the CSI driver nor a cloud key vault.

What’s next

Install on Azure

AKS prerequisites, identity setup, and the install procedure.

Self-Managed Kubernetes

Bring-your-own mesh, ingress, secrets, data services, and registry.

Compatibility

Supported Kubernetes versions, distributions, and dependency versions.

Sizing

CPU, memory, and pod-count requirements per node pool.