> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Charts de Helm

> Cómo se relacionan entre sí los charts de Helm vantage-operator y vantage-selfhosted, qué valores es más probable que configure y cómo implementa el operador los trabajadores de TechCore.

Vantage 3.0 autoalojado se distribuye en dos charts de Helm: `vantage-operator` (el controlador que supervisa el recurso personalizado `Vantage`) y `vantage-selfhosted` (el chart que crea el recurso `Vantage` y los manifiestos auxiliares en el espacio de nombres de instalación que elija). En esta página se describen ambos charts y los valores que es más probable que configure.

Para obtener información sobre la CRD a nivel de campo, consulte la [referencia de la API](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/reference/latest/api-reference.md). Para ver el procedimiento de instalación, elija [Azure](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/providers/azure.md) o [Self-Managed Kubernetes](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/providers/self-managed.md).

> [!NOTE]
>
> Instale la misma versión de `vantage-operator` y de `vantage-selfhosted`. Los valores predeterminados que se indican en esta página corresponden a la última versión. Algunos valores no están disponibles en versiones anteriores de los artefactos. Encontrará todos los valores y sus valores predeterminados para cada versión en la página de valores del chart de Helm correspondiente; busque su versión en [Versiones](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/reference/releases.md).

## `vantage-operator`

Se instala una sola vez por clúster, en el espacio de nombres que elija. El operador reconcilia la instalación de Vantage definida por el recurso personalizado `Vantage`.

