ingress.enabled | Create the ingress resources for ingress.type. Default true. Set false when you manage ingress yourself, for example with a Traefik IngressRoute. |
ingress.type | Ingress resources the chart creates when ingress.enabled is true: istio (default; Istio Gateway and VirtualService), kubernetes (Kubernetes Ingress), gateway (Gateway API Gateway and HTTPRoute), or native (gateway when the cluster serves the Gateway API, otherwise kubernetes). native detects the Gateway API from the cluster’s API versions, so helm template needs --api-versions, and Gateway API CRDs installed in the same release are not detected on first install. The Gateway API CRDs and controller, or the Ingress controller, must already be installed. With gateway, also set vantage.reverseProxy: true. With kubernetes, set it when the ingress controller terminates TLS. |
ingress.tls.enabled | Terminate TLS with the Secret named by ingress.tls.secretName. Default true. Set false when the ingress controller supplies the certificate. |
ingress.istio.ingressGatewaySelector | Labels that select the Istio ingress gateway. Default istio: aks-istio-ingressgateway-external. |
ingress.istio.gateway.labels / annotations | Extra labels and annotations on the Istio Gateway. Default {}. |
ingress.istio.internalDNSResolution.enabled / destination.host | Route calls from inside the mesh to vantage.dnsRecord back through the Istio ingress gateway when vantage.dnsRecord has no public DNS record. Requires Istio DNS proxying. Use a vantage.dnsRecord with a public DNS record where possible. Defaults false / aks-istio-ingressgateway-external.aks-istio-ingress.svc.cluster.local. |
ingress.kubernetes.ingressClassName | IngressClass that implements the chart’s Ingress resources. Default "". Path rewrites rely on nginx annotations, so they happen only with the class nginx or with ingress.kubernetes.nginx: true; with nginx, each rewritten route gets its own Ingress. With other controllers, rewritten routes reach the right backend with the original path, and regular-expression routes get the closest prefix instead. |
ingress.kubernetes.nginx | Treat the ingress class as nginx-compatible when it is not named nginx, for example AKS application routing. Default false. |
ingress.kubernetes.labels / annotations | Extra labels and annotations on the chart’s Ingress resources, for example to control TLS through the ingress controller. Default {}. |
ingress.gateway.create | Create the Gateway API Gateway. Default true. Set false to attach the HTTPRoute to an existing Gateway with ingress.gateway.parentRefs. |
ingress.gateway.parentRefs | parentRefs for the HTTPRoute when create is false, for example name, namespace, and sectionName of a listener on a shared Gateway. The Gateway’s allowedRoutes must admit routes from the release namespace. Default []. |
ingress.gateway.name / gatewayClassName | Name and GatewayClass of the Gateway the chart creates. Defaults vantage-gateway / "". gatewayClassName is required when create is true. |
ingress.gateway.meshIntegrated | Set true when the GatewayClass implementation participates in the Istio mesh, for example Istio’s own Gateway API implementation. With mesh.istio.enabled: true, the chart then uses STRICT mTLS (see mesh.istio.enabled). Don’t set it for an implementation whose gateway pods get an Istio sidecar in the Vantage namespace, for example kgateway with sidecar injection. Default false. |
ingress.gateway.regexCatchAll | Render the / catch-all route as a RegularExpression match (/.*) instead of a PathPrefix match. Set true for implementations that rank every PathPrefix match above RegularExpression matches, for example Istio, where the / prefix would shadow the regular-expression routes. Default false. |
ingress.gateway.labels / annotations | Extra labels and annotations on the Gateway, for example cert-manager.io/cluster-issuer to have cert-manager issue the certificate in ingress.tls.secretName. Default {}. |
ingress.gateway.infrastructure | Gateway spec.infrastructure: labels, annotations, and parametersRef that the implementation propagates to the resources it creates, such as the load balancer Service. Default {}. |
ingress.gateway.listeners.httpsPort / httpPort | Ports of the Gateway’s HTTPS and HTTP listeners. Defaults 443 / 80. The Gateway has an HTTPS listener when ingress.tls.enabled or listeners.controllerSuppliedTls is true, and an HTTP listener otherwise. |
ingress.gateway.listeners.httpRedirect | Add an HTTP listener whose requests are redirected to HTTPS, when the Gateway has an HTTPS listener. Applies only when create is true. Default false. |
ingress.gateway.listeners.controllerSuppliedTls / tlsOptions | With ingress.tls.enabled: false, create an HTTPS listener without certificateRefs, instead of an HTTP listener, for implementations that supply the certificate themselves. tlsOptions sets the implementation-specific tls.options of the HTTPS listener and is required with controllerSuppliedTls: true. Defaults false / {}. |
ingress.gateway.certificateRef.namespace / createReferenceGrant | Namespace of the ingress.tls.secretName Secret when it is not the release namespace. The Gateway can use a Secret in another namespace only through a ReferenceGrant there. createReferenceGrant: true has the chart create it; otherwise create it yourself. Apply only when create and ingress.tls.enabled are true. Defaults "" / false. |
ingress.gateway.route.labels / annotations | Extra labels and annotations on the chart’s HTTPRoute resources. Default {}. |
ingress.gateway.route.timeouts | timeouts for every HTTPRoute rule. Default request: 0s (no request timeout). Requires implementation support for HTTPRouteRequestTimeout. Set {} to keep the implementation’s default. |
mesh.istio.enabled | Deploy the recommended Istio mesh configuration. Default true. The chart’s PeerAuthentication mode is STRICT with Istio ingress or a mesh-integrated Gateway (ingress.gateway.meshIntegrated), and PERMISSIVE otherwise. With ingress.type: kubernetes, this PERMISSIVE configuration is not recommended for production without a corresponding Istio AuthorizationPolicy. With Istio as the service mesh, use Istio ingress or a mesh-integrated Gateway. |
vantage.vantageVersion | Version of Vantage to install. Maps to Vantage.spec.vantageVersion. Default "". |
vantage.databaseProvider | Database engine for Vantage services. Accepted values: SqlServer (default) or PostgreSQL; case-sensitive. |
vantage.secrets.azure.clientId | Client ID of the user-assigned managed identity with read access to the Key Vault. With identityMode: workloadIdentity (the default), each workload uses the azure.workload.identity/client-id annotation on its ServiceAccount and falls back to clientId. Maps to Vantage.spec.secrets.azure.clientId. |
vantage.secrets.azure.identityMode | One of workloadIdentity (default), podIdentity, vmManagedIdentity. See Secrets and Key Vault. |
vantage.secrets.azure.userAssignedIdentityID | Client ID of the UAMI to use when identityMode is vmManagedIdentity. |
vantage.secrets.azure.objects | Map of secret alias → {objectName, objectType, objectVersion} for Key Vault objects whose names don’t match the alias. |
vantage.secrets.kubernetes | Use pre-existing Kubernetes Secret resources instead of Azure Key Vault. Optional objects mapping overrides default secret names. |
vantage.smtp.host / port / useSSL / login / password | Outbound SMTP. Used only when set; SendGrid is the default. Maps to Vantage.spec.smtp. port defaults to 587; useSSL (TLS) defaults to false. |
vantage.serviceAccountName | Default ServiceAccount for Vantage workloads. Maps to Vantage.spec.serviceAccountName. Default default. To pull images with a pull Secret, add the Secret to the imagePullSecrets of this ServiceAccount and of every ServiceAccount named in vantage.workloads.serviceAccounts (or set serviceAccounts.imagePullSecrets when the chart creates them). See Azure image pull access or self-managed registry access. |
serviceAccounts.vantage.create / name / labels / annotations / imagePullSecrets | Have the chart create the ServiceAccount for Vantage workloads. Default create: false. The name defaults to the release name and is set as vantage.serviceAccountName. |
serviceAccounts.ociMigration.create / name / labels / annotations / imagePullSecrets | Have the chart create the ServiceAccount for the OCI migration job. Default create: false. The name defaults to <release name>-oci-migration and is set as vantage.ociMigration.serviceAccountName. |
serviceAccounts.labels / annotations / imagePullSecrets | Added to every ServiceAccount the chart creates. Labels and annotations set on an individual ServiceAccount take precedence. Pull secrets are added to those set on each ServiceAccount. Default empty. |
serviceAccounts.workloads.<chart>.<kind> | Give one workload its own ServiceAccount instead of the vantage ServiceAccount. Keyed by chart name, then workload kind (migrator, deployment, or statefulSet). Each entry supports create (default true), name (default <chart name without -helm>-<kind>, for example mail-migrator; required when create is false), labels, annotations, imagePullSecrets, and roles. Each ServiceAccount is bound to roles, which default to migration-writer and serviceversion-reader for migrators, and migration-reader and serviceversion-reader otherwise. Workloads can share a ServiceAccount by using the same name; entries that create a shared ServiceAccount must configure it identically. Sets Vantage.spec.workloads.serviceAccounts. Default {}. |
vantage.workloads.configMap / metadataTemplateKey / secretsKey / workloadsKey / additionalMetadataKey | Keys of the workloads ConfigMap that the chart ships. When workloadsConfigMap.create is true (default), the chart names the ConfigMap after the chart version and uses configMap (default vantage-workloads) only as the name prefix. additionalMetadataKey (default additional-metadata.yml) names the key that holds your workloadsConfigMap.additionalMetadata overrides. Maps to Vantage.spec.workloads. |
vantage.workloads.pods.labels / vantage.workloads.pods.charts.<chart>.<kind>.labels | Labels added to the pods of every workload, or of specific workloads, for example azure.workload.identity/use: "true". Per-chart labels take precedence. Maps to Vantage.spec.workloads.pods. <chart> is the full chart name from the workloads ConfigMap, for example mail-helm. <kind> is migrator, deployment, or statefulSet. |
vantage.storage.custom.storageClass / size | Use a Kubernetes StorageClass-backed backend instead of Azure Blob. Maps to Vantage.spec.storage.custom. size defaults to 300Gi. |
vantage.idReadingEnabled | Enables ID reading features. Maps to Vantage.spec.idReadingEnabled. Default false. The operator never deploys the worker-id-reading charts; see TechCore worker deployment. |
vantage.minimalInstall | Deploy Vantage workloads with minimal resource configurations. Maps to Vantage.spec.minimalInstall. Default false. Controls workload sizing only. Pair it with defaultSkills.mode: minimal or custom. |
vantage.debug | Deploy Vantage workloads in debug mode. Maps to Vantage.spec.debug. Default false. |
defaultSkills.mode | all (default; every version of every default skill), minimal (newest version of each skill plus versions pinned in the chart), or custom (only defaultSkills.skills). all is the only safe default: skills derived from a default skill break if that default skill is not installed, so trimming the set is always an explicit choice. Installed default skills can’t be removed, so choose the set before the first installation. skill-installer-def-installation overrides in workloadsConfigMap.additionalMetadata take precedence. |
defaultSkills.skills | Skills to install in custom mode, as {id, versions} entries. Ignored in other modes. Omit versions for the newest version, set all for every version, or list version numbers. An unknown ID or version fails the render. Default []. |
workloadsConfigMap.create | Create the ConfigMap containing data about the charts and images required to install Vantage, with its associated RBAC. Default true. The ConfigMap name includes the chart version, so each chart upgrade changes Vantage.spec.workloads.configMap and the operator updates Vantage in place, under helm upgrade and under GitOps tools that render with helm template. |
workloadsConfigMap.additionalMetadata | Advanced per-chart overrides merged into the rendered workloads metadata. Default {}. An entry for charts.skill-installer-def-installation.values.defaultSkills takes precedence over defaultSkills.mode. See Additional workloads metadata. |
vantage.reportingEnabled | Toggle SQL Server reporting features. Default false. Must remain false with PostgreSQL. |
vantage.reverseProxy | Configure Vantage application services to run behind a reverse proxy that terminates TLS. Default false. Set true with ingress.type: gateway, and whenever the ingress controller or a customer-managed proxy terminates TLS, which is common with ingress.type: kubernetes. Maps to Vantage.spec.reverseProxy. See Forwarded HTTPS scheme. |
vantage.argocd.project | Argo CD project for the Applications the operator generates. Default default. The project must permit the destination cluster and namespace. Maps to Vantage.spec.argocd.project. |
vantage.updatePolicy.manual / auto | Upgrade policy. Maps to Vantage.spec.updatePolicy. Default manual: {}: Vantage upgrades only when you install new chart versions. Exactly one policy is required, and the CRD rejects auto because automatic updates are not yet supported. See updatePolicy. |
vantage.ociMigration.enabled | Run the OCI migration job. Default true. |
vantage.ociMigration.serviceAccountName | ServiceAccount the OCI migration job runs under. Maps to Vantage.spec.ociMigration.serviceAccountName. To pull the job image with a pull secret, add the secret to this ServiceAccount’s imagePullSecrets. |
vantage.ociMigration.imagePullSecrets | Pull secrets for the operator image that runs the OCI migration job. |
vantage.ociMigration.sources[] | Source registries that Vantage artifacts are copied from. Set sources[0].host and sources[0].repository to the ABBYY source registry. Set sources[].credentialsRef.name to a Secret with username and password keys, or to a kubernetes.io/dockerconfigjson Secret. |
vantage.ociMigration.sources[].username / password | Plaintext credentials for a source registry. Default "". For production, use sources[].credentialsRef.name, which takes precedence. |
vantage.ociMigration.destination.host / repository | Destination registry that artifacts are copied into. Required while enabled is true. Default host abbyy.com. host is the registry hostname with an optional port, without a scheme or path. Put the path in repository, for example vantage/images. |
vantage.ociMigration.destination.username / password / credentialsRef.name | Destination registry credentials. username and password are plaintext and default to "". For production, set credentialsRef.name to a Secret with username and password keys, or to a kubernetes.io/dockerconfigjson Secret. credentialsRef takes precedence over username and password. Maps to Vantage.spec.ociMigration.destination. |
vantage.ociMigration.concurrency | Number of artifacts the OCI migration job copies in parallel. Default 5. |
vantage.ociMigration.resources | Requests and limits for the OCI migration job container. Defaults: requests 100m CPU / 128Mi memory, limit 512Mi memory, no CPU limit. A value replaces the defaults entirely. |
vantage.keda.enabled | Configures whether KEDA is used for autoscaling Vantage workloads. Default false. The current Vantage workload charts require KEDA 2.17.x. See Autoscaling with KEDA. |
observability.prometheus.namespace | Namespace in which your Prometheus instance is installed. Default observability. Vantage KEDA autoscalers query Prometheus at prometheus-operated.observability.svc.cluster.local:9090, so keep Prometheus in the observability namespace. |
observability.prometheus.serviceMonitor.create | Create Prometheus ServiceMonitor resources to scrape Vantage application metrics. Default false. |
observability.prometheus.serviceMonitor.selectorMatchLabels | Labels your Prometheus instance requires to register a ServiceMonitor. Match your Prometheus resource’s spec.serviceMonitorSelector.matchLabels. Default {}. |
observability.prometheus.serviceMonitor.interval | How often Prometheus scrapes Vantage metrics. KEDA reads these metrics, so the interval also limits how quickly TechCore workers react to queued work. Default 15s, or 60s when vantage.minimalInstall is true. See Autoscaling with KEDA. |
observability.prometheus.serviceMonitor.scheme | Scheme for the ServiceMonitor scrape endpoints. Unset by default (HTTP). Set https, with tlsConfig, under Istio STRICT mTLS, or under Linkerd when an authorization policy blocks plaintext scrapes. Leave unset under Istio PERMISSIVE mTLS. See Monitoring with Prometheus. |
observability.prometheus.serviceMonitor.tlsConfig | Prometheus tlsConfig for the ServiceMonitor scrape endpoints (caFile, certFile, keyFile, insecureSkipVerify). Unset by default. Use with scheme: https. |
vantage.techcore.versions | TechCore versions to deploy. Accepted values: 2, 3, 4. Default [3, 4]. The highest version is the current version. See TechCore worker deployment. |
vantage.techcore.nnTrainingWorkers.enabled / gpu | Deploy the neural-network training workers for the current (highest) TechCore version. gpu: true deploys the GPU variants instead of the CPU variants. Defaults false / false. |