- Información general
- Requisitos
- Preinstalación
- Preparar la instalación
- Descarga de los paquetes de instalación
- Configurar el registro compatible con OCI
- Conceder permisos de instalación con roles de clúster
- Conceder permisos de instalación sin roles de clúster
- Disaster recovery: configuraciones activas/pasivas
- Generar el archivo de configuración mediante un asistente
- Ejemplo de input.json
- Configurar un secreto de Kubernetes como almacén de secretos
- Configurar Azure Key Vault como almacén de secretos
- Configurar HashiCorp Vault como almacén de secretos
- Configurar AWS Secrets Manager como almacén de secretos
- Instalar y configurar la malla de servicio
- Instalar y configurar la herramienta GitOps
- Instalar el operador de secretos externos
- Implementar Redis a través de OperatorHub
- Aplicar configuraciones varias
- Ejecutar uipathctl
- Instalación
- Después de la instalación
- Migración y actualización
- Supervisión y alertas
- Administración de clústeres
- Configuración específica del producto
- Configuración avanzada de Orchestrator
- Configurar parámetros de Orchestrator
- Configurar AppSettings
- Configurar el tamaño máximo de la solicitud
- Anular la configuración de almacenamiento a nivel de clúster
- Configurar NLog
- Guardar los registros del robot en Elasticsearch
- Configurar almacenes de credenciales
- Configurar clave de cifrado por tenant
- Limpiar la base de datos de Orchestrator
- Omitir la instalación de la biblioteca de host
- Ai Trust Layer
- Solución de problemas
- Cómo desinstalar Automation Suite
- Cómo resolver el fallo de comprobación de conectividad prerrequisito en OpenShift 4.16–4.18
- Cómo implementar Insights en un clúster habilitado para FIPS
- Cómo deshabilitar la habilitación automática de CDI en el operador de GPU de Nvidia
- Cómo codificar la URL de una contraseña de cadena de conexión de PostgreSQL
- 500 errores y limitación de tasa en solicitudes S3 en ODF
- Solución de problemas de secretos externos
- Configurar las tolerancias del controlador CSI para ODF 4.20
- Solución de problemas de Temporal como servicio
- Los pods de AI Center y Document Understanding no se inician con la verificación del certificado TLS habilitada
- Studio Desktop no puede cargar conectores y actividades de Integration Service
- Errores de validación del certificado TLS
- Mitigación manual de Política de red de ArgoCD (GHSA-47m3-95c7-g2g8)
- Configurar solicitudes de recursos y límites para cargas de trabajo creadas por uipathctl
Configurar un secreto de Kubernetes como almacén de secretos
Divide la configuración de input.json de las credenciales almacenadas en Kubernetes Secrets para mejorar la seguridad.
De forma predeterminada, las credenciales se definen en input.json. Para mejorar la seguridad, puedes dividir los datos en dos partes:
input.jsonsolo para almacenar valores de configuración.- Secreto de Kubernetes para almacenar credenciales (sirve como almacén de secretos).
No puedes almacenar rutas de certificados o credenciales relacionadas con certificados como parte del almacén de secretos.
Requisitos previos
Si el espacio de nombres aún no existe, créalo antes de implementar los productos de UiPath, de la siguiente manera:
kubectl create namespace <uipath-namespace>
kubectl create namespace <uipath-namespace>
El secreto debe crearse en el espacio de nombres donde deben implementarse los productos uipath .
Configuring input.json
Para que uipathctl identifique que las credenciales se almacenan en un secreto de Kubernetes, añade la siguiente sección a input.json:
"secret_store": {
"enabled": true,
"secret_name": "uipath-credentials" // Secret deployed in uipath ns with all the credentials configured.
}
"secret_store": {
"enabled": true,
"secret_name": "uipath-credentials" // Secret deployed in uipath ns with all the credentials configured.
}
Dependiendo de cómo quieras gestionar las credenciales, tu input.json puede contener tanto la configuración como las credenciales, o solo la configuración y las credenciales se almacenan en el secreto, como se muestra en el siguiente diagrama:
- El siguiente ejemplo muestra un
input.jsonpredeterminado con configuración y credenciales:{ "admin_username": "admin", "admin_password": "password", "apps": { "enabled": true, "external_object_storage": { "enabled": true, "account_key": "secretkey", "account_name": "as-storage-account", ... } }, "external_object_storage": { "enabled": true, "account_key": "secretkey", ... }, "fabric": { "redis": { "hostname": "redis-cache.mycompany.com", "password": "redispassword", "port": 6380, "tls": true } }, "fqdn": "automationsuite.mycompany.com", "orchestrator": { "enabled": true, "sql_connection_str": "Server=tcp:mssql.mycompany.com,1443;Initial Catalog=DB_NAME_PLACEHOLDER;Persist Security Info=False;User Id=sqladmin;Password='sqlpassword';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;", "external_object_storage": { "enabled": true, "account_key": "secretkey", "account_name": "os-storage-account", ... }, ... }, "registries": { "docker": { "url": "registry.uipath.com", "username": "username", "password": "password" }, "helm": { "url": "registry.uipath.com", "username": "username", "password": "password" } }, "snapshot": { "enabled": true, "external_object_storage": { "enabled": true, "client_id": "1fbd7d95-5f8c-4f70-90a6-fdf20310d10e", "client_secret": "client-secret", ... } }, "storage_class": "managed-premium", "storage_class_single_replica": "azurefile-csi", "sql_connection_string_template": "Server=tcp:mssql.mycompany.com,1443;Initial Catalog=DB_NAME_PLACEHOLDER;Persist Security Info=False;User Id=sqladmin;Password='sqlpassword';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;", "sql_connection_string_template_jdbc": "jdbc:sqlserver://mssql.mycompany.com:1443;database=DB_NAME_PLACEHOLDER;user=sqladmin;password={sqlpassword};encrypt=true;trustServerCertificate=true;loginTimeout=30;hostNameInCertificate=mssql.mycompany.com", "sql_connection_string_template_odbc": "SERVER=mssql.mycompany.com,1443;DATABASE=DB_NAME_PLACEHOLDER;DRIVER={ODBC Driver 17 for SQL Server};UID=sqladmin;PWD={sqlpassword};Encrypt=yes;TrustServerCertificate=yes;Connection Timeout=30;hostNameInCertificate=mssql.mycompany.com", "sql_connection_string_template_sqlalchemy_pyodbc": "mssql+pyodbc://sqladmin:sqlpassword@mssql.mycompany.com:1443/DB_NAME_PLACEHOLDER?driver=ODBC+Driver+17+for+SQL+Server", "postgresql_connection_string_template_sqlalchemy_pyodbc": "postgresql+psycopg2://sa:<password>@135.235.240.165:5432/DB_NAME_PLACEHOLDER" }{ "admin_username": "admin", "admin_password": "password", "apps": { "enabled": true, "external_object_storage": { "enabled": true, "account_key": "secretkey", "account_name": "as-storage-account", ... } }, "external_object_storage": { "enabled": true, "account_key": "secretkey", ... }, "fabric": { "redis": { "hostname": "redis-cache.mycompany.com", "password": "redispassword", "port": 6380, "tls": true } }, "fqdn": "automationsuite.mycompany.com", "orchestrator": { "enabled": true, "sql_connection_str": "Server=tcp:mssql.mycompany.com,1443;Initial Catalog=DB_NAME_PLACEHOLDER;Persist Security Info=False;User Id=sqladmin;Password='sqlpassword';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;", "external_object_storage": { "enabled": true, "account_key": "secretkey", "account_name": "os-storage-account", ... }, ... }, "registries": { "docker": { "url": "registry.uipath.com", "username": "username", "password": "password" }, "helm": { "url": "registry.uipath.com", "username": "username", "password": "password" } }, "snapshot": { "enabled": true, "external_object_storage": { "enabled": true, "client_id": "1fbd7d95-5f8c-4f70-90a6-fdf20310d10e", "client_secret": "client-secret", ... } }, "storage_class": "managed-premium", "storage_class_single_replica": "azurefile-csi", "sql_connection_string_template": "Server=tcp:mssql.mycompany.com,1443;Initial Catalog=DB_NAME_PLACEHOLDER;Persist Security Info=False;User Id=sqladmin;Password='sqlpassword';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;", "sql_connection_string_template_jdbc": "jdbc:sqlserver://mssql.mycompany.com:1443;database=DB_NAME_PLACEHOLDER;user=sqladmin;password={sqlpassword};encrypt=true;trustServerCertificate=true;loginTimeout=30;hostNameInCertificate=mssql.mycompany.com", "sql_connection_string_template_odbc": "SERVER=mssql.mycompany.com,1443;DATABASE=DB_NAME_PLACEHOLDER;DRIVER={ODBC Driver 17 for SQL Server};UID=sqladmin;PWD={sqlpassword};Encrypt=yes;TrustServerCertificate=yes;Connection Timeout=30;hostNameInCertificate=mssql.mycompany.com", "sql_connection_string_template_sqlalchemy_pyodbc": "mssql+pyodbc://sqladmin:sqlpassword@mssql.mycompany.com:1443/DB_NAME_PLACEHOLDER?driver=ODBC+Driver+17+for+SQL+Server", "postgresql_connection_string_template_sqlalchemy_pyodbc": "postgresql+psycopg2://sa:<password>@135.235.240.165:5432/DB_NAME_PLACEHOLDER" } - Los siguientes ejemplos muestran
input.jsonsolo con la configuración (secret_storeconfigurado) y las credenciales almacenadas por separado encredentials.json:- Ejemplo de
input.jsoncon configuración ysecret_storeconfigurado:{ "apps": { "enabled": true, "external_object_storage": { "enabled": true, ... } }, "external_object_storage": { "enabled": true, ... }, "fabric": { "redis": { "hostname": "redis-cache.mycompany.com", "port": 6380, "tls": true } }, "fqdn": "automationsuite.mycompany.com", "orchestrator": { "enabled": true, "external_object_storage": { "enabled": true, ... }, ... }, "registries": { "docker": { "url": "registry.uipath.com" }, "helm": { "url": "registry.uipath.com" } }, "secret_store": { "enabled": true, "secret_name": "uipath-credentials", "provider_configs": [] }, "snapshot": { "enabled": true, "external_object_storage": { "enabled": true, ... } } }{ "apps": { "enabled": true, "external_object_storage": { "enabled": true, ... } }, "external_object_storage": { "enabled": true, ... }, "fabric": { "redis": { "hostname": "redis-cache.mycompany.com", "port": 6380, "tls": true } }, "fqdn": "automationsuite.mycompany.com", "orchestrator": { "enabled": true, "external_object_storage": { "enabled": true, ... }, ... }, "registries": { "docker": { "url": "registry.uipath.com" }, "helm": { "url": "registry.uipath.com" } }, "secret_store": { "enabled": true, "secret_name": "uipath-credentials", "provider_configs": [] }, "snapshot": { "enabled": true, "external_object_storage": { "enabled": true, ... } } } credentials.jsonejemplo con credenciales:{ "admin_password": "password", "admin_username": "admin", "apps": { "external_object_storage": { "account_key": "secretkey" } }, "external_object_storage": { "account_key": "secretkey" }, "fabric": { "redis": { "password": "redispassword" } }, "orchestrator": { "external_object_storage": { "account_key": "secretkey" }, "sql_connection_str": "Server=tcp:mssql.mycompany.com,1443;Initial Catalog=DB_NAME_PLACEHOLDER;Persist Security Info=False;User Id=sqladmin;Password='sqlpassword';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;" }, "postgresql_connection_string_template_sqlalchemy_pyodbc": "postgresql+psycopg2://sa:<password>@135.235.240.165:5432/DB_NAME_PLACEHOLDER", "registries": { "docker": { "password": "password", "username": "username" }, "helm": { "password": "password", "username": "username" } }, "snapshot": { "external_object_storage": { "client_secret": "client-secret", "client_id": "1fbd7d95-5f8c-4f70-90a6-fdf20310d10e" } }, "sql_connection_string_template": "Server=tcp:mssql.mycompany.com,1443;Initial Catalog=DB_NAME_PLACEHOLDER;Persist Security Info=False;User Id=sqladmin;Password='sqlpassword';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;", "sql_connection_string_template_jdbc": "jdbc:sqlserver://mssql.mycompany.com:1443;database=DB_NAME_PLACEHOLDER;user=sqladmin;password={sqlpassword};encrypt=true;trustServerCertificate=true;loginTimeout=30;hostNameInCertificate=mssql.mycompany.com", "sql_connection_string_template_odbc": "SERVER=mssql.mycompany.com,1443;DATABASE=DB_NAME_PLACEHOLDER;DRIVER={ODBC Driver 17 for SQL Server};UID=sqladmin;PWD={sqlpassword};Encrypt=yes;TrustServerCertificate=yes;Connection Timeout=30;hostNameInCertificate=mssql.mycompany.com", "sql_connection_string_template_sqlalchemy_pyodbc": "mssql+pyodbc://sqladmin:sqlpassword@mssql.mycompany.com:1443/DB_NAME_PLACEHOLDER?driver=ODBC+Driver+17+for+SQL+Server" }%{ "admin_password": "password", "admin_username": "admin", "apps": { "external_object_storage": { "account_key": "secretkey" } }, "external_object_storage": { "account_key": "secretkey" }, "fabric": { "redis": { "password": "redispassword" } }, "orchestrator": { "external_object_storage": { "account_key": "secretkey" }, "sql_connection_str": "Server=tcp:mssql.mycompany.com,1443;Initial Catalog=DB_NAME_PLACEHOLDER;Persist Security Info=False;User Id=sqladmin;Password='sqlpassword';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;" }, "postgresql_connection_string_template_sqlalchemy_pyodbc": "postgresql+psycopg2://sa:<password>@135.235.240.165:5432/DB_NAME_PLACEHOLDER", "registries": { "docker": { "password": "password", "username": "username" }, "helm": { "password": "password", "username": "username" } }, "snapshot": { "external_object_storage": { "client_secret": "client-secret", "client_id": "1fbd7d95-5f8c-4f70-90a6-fdf20310d10e" } }, "sql_connection_string_template": "Server=tcp:mssql.mycompany.com,1443;Initial Catalog=DB_NAME_PLACEHOLDER;Persist Security Info=False;User Id=sqladmin;Password='sqlpassword';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;Max Pool Size=100;", "sql_connection_string_template_jdbc": "jdbc:sqlserver://mssql.mycompany.com:1443;database=DB_NAME_PLACEHOLDER;user=sqladmin;password={sqlpassword};encrypt=true;trustServerCertificate=true;loginTimeout=30;hostNameInCertificate=mssql.mycompany.com", "sql_connection_string_template_odbc": "SERVER=mssql.mycompany.com,1443;DATABASE=DB_NAME_PLACEHOLDER;DRIVER={ODBC Driver 17 for SQL Server};UID=sqladmin;PWD={sqlpassword};Encrypt=yes;TrustServerCertificate=yes;Connection Timeout=30;hostNameInCertificate=mssql.mycompany.com", "sql_connection_string_template_sqlalchemy_pyodbc": "mssql+pyodbc://sqladmin:sqlpassword@mssql.mycompany.com:1443/DB_NAME_PLACEHOLDER?driver=ODBC+Driver+17+for+SQL+Server" }%
- Ejemplo de
Almacenamiento de credenciales en un secreto de Kubernetes
Las credenciales se almacenan como parte de un secreto de Kubernetes, como se muestra en el siguiente ejemplo:
apiVersion: v1
kind: Secret
metadata:
name: uipath-credentials
namespace: uipath
type: Opaque
data:
config.json: ewogICJhZG1pbl9wYXNzd29yZCI6ICJwYXNzd29yZCIsCiAgImFkbWluX3VzZXJuYW1lIjogImFkbWluIiwKICAiYXBwcyI6IHsKICAgICJleHRlcm5hbF9vYmplY3Rfc3RvcmFnZSI6IHsKCiAgICAgICJhY2NvdW50X2tleSI6ICJzZWNyZXRrZXkiCiAgICB9CiAgfSwKICAiZXh0ZXJuYWxfb2JqZWN0X3N0b3JhZ2UiOiB7CiAgICAiYWNjb3VudF9rZXkiOiAic2VjcmV0a2V5IgogIH0sCiAgImZhYnJpYyI6IHsKICAgICJyZWRpcyI6IHsKICAgICAgInBhc3N3b3JkIjogInJlZGlzcGFzc3dvcmQiCiAgICB9CiAgfSwKICAib3JjaGVzdHJhdG9yIjogewogICAgImV4dGVybmFsX29iamVjdF9zdG9yYWdlIjogewogICAgICAiYWNjb3VudF9rZXkiOiAic2VjcmV0a2V5IgogICAgfSwKICAgICJzcWxfY29ubmVjdGlvbl9zdHIiOiAiU2VydmVyPXRjcDptc3NxbC5teWNvbXBhbnkuY29tLDE0NDM7SW5pdGlhbCBDYXRhbG9nPURCX05BTUVfUExBQ0VIT0xERVI7UGVyc2lzdCBTZWN1cml0eSBJbmZvPUZhbHNlO1VzZXIgSWQ9c3FsYWRtaW47UGFzc3dvcmQ9J3NxbHBhc3N3b3JkJztNdWx0aXBsZUFjdGl2ZVJlc3VsdFNldHM9RmFsc2U7RW5jcnlwdD1UcnVlO1RydXN0U2VydmVyQ2VydGlmaWNhdGU9VHJ1ZTtDb25uZWN0aW9uIFRpbWVvdXQ9MzA7TWF4IFBvb2wgU2l6ZT0xMDA7IgogIH0sCiAgInBvc3RncmVzcWxfY29ubmVjdGlvbl9zdHJpbmdfdGVtcGxhdGVfc3FsYWxjaGVteV9weW9kYmMiOiAicG9zdGdyZXNxbCtwc3ljb3BnMjovL3NhOiZsdDtwYXNzd29yZCZndDtAMTM1LjIzNS4yNDAuMTY1OjU0MzIvREJfTkFNRV9QTEFDRUhPTERFUiIsCiAgICAicmVnaXN0cmllcyI6IHsKICAgICJkb2NrZXIiOiB7CiAgICAgICJwYXNzd29yZCI6ICJwYXNzd29yZCIsCiAgICAgICJ1c2VybmFtZSI6ICJ1c2VybmFtZSIKICAgIH0sCiAgICAiaGVsbSI6IHsKICAgICAgInBhc3N3b3JkIjogInBhc3N3b3JkIiwKICAgICAgInVzZXJuYW1lIjogInVzZXJuYW1lIgogICAgfQogIH0sCiAgInNuYXBzaG90IjogewogICAgImV4dGVybmFsX29iamVjdF9zdG9yYWdlIjogewogICAgICAiY2xpZW50X3NlY3JldCI6ICJjbGllbnQtc2VjcmV0IiwKICAgICAgImNsaWVudF9pZCI6ICIxZmJkN2Q5NS01ZjhjLTRmNzAtOTBhNi1mZGYyMDMxMGQxMGUiCiAgICB9CiAgfSwKICAic3FsX2Nvbm5lY3Rpb25fc3RyaW5nX3RlbXBsYXRlIjogIlNlcnZlcj10Y3A6bXNzcWwubXljb21wYW55LmNvbSwxNDQzO0luaXRpYWwgQ2F0YWxvZz1EQl9OQU1FX1BMQUNFSE9MREVSO1BlcnNpc3QgU2VjdXJpdHkgSW5mbz1GYWxzZTtVc2VyIElkPXNxbGFkbWluO1Bhc3N3b3JkPSdzcWxwYXNzd29yZCc7TXVsdGlwbGVBY3RpdmVSZXN1bHRTZXRzPUZhbHNlO0VuY3J5cHQ9VHJ1ZTtUcnVzdFNlcnZlckNlcnRpZmljYXRlPVRydWU7Q29ubmVjdGlvbiBUaW1lb3V0PTMwO01heCBQb29sIFNpemU9MTAwOyIsCiAgInNxbF9jb25uZWN0aW9uX3N0cmluZ190ZW1wbGF0ZV9qZGJjIjogImpkYmM6c3Fsc2VydmVyOi8vbXNzcWwubXljb21wYW55LmNvbToxNDQzO2RhdGFiYXNlPURCX05BTUVfUExBQ0VIT0xERVI7dXNlcj1zcWxhZG1pbjtwYXNzd29yZD17c3FscGFzc3dvcmR9O2VuY3J5cHQ9dHJ1ZTt0cnVzdFNlcnZlckNlcnRpZmljYXRlPXRydWU7bG9naW5UaW1lb3V0PTMwO2hvc3ROYW1lSW5DZXJ0aWZpY2F0ZT1tc3NxbC5teWNvbXBhbnkuY29tIiwKICAic3FsX2Nvbm5lY3Rpb25fc3RyaW5nX3RlbXBsYXRlX29kYmMiOiAiU0VSVkVSPW1zc3FsLm15Y29tcGFueS5jb20sMTQ0MztEQVRBQkFTRT1EQl9OQU1FX1BMQUNFSE9MREVSO0RSSVZFUj17T0RCQyBEcml2ZXIgMTcgZm9yIFNRTCBTZXJ2ZXJ9O1VJRD1zcWxhZG1pbjtQV0Q9e3NxbHBhc3N3b3JkfTtFbmNyeXB0PXllcztUcnVzdFNlcnZlckNlcnRpZmljYXRlPXllcztDb25uZWN0aW9uIFRpbWVvdXQ9MzA7aG9zdE5hbWVJbkNlcnRpZmljYXRlPW1zc3FsLm15Y29tcGFueS5jb20iLAogICJzcWxfY29ubmVjdGlvbl9zdHJpbmdfdGVtcGxhdGVfc3FsYWxjaGVteV9weW9kYmMiOiAibXNzcWwrcHlvZGJjOi8vc3FsYWRtaW46c3FscGFzc3dvcmRAbXNzcWwubXljb21wYW55LmNvbToxNDQzL0RCX05BTUVfUExBQ0VIT0xERVI/ZHJpdmVyPU9EQkMrRHJpdmVyKzE3K2ZvcitTUUwrU2VydmVyIgp9
apiVersion: v1
kind: Secret
metadata:
name: uipath-credentials
namespace: uipath
type: Opaque
data:
config.json: ewogICJhZG1pbl9wYXNzd29yZCI6ICJwYXNzd29yZCIsCiAgImFkbWluX3VzZXJuYW1lIjogImFkbWluIiwKICAiYXBwcyI6IHsKICAgICJleHRlcm5hbF9vYmplY3Rfc3RvcmFnZSI6IHsKCiAgICAgICJhY2NvdW50X2tleSI6ICJzZWNyZXRrZXkiCiAgICB9CiAgfSwKICAiZXh0ZXJuYWxfb2JqZWN0X3N0b3JhZ2UiOiB7CiAgICAiYWNjb3VudF9rZXkiOiAic2VjcmV0a2V5IgogIH0sCiAgImZhYnJpYyI6IHsKICAgICJyZWRpcyI6IHsKICAgICAgInBhc3N3b3JkIjogInJlZGlzcGFzc3dvcmQiCiAgICB9CiAgfSwKICAib3JjaGVzdHJhdG9yIjogewogICAgImV4dGVybmFsX29iamVjdF9zdG9yYWdlIjogewogICAgICAiYWNjb3VudF9rZXkiOiAic2VjcmV0a2V5IgogICAgfSwKICAgICJzcWxfY29ubmVjdGlvbl9zdHIiOiAiU2VydmVyPXRjcDptc3NxbC5teWNvbXBhbnkuY29tLDE0NDM7SW5pdGlhbCBDYXRhbG9nPURCX05BTUVfUExBQ0VIT0xERVI7UGVyc2lzdCBTZWN1cml0eSBJbmZvPUZhbHNlO1VzZXIgSWQ9c3FsYWRtaW47UGFzc3dvcmQ9J3NxbHBhc3N3b3JkJztNdWx0aXBsZUFjdGl2ZVJlc3VsdFNldHM9RmFsc2U7RW5jcnlwdD1UcnVlO1RydXN0U2VydmVyQ2VydGlmaWNhdGU9VHJ1ZTtDb25uZWN0aW9uIFRpbWVvdXQ9MzA7TWF4IFBvb2wgU2l6ZT0xMDA7IgogIH0sCiAgInBvc3RncmVzcWxfY29ubmVjdGlvbl9zdHJpbmdfdGVtcGxhdGVfc3FsYWxjaGVteV9weW9kYmMiOiAicG9zdGdyZXNxbCtwc3ljb3BnMjovL3NhOiZsdDtwYXNzd29yZCZndDtAMTM1LjIzNS4yNDAuMTY1OjU0MzIvREJfTkFNRV9QTEFDRUhPTERFUiIsCiAgICAicmVnaXN0cmllcyI6IHsKICAgICJkb2NrZXIiOiB7CiAgICAgICJwYXNzd29yZCI6ICJwYXNzd29yZCIsCiAgICAgICJ1c2VybmFtZSI6ICJ1c2VybmFtZSIKICAgIH0sCiAgICAiaGVsbSI6IHsKICAgICAgInBhc3N3b3JkIjogInBhc3N3b3JkIiwKICAgICAgInVzZXJuYW1lIjogInVzZXJuYW1lIgogICAgfQogIH0sCiAgInNuYXBzaG90IjogewogICAgImV4dGVybmFsX29iamVjdF9zdG9yYWdlIjogewogICAgICAiY2xpZW50X3NlY3JldCI6ICJjbGllbnQtc2VjcmV0IiwKICAgICAgImNsaWVudF9pZCI6ICIxZmJkN2Q5NS01ZjhjLTRmNzAtOTBhNi1mZGYyMDMxMGQxMGUiCiAgICB9CiAgfSwKICAic3FsX2Nvbm5lY3Rpb25fc3RyaW5nX3RlbXBsYXRlIjogIlNlcnZlcj10Y3A6bXNzcWwubXljb21wYW55LmNvbSwxNDQzO0luaXRpYWwgQ2F0YWxvZz1EQl9OQU1FX1BMQUNFSE9MREVSO1BlcnNpc3QgU2VjdXJpdHkgSW5mbz1GYWxzZTtVc2VyIElkPXNxbGFkbWluO1Bhc3N3b3JkPSdzcWxwYXNzd29yZCc7TXVsdGlwbGVBY3RpdmVSZXN1bHRTZXRzPUZhbHNlO0VuY3J5cHQ9VHJ1ZTtUcnVzdFNlcnZlckNlcnRpZmljYXRlPVRydWU7Q29ubmVjdGlvbiBUaW1lb3V0PTMwO01heCBQb29sIFNpemU9MTAwOyIsCiAgInNxbF9jb25uZWN0aW9uX3N0cmluZ190ZW1wbGF0ZV9qZGJjIjogImpkYmM6c3Fsc2VydmVyOi8vbXNzcWwubXljb21wYW55LmNvbToxNDQzO2RhdGFiYXNlPURCX05BTUVfUExBQ0VIT0xERVI7dXNlcj1zcWxhZG1pbjtwYXNzd29yZD17c3FscGFzc3dvcmR9O2VuY3J5cHQ9dHJ1ZTt0cnVzdFNlcnZlckNlcnRpZmljYXRlPXRydWU7bG9naW5UaW1lb3V0PTMwO2hvc3ROYW1lSW5DZXJ0aWZpY2F0ZT1tc3NxbC5teWNvbXBhbnkuY29tIiwKICAic3FsX2Nvbm5lY3Rpb25fc3RyaW5nX3RlbXBsYXRlX29kYmMiOiAiU0VSVkVSPW1zc3FsLm15Y29tcGFueS5jb20sMTQ0MztEQVRBQkFTRT1EQl9OQU1FX1BMQUNFSE9MREVSO0RSSVZFUj17T0RCQyBEcml2ZXIgMTcgZm9yIFNRTCBTZXJ2ZXJ9O1VJRD1zcWxhZG1pbjtQV0Q9e3NxbHBhc3N3b3JkfTtFbmNyeXB0PXllcztUcnVzdFNlcnZlckNlcnRpZmljYXRlPXllcztDb25uZWN0aW9uIFRpbWVvdXQ9MzA7aG9zdE5hbWVJbkNlcnRpZmljYXRlPW1zc3FsLm15Y29tcGFueS5jb20iLAogICJzcWxfY29ubmVjdGlvbl9zdHJpbmdfdGVtcGxhdGVfc3FsYWxjaGVteV9weW9kYmMiOiAibXNzcWwrcHlvZGJjOi8vc3FsYWRtaW46c3FscGFzc3dvcmRAbXNzcWwubXljb21wYW55LmNvbToxNDQzL0RCX05BTUVfUExBQ0VIT0xERVI/ZHJpdmVyPU9EQkMrRHJpdmVyKzE3K2ZvcitTUUwrU2VydmVyIgp9
Crear el secreto de Kubernetes
El secreto de Kubernetes puede crearse utilizando el archivo credentials.json con el siguiente comando:
kubectl create secret generic <secret-name> \
--from-file=config.json=<path-to-credentials.json>/credentials.json \
--namespace=<uipath-namespace>
kubectl create secret generic <secret-name> \
--from-file=config.json=<path-to-credentials.json>/credentials.json \
--namespace=<uipath-namespace>