> ## 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.

# Azure

> Implemente Vantage 3.0 autoalojado en Azure Kubernetes Service con Azure Key Vault, el controlador Secrets Store CSI y Azure Workload Identity.

Azure es el proveedor validado para Vantage 3.0 autoalojado: Azure Kubernetes Service (AKS) con Azure Key Vault. Esta página ofrece una guía completa, de principio a fin, para la instalación en Azure: requisitos previos, configuración de la identidad, comandos de instalación de Helm y notas operativas. Los componentes individuales ofrecen alternativas nativas de Kubernetes cuando la CRD las admite, como el [proveedor Kubernetes Secrets](/es/vantage/self-hosted/v3.0/secrets-and-keyvault#kubernetes-secrets-provider) y el [almacenamiento personalizado](/es/vantage/self-hosted/v3.0/api-reference#vantagespecstoragecustom).

<div id="prerequisites">
  ## Prerrequisitos
</div>

Antes de trabajar con esta página, confirme que los [prerrequisitos de la plataforma](/es/vantage/self-hosted/v3.0/prerequisites) estén listos: Kubernetes, ArgoCD, Helm y los servicios subyacentes de SQL / Redis / SMTP / registro OCI / almacenamiento de objetos. Los elementos específicos de Azure que se indican a continuación se añaden a lo anterior.

| Componente                                                                                                               | Versión probada                                                             | Notas                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Azure Kubernetes Service (AKS)                                                                                           | 1.33.6                                                                      | El CRD y el chart del operador se instalan en el clúster.                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Azure SQL                                                                                                                | 12.0.2000.8 (nivel de compatibilidad 170, General Purpose Serverless Gen 5) | Sustenta las bases de datos de Vantage, una por cada alias de cadena de conexión (23 actualmente). Consulte [Cadenas de conexión de base de datos](#database-connection-strings).                                                                                                                                                                                                                                                                                                                |
| Azure Managed Redis                                                                                                      | 7.4 (EnterpriseCluster)                                                     | Se usa para la caché, los bloqueos y la caché del cliente.                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Azure Container Registry                                                                                                 | n/a                                                                         | Registry de destino para la migración OCI; sus cargas de trabajo extraen de él las imágenes de Vantage. Autenticación de la migración: sin autenticación, autenticación básica o Workload Identity + Azure RBAC. Para la extracción de imágenes, consulte [Acceso para extraer imágenes](#image-pull-access).                                                                                                                                                                                    |
| Azure StorageV2                                                                                                          | general purpose v2                                                          | Sustenta las cinco cadenas de conexión de la cuenta de almacenamiento (archivo, temporal (antigua), temporal, permanente y estándar). Consulte [Cadenas de conexión de la cuenta de almacenamiento](#storage-account-connection-strings).                                                                                                                                                                                                                                                        |
| Azure Key Vault                                                                                                          | n/a                                                                         | Contiene todos los secretos de Vantage (incluidos los materiales TLS codificados en PEM) cuando se usa el proveedor de secretos de Azure. La identidad seleccionada por `identityMode` debe tener acceso de lectura.                                                                                                                                                                                                                                                                             |
| AKS Istio Add-on                                                                                                         | `asm-1-28`                                                                  | Debe implementarse un ingress gateway externo.                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| [Azure Key Vault Provider for Secrets Store CSI Driver](https://azure.github.io/secrets-store-csi-driver-provider-azure) | 1.7.2 (Helm chart 1.7.2)                                                    | El complemento del proveedor CSI que obtiene los secretos al iniciar el pod.                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Azure Workload Identity                                                                                                  | n/a                                                                         | Federar el ServiceAccount de cada chart de Vantage con una identidad administrada asignada por el usuario que tenga acceso de lectura a los alias de Key Vault de ese chart. El operador no crea ni anota ServiceAccounts. También se usa para el trabajo de migración OCI (autenticación Workload Identity + Azure RBAC) y para Prometheus en la malla (Azure Monitor). Consulte [Secretos y Key Vault](/es/vantage/self-hosted/v3.0/secrets-and-keyvault#service-accounts-and-identity-scope). |
| AKS KEDA Add-on (opcional, recomendado)                                                                                  | `2.17.3-5`                                                                  | Necesario para la compatibilidad con el escalado automático de [KEDA](https://keda.sh/).                                                                                                                                                                                                                                                                                                                                                                                                         |

Deben completarse otras dos tareas de configuración antes de la instalación. Ambas se tratan más adelante, después de las variables de instalación a las que hacen referencia: [Conecte ArgoCD a su registro OCI](#connect-argocd-to-your-oci-registry) y [Acceso para extraer imágenes](#image-pull-access).

<div id="azure-key-vault-secrets">
  ## Secretos de Azure Key Vault
</div>

El operador de Vantage gestiona los secretos mediante **alias**. La configuración más sencilla en Azure es crear secretos de Key Vault con nombres que coincidan con cada alias; si su proceso de aprovisionamiento usa nombres distintos, proporcione una asignación de `objects` en `vantage.secrets.azure` para volver a asignarlos. La identidad seleccionada por `identityMode` (consulte [Variables de instalación](#install-variables)) debe tener acceso de **lectura** a todos los secretos que se enumeran a continuación.

La lista completa de alias (Platform, Storage, Databases, OAuth) se documenta en [Secretos y Key Vault](/es/vantage/self-hosted/v3.0/secrets-and-keyvault#secret-aliases). La lista siguiente corresponde al mismo conjunto y se reproduce aquí para la instalación en Azure.

<div id="platform">
  ### Plataforma
</div>

| Alias                          | Descripción                                                                                                                             |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| `sendgridApiKey`               | Clave de API de SendGrid. Obligatoria, salvo que configure `spec.smtp`.                                                                 |
| `redisConnectionString`        | Cadena de conexión de Redis.                                                                                                            |
| `redisCacheConnectionString`   | Cadena de conexión para la caché de Redis, los bloqueos y la caché del client. Puede reutilizar `redisConnectionString`.                |
| `secretStorageUserKeyVaultUri` | URI de Azure Key Vault usado para almacenar secretos. Puede ser el mismo almacén o uno independiente (se recomienda uno independiente). |

<div id="storage-account-connection-strings">
  ### Cadenas de conexión de la cuenta de almacenamiento
</div>

| Alias                                    | Descripción                                                            |
| ---------------------------------------- | ---------------------------------------------------------------------- |
| `storageArchiveConnectionString`         | Cadena de conexión de la cuenta de almacenamiento ("archive").         |
| `storageLegacyTemporaryConnectionString` | Cadena de conexión de la cuenta de almacenamiento ("temporary (old)"). |
| `storageTemporaryConnectionString`       | Cadena de conexión de la cuenta de almacenamiento ("temporary").       |
| `storagePermanentConnectionString`       | Cadena de conexión de la cuenta de almacenamiento ("permanent").       |
| `storageStandardConnectionString`        | Cadena de conexión de la cuenta de almacenamiento ("standard").        |

Consulte la documentación principal de Vantage para saber qué significa cada tipo de almacenamiento.

<div id="database-connection-strings">
  ### Cadenas de conexión de la base de datos
</div>

Un alias por cada base de datos diferente. Los nombres de las bases de datos que aparecen a continuación son ilustrativos; use los que genere su proceso de aprovisionamiento, siempre que la cadena de conexión apunte a la base de datos correcta.

| Alias                                        | Base de datos                                                               |
| -------------------------------------------- | --------------------------------------------------------------------------- |
| `apiRegistryDatabaseConnectionString`        | `apiregistry`                                                               |
| `auth2DatabaseConnectionString`              | `auth`                                                                      |
| `authIdentityDatabaseConnectionString`       | `auth-identity`                                                             |
| `cronServiceDatabaseConnectionString`        | `cron`                                                                      |
| `documentSetStorageDatabaseConnectionString` | `documentset`                                                               |
| `mailDatabaseConnectionString`               | `mail`                                                                      |
| `securityAuditDatabaseConnectionString`      | `security-audit`                                                            |
| `storageDatabaseConnectionString`            | `storage`                                                                   |
| `workflowDatabaseConnectionString`           | `workflows`                                                                 |
| `catalogStorageDatabaseConnectionString`     | `catalogstorage`                                                            |
| `folderImportDatabaseConnectionString`       | `folderimport`                                                              |
| `interactiveJobsDatabaseConnectionString`    | `interactive-jobs`                                                          |
| `mailImportDatabaseConnectionString`         | `mailimport`                                                                |
| `permissionsDatabaseConnectionString`        | `permissions`                                                               |
| `reportingDatabaseConnectionString`          | `reporting` (debe ser compatible con la indexación de almacén de columnas). |
| `secretStorageDatabaseConnectionString`      | `secretstorage`                                                             |
| `skillInfoDatabaseConnectionString`          | `skillinfo`                                                                 |
| `skillMonitorDatabaseConnectionString`       | `skillmonitor`                                                              |
| `subscriptionDatabaseConnectionString`       | `subscriptions`                                                             |
| `tokenManagementDatabaseConnectionString`    | `tokenmanagement`                                                           |
| `transactionsDatabaseConnectionString`       | `transactions`                                                              |
| `urlShortenerDatabaseConnectionString`       | `urlshortener`                                                              |
| `workspaceDatabaseConnectionString`          | `workspace`                                                                 |

<div id="oauth">
  ### OAuth
</div>

| Alias                        | Descripción                                 |
| ---------------------------- | ------------------------------------------- |
| `oAuthGoogleClientId`        | ID de cliente de Google para OAuth.         |
| `oAuthGoogleClientSecret`    | secreto de cliente de Google para OAuth.    |
| `oAuthMicrosoftClientId`     | ID de cliente de Microsoft para OAuth.      |
| `oAuthMicrosoftClientSecret` | secreto de cliente de Microsoft para OAuth. |

<div id="azure-key-vault-tls-secrets">
  ## Secretos TLS de Azure Key Vault
</div>

Los siguientes materiales TLS codificados en PEM deben almacenarse como **secretos** en Azure Key Vault (no como objetos de certificado de Key Vault). La identidad seleccionada por `identityMode` debe tener acceso de lectura a los cuatro alias de secretos.

| Alias                   | Descripción                                                                    |
| ----------------------- | ------------------------------------------------------------------------------ |
| `authSigningTlsCrt`     | Certificado codificado en PEM para la firma de autenticación.                  |
| `authSigningTlsKey`     | Clave privada codificada en PEM para la firma de autenticación.                |
| `authDeactivatedTlsCrt` | Certificado codificado en PEM para los tokens de autenticación desactivados.   |
| `authDeactivatedTlsKey` | Clave privada codificada en PEM para los tokens de autenticación desactivados. |

La forma más sencilla es crear dos certificados autofirmados en Key Vault llamados `auth-signing` y `auth-deactivated` (Nombre común = el valor de `dnsRecord` de Vantage) y, a continuación, crear cuatro secretos de Key Vault con nombres que coincidan con los alias anteriores. Si usa nombres distintos, proporcione un mapeo de `objects` en la configuración de sus secretos.

Para consultar el modelo conceptual de cómo el controlador Secrets Store CSI pone estos secretos a disposición de los pods, consulte [Secretos y Key Vault](/es/vantage/self-hosted/v3.0/secrets-and-keyvault).

<div id="install-variables">
  ## Variables de instalación
</div>

Tenga a mano estos valores antes de ejecutar los comandos de instalación:

| Variable                                                    | Descripción                                                                                                                                                  |
| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `$operator_namespace`                                       | namespace donde instalar el operador de Vantage.                                                                                                             |
| `$install_namespace`                                        | namespace donde instalar Vantage. Puede ser cualquier namespace; normalmente `app`.                                                                          |
| `$operator_version`                                         | Versión del Helm chart `vantage-operator`.                                                                                                                   |
| `$selfhosted_version`                                       | Versión del Helm chart `vantage-selfhosted`.                                                                                                                 |
| `$charts_uri`                                               | URI de OCI que aloja el Helm chart del operador de Vantage.                                                                                                  |
| `$chart_uri`                                                | URI de OCI que aloja el Helm chart `vantage-selfhosted`.                                                                                                     |
| `$release_name`                                             | Nombre de la release de Helm para `vantage-selfhosted`.                                                                                                      |
| `$your_vantage_hostname`                                    | Nombre de host DNS mediante el que se podrá acceder a Vantage.                                                                                               |
| `$ingress_tls_secret_name`                                  | Nombre del secret `kubernetes.io/tls` en el namespace del ingress gateway.                                                                                   |
| `$key_vault_name`, `$tenant_id`, `$client_id`               | Nombre de Azure Key Vault, ID del tenant e ID de cliente de la UAMI con acceso de lectura a Key Vault.                                                       |
| `$your_mailfrom`                                            | Dirección del remitente para el correo saliente.                                                                                                             |
| `$smtp_host`, `$smtp_port`, `$smtp_login`, `$smtp_password` | configuración SMTP saliente. **Opcional**: omítala si usa SendGrid (el valor predeterminado; proporcione `sendgridApiKey` mediante su proveedor de secrets). |
| `$your_platformadmin_email`                                 | Correo electrónico inicial del administrador de la plataforma.                                                                                               |
| `$your_oci_host`                                            | Host del registry OCI al que se migrarán los artifacts de Vantage.                                                                                           |
| `$abbyy_oci_source_host`, `$abbyy_oci_source_repository`    | Registry y repositorio de origen de los artifacts distribuidos por ABBYY. Los valores documentados son `abbyy.jfrog.io` y `abbyy-docker`.                    |

<div id="connect-argocd-to-your-oci-registry">
  ## Conecte ArgoCD a su registro OCI
</div>

ArgoCD extrae los charts de componentes de Vantage de su registro OCI, así que configure una conexión en ArgoCD para darle acceso a ese registro. ArgoCD es software de terceros que usted instala y mantiene, por lo que debe crear esta conexión usted mismo registrando ese registro como un repositorio de ArgoCD. consulte [Private Repositories](https://argo-cd.readthedocs.io/en/stable/user-guide/private-repositories/) en la Documentación de ArgoCD.

En Azure, el método recomendado es [Azure Workload Identity](https://argo-cd.readthedocs.io/en/stable/user-guide/private-repositories/#azure-container-registryazure-repos-using-azure-workload-identity), como se describe en la Documentación de ArgoCD.

<div id="image-pull-access">
  ## Acceso para descargar imágenes
</div>

Sus cargas de trabajo necesitan descargar imágenes de su registro. Configure el acceso de descarga de una de estas dos maneras. Los nombres `my-pull-secret` y `my-service-account` que aparecen a continuación son solo ejemplos; sustitúyalos por los suyos.

**Opción 1 (Azure): otorgue `AcrPull` a la identidad administrada de AKS.** Las implementaciones en Azure pueden simplificarse otorgando [`AcrPull`](https://learn.microsoft.com/azure/aks/cluster-container-registry-integration) en su Azure Container Registry a la identidad administrada de AKS (la identidad de kubelet), en lugar de configurar pull secrets. Con esto configurado, puede omitir las opciones `--set` del pull secret en los Pasos 1 y 2.

**Opción 2: secretos de extracción de imágenes de Kubernetes.** Cree un secreto de extracción del registro ([documentación de Kubernetes](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)) y luego configúrelo para cada componente:

| Component                    | Configuration                                                                                                                                                                                                                                                                                                          |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Pods del operador            | `--set "manager.imagePullSecrets[0].name=my-pull-secret"` en el chart `vantage-operator`. Consulte [Paso 1](#step-1-install-the-vantage-operator).                                                                                                                                                                     |
| trabajo de migración de OCI  | Ejecute el trabajo con una ServiceAccount que incluya el secreto de extracción (`vantage.ociMigration.serviceAccountName=my-service-account`) o haga referencia al secreto en la entrada de origen (`vantage.ociMigration.sources[0].credentialsRef.name=my-pull-secret`). Consulte [Paso 2](#step-2-install-vantage). |
| Cargas de trabajo de Vantage | Agregue el secreto de extracción a `imagePullSecrets` de la ServiceAccount especificada por `vantage.serviceAccountName`. Consulte [Paso 2](#step-2-install-vantage).                                                                                                                                                  |

Usted mismo crea y mantiene las asignaciones de roles, las ServiceAccounts y los secretos de extracción.

<div id="step-1-install-the-vantage-operator">
  ## Paso 1: Instalar el operador de Vantage
</div>

Seleccione un namespace para el operador (no tiene que ser `app`) e instale el chart:

```bash theme={null}
helm upgrade --install vantage-operator $charts_uri/vantage-operator \
  --version $operator_version \
  --namespace $operator_namespace \
  --wait
```

Si usa secretos de extracción en lugar de `AcrPull` (consulte [Acceso para extraer imágenes](#image-pull-access)), anexe:

```bash theme={null}
  --set "manager.imagePullSecrets[0].name=my-pull-secret"
```

Consulte los [valores del chart `vantage-operator`](/es/vantage/self-hosted/v3.0/helm-chart#vantage-operator) para conocer otros valores que puede proporcionar.

<div id="step-2-install-vantage">
  ## Paso 2: Instalar Vantage
</div>

Instale el chart `vantage-selfhosted` en el namespace que elija, con la configuración de secrets y los ajustes de migración de OCI:

```bash theme={null}
helm upgrade --install $release_name $chart_uri/vantage-selfhosted \
  --version $selfhosted_version \
  --namespace $install_namespace \
  --set "operator.namespace=$operator_namespace" \
  --set "ingress.tls.secretName=$ingress_tls_secret_name" \
  --set "vantage.dnsRecord=$your_vantage_hostname" \
  --set "vantage.mailFrom=$your_mailfrom" \
  --set "vantage.platformAdminEmail=$your_platformadmin_email" \
  --set "vantage.secrets.azure.keyVaultName=$key_vault_name" \
  --set "vantage.secrets.azure.tenantId=$tenant_id" \
  --set "vantage.secrets.azure.clientId=$client_id" \
  --set "vantage.ociMigration.enabled=true" \
  --set "vantage.ociMigration.sources[0].host=$abbyy_oci_source_host" \
  --set "vantage.ociMigration.sources[0].repository=$abbyy_oci_source_repository" \
  --set "vantage.ociMigration.destination.host=$your_oci_host" \
  --wait
```

Si utiliza `secretos de extracción` en lugar de `AcrPull` (consulte [acceso de extracción de imágenes](#image-pull-access)), anexe la configuración de extracción para las cargas de trabajo de Vantage y el trabajo de migración:

```bash theme={null}
  --set "vantage.serviceAccountName=my-service-account" \
  --set "vantage.ociMigration.serviceAccountName=my-service-account"
```

`my-service-account` es una ServiceAccount que se crea en `$install_namespace` con su secreto de extracción del registry incluido en `imagePullSecrets`. Como alternativa para el trabajo de migración, haga referencia en su lugar al secreto de extracción en la entrada de origen:

```bash theme={null}
  --set "vantage.ociMigration.sources[0].credentialsRef.name=my-pull-secret"
```

SendGrid es el proveedor de correo predeterminado: proporciona una `sendgridApiKey` en tu Key Vault y no necesitas ninguna otra configuración de correo. Para usar SMTP en su lugar, añade:

```bash theme={null}
  --set "vantage.smtp.host=$smtp_host" \
  --set "vantage.smtp.port=$smtp_port" \
  --set "vantage.smtp.login=$smtp_login" \      # opcional
  --set "vantage.smtp.password=$smtp_password"  # opcional
```

<Note>
  `vantage.secrets.azure.identityMode` usa `workloadIdentity` de forma predeterminada. Para usar el modelo heredado de identidad de pod o de identidad administrada por VM, consulte [Secretos y Key Vault](/es/vantage/self-hosted/v3.0/secrets-and-keyvault#identity-modes).
</Note>

Las opciones `--set` anteriores corresponden directamente a los campos del [recurso personalizado de Vantage](/es/vantage/self-hosted/v3.0/api-reference) y del [`vantage-selfhosted` chart](/es/vantage/self-hosted/v3.0/helm-chart).

<div id="step-3-monitor-installation-progress">
  ## Paso 3: Supervisar el progreso de la instalación
</div>

Espere a que el recurso personalizado de Vantage muestre `Ready`:

```bash theme={null}
kubectl -n $install_namespace wait \
  --for=condition=Ready vantages.vantage.abbyy.com/$release_name \
  --timeout=30m
```

Esta es una señal general; indica que la instalación de Vantage Core se ha completado. La instalación de skills se sigue mediante un trabajo independiente y es posible que aún se esté ejecutando (consulte más abajo).

Para obtener una visibilidad más detallada de la migración de artefactos, supervise por separado el trabajo de migración de OCI:

```bash theme={null}
kubectl -n $install_namespace wait --for=create job/$release_name-oci-migration --timeout=2m
kubectl -n $install_namespace wait --for=condition=Complete job/$release_name-oci-migration --timeout=20m
```

Una vez completada la migración, ArgoCD (API o UI) ofrece la visibilidad más detallada del estado de sincronización de cada chart. La única excepción es la instalación de skills: los skills se instalan mediante un trabajo de Kubernetes independiente que no aparece en ArgoCD.

Puede usar Vantage mientras la instalación de skills sigue en curso. Supervise el trabajo directamente:

```bash theme={null}
kubectl -n $install_namespace wait --for=create job/$install_namespace-skill-installer-job
kubectl -n $install_namespace wait --for=condition=Complete job/$install_namespace-skill-installer-job
```

<div id="step-4-access-vantage">
  ## Paso 4: Accede a Vantage
</div>

Una vez que el recurso muestre `Ready`, la instancia de Vantage estará disponible en:

```
https://$your_vantage_hostname
```

<Note>
  Es posible que, en este momento, el trabajo del instalador de skill siga en ejecución. Puede iniciar sesión y usar Vantage mientras continúa la instalación del skill; supervise el trabajo con los comandos de [Step 3](#step-3-monitor-installation-progress).
</Note>

<div id="azure-specific-operational-notes">
  ## Notas operativas específicas de Azure
</div>

* **Supervisión**: En AKS, el patrón recomendado es Azure Monitor Workspace + Azure Managed Grafana con un Prometheus en la malla que recopila métricas de Vantage a través de Istio mTLS. Consulte [Azure Managed Monitoring](/es/vantage/self-hosted/v3.0/monitoring/azure-managed) para conocer la configuración completa.
* **Workload Identity**: El modo de autenticación predeterminado del controlador Secrets Store CSI. También es un escenario de autenticación compatible para el trabajo de migración de OCI (Workload Identity + Azure RBAC) y lo utiliza el Prometheus en la malla, que envía métricas a Azure Monitor mediante remote-write. Consulte [Secretos y Key Vault](/es/vantage/self-hosted/v3.0/secrets-and-keyvault#identity-modes).

<div id="whats-next">
  ## Siguientes pasos
</div>

<CardGroup cols={2}>
  <Card title="Arquitectura" icon="diagram-project" href="/es/vantage/self-hosted/v3.0/architecture">
    Cómo funciona el patrón operador + ArgoCD + CRD.
  </Card>

  <Card title="Monitorización" icon="chart-line" href="/es/vantage/self-hosted/v3.0/monitoring/overview">
    Azure Monitor Workspace + Managed Grafana con Prometheus en la malla.
  </Card>

  <Card title="Actualización" icon="arrow-up" href="/es/vantage/self-hosted/v3.0/upgrading">
    Flujo de trabajo de actualización manual para pasar de una versión 3.0 de Vantage a otra.
  </Card>

  <Card title="Solución de problemas" icon="stethoscope" href="/es/vantage/self-hosted/v3.0/troubleshooting">
    Problemas habituales con operador, ArgoCD, Istio y Key Vault.
  </Card>
</CardGroup>