> [!WARNING]
>
> **Instale solo una instancia de este chart por clúster.** Los objetos ClusterRole y ClusterRoleBinding del chart tienen ámbito de clúster y usan nombres fijos. Consulte [Limitaciones conocidas](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/known-limitations.md#one-operator-instance-per-cluster).

### Secciones de nivel superior

* **`nameOverride` / `fullnameOverride`**: anulan parcialmente el nombre completo del chart (conservando el nombre de la versión) o lo anulan por completo. No están definidos de forma predeterminada.
* **`manager`**: el Deployment del operador: `image`, `args` del contenedor (la elección de líder está habilitada de forma predeterminada), `env` (nombre del pod y espacio de nombres a través de la Downward API), `imagePullSecrets`, contextos de seguridad del pod y del contenedor (non-root, sin escalada de privilegios, sistema de archivos raíz de solo lectura), `resources` y programación (`affinity`, `nodeSelector`, `tolerations`).
* **`rbacHelpers`**: roles opcionales de administrador, editor y visor para gestionar los recursos personalizados. Deshabilitado de forma predeterminada.
* **`crd`**: ciclo de vida de las CRD: instala las CRD junto con el chart (`enable`) y las conserva al desinstalar el chart (`keep`).
* **`metrics`**: el endpoint `/metrics`, protegido mediante RBAC.
* **`certManager`**: integración con cert-manager para los certificados TLS, necesaria para los certificados del webhook y del punto de conexión de métricas. Deshabilitado de forma predeterminada.
* **`prometheus`**: un `ServiceMonitor` de Prometheus para la recopilación de métricas. Requiere que prometheus-operator esté instalado en el clúster. Deshabilitado de forma predeterminada.

### Valores destacados

Los valores predeterminados corresponden a la versión más reciente. Para mostrar los valores que acepta una versión del chart, consulte [Inspección de los valores disponibles](#inspecting-available-values).

| Valor | Finalidad |
| - | - |
| `manager.replicas` | Valor predeterminado: `1`. |
| `manager.image.repository` / `tag` / `pullPolicy` | Imagen de contenedor del operador. El valor predeterminado de `pullPolicy` es `IfNotPresent`. |
| `manager.imagePullSecrets` | Secretos de extracción para la imagen del operador cuando el registro requiere autenticación; por ejemplo, `--set "manager.imagePullSecrets[0].name=my-pull-secret"`. Valor predeterminado: `[]`. No es necesario en AKS si se concede `AcrPull` a la identidad de kubelet. Consulte [Acceso para extraer imágenes](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/providers/azure.md#image-pull-access). |
| `manager.args` | Argumentos del contenedor. Valor predeterminado: `[--leader-elect]` (elección de líder habilitada). |
| `manager.env` | Variables de entorno del contenedor del operador. Valor predeterminado: `POD_NAME` a partir de `metadata.name` y `POD_NAMESPACE` a partir de `metadata.namespace` (referencias de campo). |
| `manager.podSecurityContext` / `manager.securityContext` | Contextos de seguridad del pod y del contenedor del operador. Valores predeterminados: para el pod, `runAsNonRoot: true` y `seccompProfile.type: RuntimeDefault`; para el contenedor, `allowPrivilegeEscalation: false`, `capabilities.drop: [ALL]` y `readOnlyRootFilesystem: true`. |
| `manager.resources` | Solicitudes y límites de CPU/memoria. Valores predeterminados: solicitudes de `10m` de CPU / `64Mi` de memoria; límites de `500m` de CPU / `128Mi` de memoria. |
| `manager.affinity` / `manager.nodeSelector` / `manager.tolerations` | Controles estándar de programación de Kubernetes para el pod del operador. Vacíos de forma predeterminada. |
| `rbacHelpers.enable` | Instala roles auxiliares de administrador/editor/visor para los CRD. Valor predeterminado: `false`. |
| `crd.enable` | Instala el CRD `vantages.vantage.abbyy.com` junto con el chart. Valor predeterminado: `true`. |
| `crd.keep` | Conserva los CRD al desinstalar el chart. Valor predeterminado: `true`. |
| `metrics.enable` / `metrics.port` | Expone el endpoint `/metrics` protegido por RBAC. Valores predeterminados: `true` / `8443`. |
| `certManager.enable` | Integración con cert-manager para los certificados TLS. Obligatorio para los certificados de webhook y los certificados del punto de conexión de métricas. Valor predeterminado: `false`. |
| `prometheus.enable` | Crea un `ServiceMonitor` de Prometheus para la recopilación de métricas. Requiere que prometheus-operator esté instalado en el clúster. Valor predeterminado: `false`. |

La configuración de la aplicación Vantage se define en el recurso personalizado `Vantage`, que crea el chart `vantage-selfhosted`.

## `vantage-selfhosted`

Se instala en el espacio de nombres que elija. Este chart contiene el recurso personalizado `Vantage`, un ConfigMap con los datos de las cargas de trabajo de Vantage y su RBAC asociado, además de los CRD y roles relacionados con Vantage procedentes del repositorio de infraestructura upstream de ABBYY.

La mayoría de los valores se asignan directamente a campos del recurso personalizado `Vantage`. Consulte la [referencia de la API](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/reference/latest/api-reference.md) para conocer el contrato a nivel de campo.

### Secciones de nivel superior

* **`operator`**: puntero a la instalación del operador (`namespace` y `controllerManagerServiceAccount`).
* **`ingress`**: el ingress integrado del chart, que se selecciona mediante `ingress.type`. Establezca `enabled: false` si administra el ingress por su cuenta, por ejemplo, con Traefik.
* **`mesh`**: recursos de la malla de Istio (`mesh.istio.enabled`). Se trata de una sección de nivel superior, no de un campo de `Vantage.spec`.
* **`serviceAccounts`**: ServiceAccounts que el chart crea para las cargas de trabajo de Vantage, el trabajo de migración de OCI y cargas de trabajo concretas. Se trata de una sección de nivel superior, no de un campo de `Vantage.spec`.
* **`vantage`**: el contenido de `Vantage.spec`: `argocd`, `databaseProvider`, `debug`, `dnsRecord`, `idReadingEnabled`, `keda`, `mailFrom`, `minimalInstall`, `ociMigration`, `platformAdminEmail`, `reportingEnabled`, `reverseProxy`, `secrets`, `serviceAccountName`, `smtp`, `storage`, `techcore`, `updatePolicy`, `vantageVersion`, `workloads`. Estos valores se pasan directamente al recurso personalizado `Vantage`.
* **`defaultSkills`**: indica qué skills predeterminadas del catálogo incluido instala el skill-installer-operator. Se trata de una sección de nivel superior, no de un campo de `Vantage.spec`.
* **`observability`**: configuración de `ServiceMonitor` de Prometheus generada por el chart. Se trata de una sección de nivel superior, no de un campo de `Vantage.spec`.
* **`workloadsConfigMap`**: controla el ConfigMap de cargas de trabajo que incluye el chart. `create` determina si el chart lo crea, y `additionalMetadata` contiene reemplazos avanzados por chart. Se trata de una sección de nivel superior, no de un campo de `Vantage.spec`.

### Valores obligatorios

| Valor | Se asigna a | Finalidad |
| - | - | - |
| `operator.namespace` | N/A | Espacio de nombres donde instaló `vantage-operator`. Predeterminado: `vantage-operator-system`. |
| `operator.controllerManagerServiceAccount` | N/A | ServiceAccount del controller-manager del operador. Predeterminado: `vantage-operator-controller-manager`. |
| `ingress.tls.secretName` | N/A | Nombre del Secret de tipo `kubernetes.io/tls`. Predeterminado: `vantage-ingress-tls`. Se usa cuando `ingress.enabled` e `ingress.tls.enabled` son `true`. Con `ingress.type: istio`, el Secret debe estar en el espacio de nombres de la puerta de enlace de entrada de Istio. Con `gateway`, créelo en el espacio de nombres de Vantage o en el definido por `ingress.gateway.certificateRef.namespace`. Con `gateway` e `ingress.gateway.create: false`, el chart no lo usa, ya que el Gateway existente proporciona el certificado. |
| `vantage.dnsRecord` | `Vantage.spec.dnsRecord` | Nombre de host DNS a través del cual se accede a Vantage. |
| `vantage.mailFrom` | `Vantage.spec.mailFrom` | Remitente del correo saliente. |
| `vantage.platformAdminEmail` | `Vantage.spec.platformAdminEmail` | Dirección de correo electrónico del administrador de la plataforma. |
| `vantage.secrets.azure` o `vantage.secrets.kubernetes` | `Vantage.spec.secrets` | Debe configurarse exactamente un proveedor de secretos. Consulte [Secretos y Key Vault](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/secrets-and-keyvault.md). |
| `vantage.secrets.azure.keyVaultName` / `tenantId` | `Vantage.spec.secrets.azure` | Obligatorios con el proveedor de Azure Key Vault: el Key Vault que contiene los secretos y el inquilino de Azure AD al que pertenece. |

### Valores opcionales

| Valor | Finalidad |
| - | - |
| `ingress.enabled` | Crea los recursos de ingress para `ingress.type`. Valor predeterminado: `true`. Establézcalo en `false` cuando administre el ingress usted mismo, por ejemplo, con un `IngressRoute` de Traefik. |
| `ingress.type` | Recursos de ingress que crea el chart cuando `ingress.enabled` es `true`: `istio` (predeterminado; `Gateway` y `VirtualService` de Istio), `kubernetes` (`Ingress` de Kubernetes), `gateway` (`Gateway` y `HTTPRoute` de Gateway API) o `native` (`gateway` cuando el clúster ofrece Gateway API; en caso contrario, `kubernetes`). `native` detecta Gateway API a partir de las versiones de API del clúster, por lo que `helm template` necesita `--api-versions`, y los CRD de Gateway API instalados en la misma release de Helm no se detectan en la primera instalación. Los CRD y el controlador de Gateway API, o el controlador de Ingress, deben estar ya instalados. Con `gateway`, establezca también `vantage.reverseProxy: true`. Con `kubernetes`, establézcalo cuando el controlador de ingress termine TLS. |
| `ingress.tls.enabled` | Termina TLS con el Secret indicado en `ingress.tls.secretName`. Valor predeterminado: `true`. Establézcalo en `false` cuando el controlador de ingress proporcione el certificado. |
| `ingress.istio.ingressGatewaySelector` | Etiquetas que seleccionan la puerta de enlace de entrada de Istio. Valor predeterminado: `istio: aks-istio-ingressgateway-external`. |
| `ingress.istio.gateway.labels` / `annotations` | Etiquetas y anotaciones adicionales en el `Gateway` de Istio. Valor predeterminado: `{}`. |
| `ingress.istio.internalDNSResolution.enabled` / `destination.host` | Enruta las llamadas que se hacen desde dentro de la malla a `vantage.dnsRecord` de vuelta a través de la puerta de enlace de entrada de Istio cuando `vantage.dnsRecord` no tiene un registro DNS público. Requiere el [proxy de DNS](https://istio.io/latest/docs/ops/configuration/traffic-management/dns-proxy) de Istio. Siempre que sea posible, use un `vantage.dnsRecord` con un registro DNS público. Valores predeterminados: `false` / `aks-istio-ingressgateway-external.aks-istio-ingress.svc.cluster.local`. |
| `ingress.kubernetes.ingressClassName` | `IngressClass` que implementa los recursos `Ingress` del chart. Valor predeterminado: `""`. Las reescrituras de rutas dependen de anotaciones de nginx, por lo que solo se producen con la clase `nginx` o con `ingress.kubernetes.nginx: true`; con nginx, cada ruta reescrita obtiene su propio `Ingress`. Con otros controladores, las rutas reescritas llegan al backend correcto con la ruta original, y las rutas de expresiones regulares obtienen en su lugar el prefijo más cercano. |
| `ingress.kubernetes.nginx` | Trata la clase de ingress como compatible con nginx cuando no se llama `nginx`, por ejemplo, el enrutamiento de aplicaciones de AKS. Valor predeterminado: `false`. |
| `ingress.kubernetes.labels` / `annotations` | Etiquetas y anotaciones adicionales en los recursos `Ingress` del chart, por ejemplo, para controlar TLS a través del controlador de ingress. Valor predeterminado: `{}`. |
| `ingress.gateway.create` | Crea el `Gateway` de Gateway API. Valor predeterminado: `true`. Establézcalo en `false` para asociar el `HTTPRoute` a un Gateway existente mediante `ingress.gateway.parentRefs`. |
| `ingress.gateway.parentRefs` | `parentRefs` del `HTTPRoute` cuando `create` es `false`, por ejemplo, `name`, `namespace` y `sectionName` de un oyente en un Gateway compartido. El `allowedRoutes` del Gateway debe admitir rutas del espacio de nombres de la release. Valor predeterminado: `[]`. |
| `ingress.gateway.name` / `gatewayClassName` | Nombre y `GatewayClass` del Gateway que crea el chart. Valores predeterminados: `vantage-gateway` / `""`. `gatewayClassName` es obligatorio cuando `create` es `true`. |
| `ingress.gateway.meshIntegrated` | Establézcalo en `true` cuando la implementación de GatewayClass participe en la malla de Istio, por ejemplo, la propia implementación de Gateway API de Istio. En ese caso, con `mesh.istio.enabled: true`, el chart usa mTLS `STRICT` (consulte `mesh.istio.enabled`). No lo establezca para una implementación cuyos pods de puerta de enlace reciban un sidecar de Istio en el espacio de nombres de Vantage, por ejemplo, kgateway con inyección de sidecar. Valor predeterminado: `false`. |
| `ingress.gateway.regexCatchAll` | Genera la ruta comodín `/` como una coincidencia `RegularExpression` (`/.*`) en lugar de una coincidencia `PathPrefix`. Establézcalo en `true` para implementaciones que dan prioridad a todas las coincidencias `PathPrefix` sobre las coincidencias `RegularExpression`, por ejemplo, Istio, donde el prefijo `/` ocultaría las rutas de expresiones regulares. Valor predeterminado: `false`. |
| `ingress.gateway.labels` / `annotations` | Etiquetas y anotaciones adicionales en el `Gateway`, por ejemplo, `cert-manager.io/cluster-issuer` para que cert-manager emita el certificado en `ingress.tls.secretName`. Valor predeterminado: `{}`. |
| `ingress.gateway.infrastructure` | `spec.infrastructure` del Gateway: etiquetas, anotaciones y `parametersRef` que la implementación propaga a los recursos que crea, como el Service del balanceador de carga. Valor predeterminado: `{}`. |
| `ingress.gateway.listeners.httpsPort` / `httpPort` | Puertos de los oyentes HTTPS y HTTP del Gateway. Valores predeterminados: `443` / `80`. El Gateway tiene un oyente HTTPS cuando `ingress.tls.enabled` o `listeners.controllerSuppliedTls` es `true` y, en caso contrario, un oyente HTTP. |
| `ingress.gateway.listeners.httpRedirect` | Agrega un oyente HTTP cuyas solicitudes se redirigen a HTTPS cuando el Gateway tiene un oyente HTTPS. Solo se aplica cuando `create` es `true`. Valor predeterminado: `false`. |
| `ingress.gateway.listeners.controllerSuppliedTls` / `tlsOptions` | Con `ingress.tls.enabled: false`, crea un oyente HTTPS sin `certificateRefs`, en lugar de un oyente HTTP, para implementaciones que proporcionan el certificado por sí mismas. `tlsOptions` establece las `tls.options` específicas de la implementación del oyente HTTPS y es obligatorio con `controllerSuppliedTls: true`. Valores predeterminados: `false` / `{}`. |
| `ingress.gateway.certificateRef.namespace` / `createReferenceGrant` | Espacio de nombres del Secret `ingress.tls.secretName` cuando no es el espacio de nombres de la release. El Gateway solo puede usar un Secret de otro espacio de nombres mediante un `ReferenceGrant` en ese espacio de nombres. Con `createReferenceGrant: true`, el chart lo crea; de lo contrario, créelo usted mismo. Solo se aplican cuando `create` e `ingress.tls.enabled` son `true`. Valores predeterminados: `""` / `false`. |
| `ingress.gateway.route.labels` / `annotations` | Etiquetas y anotaciones adicionales en los recursos `HTTPRoute` del chart. Valor predeterminado: `{}`. |
| `ingress.gateway.route.timeouts` | `timeouts` para cada regla de `HTTPRoute`. Valor predeterminado: `request: 0s` (sin tiempo de espera de solicitud). Requiere que la implementación admita `HTTPRouteRequestTimeout`. Establézcalo en `{}` para mantener el valor predeterminado de la implementación. |
| `mesh.istio.enabled` | Implementa la configuración de malla de Istio recomendada. Valor predeterminado: `true`. El modo de `PeerAuthentication` del chart es `STRICT` con el ingress de Istio o un Gateway integrado en la malla (`ingress.gateway.meshIntegrated`) y `PERMISSIVE` en los demás casos. Con `ingress.type: kubernetes`, no se recomienda esta configuración `PERMISSIVE` en producción sin una `AuthorizationPolicy` de Istio correspondiente. Con Istio como malla de servicios, use el ingress de Istio o un Gateway integrado en la malla. |
| `vantage.vantageVersion` | Versión de Vantage que se va a instalar. Se asigna a `Vantage.spec.vantageVersion`. Valor predeterminado: `""`. |
| `vantage.databaseProvider` | Motor de base de datos para los servicios de Vantage. Valores aceptados: `SqlServer` (predeterminado) o `PostgreSQL`; con distinción entre mayúsculas y minúsculas. |
| `vantage.secrets.azure.clientId` | ID de cliente de la identidad administrada asignada por el usuario con acceso de lectura al Key Vault. Con `identityMode: workloadIdentity` (el valor predeterminado), cada carga de trabajo usa la anotación `azure.workload.identity/client-id` de su ServiceAccount y, si no existe, recurre a `clientId`. Se asigna a `Vantage.spec.secrets.azure.clientId`. |
| `vantage.secrets.azure.identityMode` | Uno de los siguientes: `workloadIdentity` (predeterminado), `podIdentity` o `vmManagedIdentity`. Consulte [Secretos y Key Vault](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/secrets-and-keyvault.md#azure-key-vault-provider). |
| `vantage.secrets.azure.userAssignedIdentityID` | ID de cliente de la UAMI que se usará cuando `identityMode` sea `vmManagedIdentity`. |
| `vantage.secrets.azure.objects` | Asignación de alias de secreto → `{objectName, objectType, objectVersion}` para objetos de Key Vault cuyos nombres no coinciden con el alias. |
| `vantage.secrets.kubernetes` | Usa recursos `Secret` de Kubernetes existentes en lugar de Azure Key Vault. La asignación opcional `objects` reemplaza los nombres de secretos predeterminados. |
| `vantage.smtp.host` / `port` / `useSSL` / `login` / `password` | SMTP saliente. Solo se usa si está configurado; de forma predeterminada se usa SendGrid. Se asigna a `Vantage.spec.smtp`. El valor predeterminado de `port` es `587`, y el de `useSSL` (TLS), `false`. |
| `vantage.serviceAccountName` | ServiceAccount predeterminada para las cargas de trabajo de Vantage. Se asigna a `Vantage.spec.serviceAccountName`. Valor predeterminado: `default`. Para extraer imágenes con un pull Secret, agregue el Secret a los `imagePullSecrets` de esta ServiceAccount y de cada ServiceAccount indicada en `vantage.workloads.serviceAccounts` (o configure `serviceAccounts.imagePullSecrets` cuando el chart las cree). Consulte [Acceso de extracción de imágenes en Azure](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/providers/azure.md#image-pull-access) o [Acceso al registro autogestionado](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/providers/self-managed.md#configure-registry-access). |
| `serviceAccounts.vantage.create` / `name` / `labels` / `annotations` / `imagePullSecrets` | Hace que el chart cree la ServiceAccount para las cargas de trabajo de Vantage. Valor predeterminado: `create: false`. De forma predeterminada, el nombre es el de la release y se establece como `vantage.serviceAccountName`. |
| `serviceAccounts.ociMigration.create` / `name` / `labels` / `annotations` / `imagePullSecrets` | Hace que el chart cree la ServiceAccount para el trabajo de migración de OCI. Valor predeterminado: `create: false`. El nombre predeterminado es `<release name>-oci-migration` y se establece como `vantage.ociMigration.serviceAccountName`. |
| `serviceAccounts.labels` / `annotations` / `imagePullSecrets` | Se agregan a cada ServiceAccount que crea el chart. Las labels y anotaciones configuradas en una ServiceAccount concreta tienen prioridad. Los secretos de extracción se suman a los configurados en cada ServiceAccount. Valor predeterminado: vacío. |
| `serviceAccounts.workloads.<chart>.<kind>` | Asigna a una carga de trabajo su propia ServiceAccount en lugar de la ServiceAccount `vantage`. Se indexa por nombre de chart y luego por tipo de carga de trabajo (`migrator`, `deployment` o `statefulSet`). Cada entrada admite `create` (valor predeterminado `true`), `name` (valor predeterminado `<chart name without -helm>-<kind>`, por ejemplo `mail-migrator`; obligatorio cuando `create` es `false`), `labels`, `annotations`, `imagePullSecrets` y `roles`. Cada ServiceAccount se vincula a `roles`, que de forma predeterminada son `migration-writer` y `serviceversion-reader` para los migradores, y `migration-reader` y `serviceversion-reader` en los demás casos. Varias cargas de trabajo pueden compartir una ServiceAccount si usan el mismo nombre; las entradas que crean una ServiceAccount compartida deben configurarla de forma idéntica. Establece `Vantage.spec.workloads.serviceAccounts`. Valor predeterminado: `{}`. |
| `vantage.workloads.configMap` / `metadataTemplateKey` / `secretsKey` / `workloadsKey` / `additionalMetadataKey` | Claves del ConfigMap de cargas de trabajo que incluye el chart. Cuando `workloadsConfigMap.create` es `true` (valor predeterminado), el chart asigna al ConfigMap un nombre basado en la versión del chart y usa `configMap` (valor predeterminado `vantage-workloads`) solo como prefijo del nombre. `additionalMetadataKey` (valor predeterminado `additional-metadata.yml`) indica la clave que contiene sus reemplazos de `workloadsConfigMap.additionalMetadata`. Se asigna a `Vantage.spec.workloads`. |
| `vantage.workloads.pods.labels` / `vantage.workloads.pods.charts.<chart>.<kind>.labels` | Labels que se agregan a los pods de todas las cargas de trabajo, o de cargas de trabajo específicas, por ejemplo `azure.workload.identity/use: "true"`. Las labels por chart tienen prioridad. Se asigna a `Vantage.spec.workloads.pods`. `<chart>` es el nombre completo del chart en el ConfigMap de cargas de trabajo, por ejemplo `mail-helm`. `<kind>` es `migrator`, `deployment` o `statefulSet`. |
| `vantage.storage.custom.storageClass` / `size` | Usa un backend basado en un `StorageClass` de Kubernetes en lugar de Azure Blob. Se asigna a `Vantage.spec.storage.custom`. El valor predeterminado de `size` es `300Gi`. |
| `vantage.idReadingEnabled` | Habilita las funciones de lectura de documentos de identidad. Se asigna a `Vantage.spec.idReadingEnabled`. Valor predeterminado: `false`. El operador nunca implementa los charts `worker-id-reading`; consulte [Implementación del worker de TechCore](#techcore-worker-deployment). |
| `vantage.minimalInstall` | Implementa las cargas de trabajo de Vantage con configuraciones mínimas de recursos. Se asigna a `Vantage.spec.minimalInstall`. Valor predeterminado: `false`. Solo controla el dimensionamiento de las cargas de trabajo. Combínelo con `defaultSkills.mode: minimal` o `custom`. |
| `vantage.debug` | Implementa las cargas de trabajo de Vantage en modo de depuración. Se asigna a `Vantage.spec.debug`. Valor predeterminado: `false`. |
| `defaultSkills.mode` | `all` (predeterminado; todas las versiones de todas las skill predeterminadas), `minimal` (la versión más reciente de cada skill, además de las versiones fijadas en el chart) o `custom` (solo `defaultSkills.skills`). `all` es el único valor predeterminado seguro: las skill derivadas de una habilidad predeterminada dejan de funcionar si esa habilidad predeterminada no está instalada, por lo que reducir el conjunto siempre debe ser una decisión explícita. Las skill predeterminadas instaladas no se pueden eliminar, así que elija el conjunto antes de la primera instalación. Los reemplazos de `skill-installer-def-installation` en `workloadsConfigMap.additionalMetadata` tienen prioridad. |
| `defaultSkills.skills` | Skill que se instalan en modo `custom`, como entradas `{id, versions}`. Se ignora en los demás modos. Omita `versions` para obtener la versión más reciente, establezca `all` para todas las versiones o indique números de versión concretos. Un ID o una versión desconocidos hacen que falle el renderizado. Valor predeterminado: `[]`. |
| `workloadsConfigMap.create` | Crea el ConfigMap que contiene datos sobre los charts y las imágenes necesarios para instalar Vantage, junto con su RBAC asociado. Valor predeterminado: `true`. El nombre del ConfigMap incluye la versión del chart, por lo que cada actualización del chart cambia `Vantage.spec.workloads.configMap` y el operador actualiza Vantage in situ, tanto con `helm upgrade` como con herramientas de GitOps que renderizan con `helm template`. |
| `workloadsConfigMap.additionalMetadata` | Reemplazos avanzados por chart que se combinan con los metadatos renderizados de las cargas de trabajo. Valor predeterminado: `{}`. Una entrada para `charts.skill-installer-def-installation.values.defaultSkills` tiene prioridad sobre `defaultSkills.mode`. Consulte [Metadatos adicionales de cargas de trabajo](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/performance/additional-workloads-metadata.md). |
| `vantage.reportingEnabled` | Activa o desactiva las funciones de informes de SQL Server. Valor predeterminado: `false`. Debe mantenerse en `false` con PostgreSQL. |
| `vantage.reverseProxy` | Configura los servicios de la aplicación Vantage para que se ejecuten detrás de un proxy inverso que termina TLS. Valor predeterminado: `false`. Establézcalo en `true` con `ingress.type: gateway` y siempre que el controlador de ingress o un proxy administrado por el cliente termine TLS, algo habitual con `ingress.type: kubernetes`. Se asigna a `Vantage.spec.reverseProxy`. Consulte [Esquema HTTPS reenviado](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/providers/self-managed.md#forwarded-https-scheme). |
| `vantage.argocd.project` | Proyecto de Argo CD para las Applications que genera el operador. Valor predeterminado: `default`. El proyecto debe permitir el clúster y el espacio de nombres de destino. Se asigna a `Vantage.spec.argocd.project`. |
| `vantage.updatePolicy.manual` / `auto` | Directiva de actualización. Se asigna a `Vantage.spec.updatePolicy`. Valor predeterminado: `manual: {}`: Vantage solo se actualiza cuando instala nuevas versiones del chart. Se requiere exactamente una directiva, y la CRD rechaza `auto` porque las actualizaciones automáticas aún no son compatibles. Consulte [`updatePolicy`](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/reference/latest/api-reference#vantagespecupdatepolicy). |
| `vantage.ociMigration.enabled` | Ejecuta el trabajo de migración de OCI. Valor predeterminado: `true`. |
| `vantage.ociMigration.serviceAccountName` | ServiceAccount con la que se ejecuta el trabajo de migración de OCI. Se asigna a `Vantage.spec.ociMigration.serviceAccountName`. Para extraer la imagen del trabajo con un pull secret, agregue el secreto a los `imagePullSecrets` de esta ServiceAccount. |
| `vantage.ociMigration.imagePullSecrets` | Secretos de extracción para la imagen del operador que ejecuta el trabajo de migración de OCI. |
| `vantage.ociMigration.sources[]` | Registros de origen desde los que se copian los artefactos de Vantage. Establezca `sources[0].host` y `sources[0].repository` en el registro de origen de ABBYY. Establezca `sources[].credentialsRef.name` en un Secret con las claves `username` y `password`, o en un Secret `kubernetes.io/dockerconfigjson`. |
| `vantage.ociMigration.sources[].username` / `password` | Credenciales en texto sin formato para un registro de origen. Valor predeterminado: `""`. En producción, use `sources[].credentialsRef.name`, que tiene prioridad. |
| `vantage.ociMigration.destination.host` / `repository` | Registro de destino al que se copian los artefactos. Obligatorio mientras `enabled` sea `true`. Host predeterminado: `abbyy.com`. `host` es el nombre de host del registro con un puerto opcional, sin esquema ni ruta. Indique la ruta en `repository`, por ejemplo `vantage/images`. |
| `vantage.ociMigration.destination.username` / `password` / `credentialsRef.name` | Credenciales del registro de destino. `username` y `password` están en texto sin formato y su valor predeterminado es `""`. En producción, establezca `credentialsRef.name` en un Secret con las claves `username` y `password`, o en un Secret `kubernetes.io/dockerconfigjson`. `credentialsRef` tiene prioridad sobre `username` y `password`. Se asigna a `Vantage.spec.ociMigration.destination`. |
| `vantage.ociMigration.concurrency` | Número de artefactos que el trabajo de migración de OCI copia en paralelo. Valor predeterminado: `5`. |
| `vantage.ociMigration.resources` | Solicitudes y límites para el contenedor del trabajo de migración de OCI. Valores predeterminados: solicitudes de `100m` de CPU / `128Mi` de memoria, límite de `512Mi` de memoria, sin límite de CPU. Si se especifica un valor, reemplaza por completo los valores predeterminados. |
| `vantage.keda.enabled` | Configura si se usa [KEDA](https://keda.sh/) para el escalado automático de las cargas de trabajo de Vantage. Valor predeterminado: `false`. Los charts actuales de cargas de trabajo de Vantage requieren KEDA 2.17.x. Consulte [Escalado automático con KEDA](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/performance/autoscaling.md). |
| `observability.prometheus.namespace` | Espacio de nombres en el que está instalada su instancia de Prometheus. Valor predeterminado: `observability`. Los escaladores automáticos KEDA de Vantage consultan Prometheus en `prometheus-operated.observability.svc.cluster.local:9090`, por lo que Prometheus debe permanecer en el espacio de nombres `observability`. |
| `observability.prometheus.serviceMonitor.create` | Crea recursos `ServiceMonitor` de Prometheus para recopilar las métricas de la aplicación Vantage. Valor predeterminado: `false`. |
| `observability.prometheus.serviceMonitor.selectorMatchLabels` | Etiquetas que su instancia de Prometheus requiere para registrar un `ServiceMonitor`. Deben coincidir con el campo `spec.serviceMonitorSelector.matchLabels` de su recurso `Prometheus`. Valor predeterminado: `{}`. |
| `observability.prometheus.serviceMonitor.interval` | Frecuencia con la que Prometheus recopila las métricas de Vantage. Como KEDA lee estas métricas, el intervalo también determina la rapidez con la que los procesos de trabajo de TechCore responden al trabajo en cola. Valor predeterminado: `15s`, o `60s` cuando `vantage.minimalInstall` es `true`. Consulte [Escalado automático con KEDA](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/performance/autoscaling.md#scale-out-responsiveness). |
| `observability.prometheus.serviceMonitor.scheme` | Esquema de los endpoints de recopilación de métricas del `ServiceMonitor`. No está definido de forma predeterminada (HTTP). Establézcalo en `https`, junto con `tlsConfig`, si utiliza mTLS `STRICT` de Istio, o si utiliza Linkerd y una política de autorización bloquea la recopilación de métricas en texto sin cifrar. Déjelo sin definir si utiliza mTLS `PERMISSIVE` de Istio. Consulte [Monitorización con Prometheus](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/monitoring/prometheus.md#istio-mtls). |
| `observability.prometheus.serviceMonitor.tlsConfig` | Configuración `tlsConfig` de Prometheus para los endpoints de recopilación de métricas del `ServiceMonitor` (`caFile`, `certFile`, `keyFile`, `insecureSkipVerify`). No está definido de forma predeterminada. Úselo junto con `scheme: https`. |
| `vantage.techcore.versions` | Versiones de TechCore que se van a implementar. Valores aceptados: `2`, `3`, `4`. Valor predeterminado: `[3, 4]`. La versión más alta se considera la versión actual. Consulte [Implementación de procesos de trabajo de TechCore](#techcore-worker-deployment). |
| `vantage.techcore.nnTrainingWorkers.enabled` / `gpu` | Implementa los workers de entrenamiento de redes neuronales para la versión actual (la más alta) de TechCore. Con `gpu: true` se implementan las variantes para GPU en lugar de las variantes para CPU. Valores predeterminados: `false` / `false`. |

## Inspección de los valores disponibles

El chart `vantage-operator` lo genera el plugin de Helm de Kubebuilder. En el chart `vantage-selfhosted`, las plantillas del recurso personalizado `Vantage` y del ConfigMap de cargas de trabajo se mantienen manualmente. Para mostrar los valores que acepta una versión del chart:

```bash theme={null}
# vantage-operator
helm show values $charts_uri/vantage-operator --version $operator_version

# vantage-selfhosted
helm show values $chart_uri/vantage-selfhosted --version $selfhosted_version
```

`$charts_uri`, `$chart_uri` y las variables de versión siguen las convenciones descritas en [Variables de instalación](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/providers/azure.md#install-variables).

Para revisar los manifiestos renderizados antes de aplicarlos:

```bash theme={null}
helm template $release_name $chart_uri/vantage-selfhosted \
  --version $selfhosted_version \
  --namespace $install_namespace \
  -f my-values.yaml
```

## Configuración del operador frente a la de Vantage

| Aspecto | Dónde se define |
| - | - |
| Entorno de ejecución del operador (imagen, secretos de extracción, programación, ciclo de vida de las CRD, métricas) | Valores de Helm de `vantage-operator` |
| Aplicación Vantage (secretos, SMTP, cargas de trabajo, almacenamiento, techcore) | Valores de Helm de `vantage-selfhosted` → `Vantage.spec` |

## Implementación de los trabajadores de TechCore

El chart `vantage-selfhosted` aplica un recurso personalizado `Vantage`; a continuación, el operador implementa un subconjunto de los charts de trabajadores de TechCore en función de `spec.techcore.*`, tal como se muestra en las matrices siguientes.

### Convención de nomenclatura

Los charts de los trabajadores se denominan `vtc-{version}-worker-{name}-helm`, donde `{version}` es una de las versiones indicadas en `spec.techcore.versions`. Los números de versión son meros prefijos del nombre y no tienen ningún significado semántico para el operador. El conjunto de trabajadores disponibles se obtiene del ConfigMap de cargas de trabajo que incluye el chart `vantage-selfhosted`.

### Dos pasadas de implementación

| Pasada | Versiones | Charts considerados |
| - | - | - |
| Versión actual | La versión más alta de `spec.techcore.versions` | `vtc-{version}-worker*` |
| Versiones anteriores | Todas las demás versiones de `spec.techcore.versions` | `vtc-{version}-worker*` |

Los charts de trabajador de las versiones que no figuran en `spec.techcore.versions` no se implementan. Para mantener en ejecución los trabajadores de una versión anterior de TechCore junto a la actual, incluya ambas versiones. El valor predeterminado del chart, `[3, 4]`, implementa TechCore 4 como versión actual y TechCore 3 como versión anterior.

### Matriz de inclusión: pasada de la versión actual

| Patrón de chart | Se incluye cuando |
| - | - |
| `worker-id-reading` | Nunca (se excluye en todas las configuraciones) |
| `nn-extraction-training` | `nnTrainingWorkers.enabled: true` y `nnTrainingWorkers.gpu: false` |
| `nn-extraction-training-gpu` | `nnTrainingWorkers.enabled: true` y `nnTrainingWorkers.gpu: true` |
| `nn-nlp-model-train` | `nnTrainingWorkers.enabled: true` y `nnTrainingWorkers.gpu: false` |
| `nn-nlp-model-train-gpu` | `nnTrainingWorkers.enabled: true` y `nnTrainingWorkers.gpu: true` |
| Todos los demás trabajadores | Siempre |

### Matriz de inclusión: pasada de versiones anteriores

Se ejecuta para cada versión de `spec.techcore.versions`, excepto la más alta.

| Patrón de chart | Se incluye cuando |
| - | - |
| `worker-id-reading` | Nunca |
| `nn-extraction-training*` (CPU y GPU) | Nunca (el entrenamiento de NN solo se ejecuta en la versión actual) |
| `nn-nlp-model-train*` (CPU y GPU) | Nunca (el entrenamiento de NN solo se ejecuta en la versión actual) |
| Todos los demás trabajadores | Siempre |

> [!NOTE]
>
> La lectura de documentos de identidad es una cuestión de la plataforma, no de TechCore. Su indicador, `spec.idReadingEnabled`, se encuentra fuera de `spec.techcore`. Los charts `worker-id-reading` nunca se implementan. Consulte la [referencia de `Vantage.spec`](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/reference/latest/api-reference#vantagespec).

La matriz solo determina qué se incluye de entre los trabajadores que existan en el ConfigMap de cargas de trabajo de la versión seleccionada. Los charts que no figuran en las cargas de trabajo de esa versión simplemente no se pueden implementar. Por ejemplo, actualmente `worker-ocr-join` solo se incluye en el conjunto de cargas de trabajo de `vtc-2`, por lo que únicamente se implementa, como `vtc-2-worker-ocr-join-helm`, cuando `spec.techcore.versions` incluye `2`.

## Próximos pasos

> [card] [Referencia de la API](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/reference/latest/api-reference.md)
>
> Referencia detallada, campo por campo, del recurso personalizado `Vantage`.

> [card] [Instalar en Azure](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/providers/azure.md)
>
> Procedimiento de instalación paso a paso que utiliza estos charts.

> [card] [Self-Managed Kubernetes](https://docs.abbyy.com/es/vantage/self-hosted/v3.0/providers/self-managed.md)
>
> Instale con ingress, malla, secretos, almacenamiento y servicios de datos gestionados por el cliente.
