- Vue d'ensemble (Overview)
- Prérequis
- Pré-installation
- Préparation de l'installation
- Téléchargement des packages d'installation
- Configuration du registre conforme à OCI
- Octroi d'autorisations d'installation
- Disaster Recovery : configurations active/passive
- Génération du fichier de configuration à l'aide d'un assistant
- Exemple AKS input.json
- Exemple d'EKS input.json
- Configuration d'une clé secrète Kubernetes en tant que magasin de clés secrètes
- Configuration d'Azure Key Vault en tant que magasin de clés secrètes
- Configuration de HashiCorp Vault en tant que magasin secret
- Configuration d'AWS Secrets Manager en tant que magasin de clés secrètes
- Installation et configuration du service Mesh
- Installer et configurer l'outil GitOps
- Installation de l'opérateur de clés secrètes externes dans Kubernetes
- Application de diverses configurations
- Exécution de uipathctl
- Installation
- Post-installation
- Migration et mise à niveau
- Surveillance et alerte
- Administration du cluster
- Configuration spécifique au produit
- Configuration avancée d'Orchestrator
- Configuration des paramètres d'Orchestrator
- Configuration des paramètres d'application
- Configuration de la taille maximale de la requête
- Remplacement de la configuration du stockage au niveau du cluster
- Configuration de NLog
- Enregistrement des journaux du robot dans Elasticsearch
- Configuration des magasins d'informations d'identification
- Configuration de la clé de chiffrement par locataire
- Nettoyer la base de données Orchestrator
- Ignorer l’installation de la bibliothèque hôte
- Rotation des informations d’identification de stockage d’objets blob
- Désactivation de l'utilisation d'URL pré-signées lors du téléchargement de données vers le stockage Amazon S3
- Configuration de la sécurité de l'application de processus
- Configurer une authentification Kerberos avec l’authentification MSSQL de base pour Process Mining
- AI Trust Layer
- Résolution des problèmes
- Échec de l’enregistrement d’AI Center après la mise à niveau vers la version 2023.10 ou une version ultérieure
- Volumes Insights créés dans deux zones différentes après la migration
- La mise à niveau échoue en raison du remplacement des tailles de PVC Insights
- Les composants de sauvegarde Velero restent après la mise à niveau sur AKS depuis Automation Suite 2024.10.x
- La configuration de sauvegarde ne fonctionne pas en raison d’un échec de connexion à Azure Government
- Pods dans l'espace de noms uipath bloqués lors de l'activation des rejets de nœuds personnalisés
- Impossible de lancer Automation Hub et Apps avec la configuration proxy
- La sauvegarde de Velero échoue avec l'erreur FailedValidation
- Résolution des problèmes de clés secrètes externes
- Résolution des problèmes de Temporel en tant que service
- Les pods AI Center et Document Understanding ne démarrent pas avec la vérification du certificat TLS activée
- Erreurs de validation du certificat TLS
- Fluentd n’exporte pas les journaux dans les environnements IPv6
- Studio Desktop ne peut pas charger les connecteurs et activités Integration Service
- Atténuation manuelle de la politique réseau ArgoCD
- Configurer les requêtes et les limites de ressources pour les charges de travail créées par uipathctl
Configuration d'Azure Key Vault en tant que magasin de clés secrètes
Configurez Azure Key Vault en tant que magasin de clés secrètes à l’aide de l’authentification Service Principal ou Workload Identity sur EKS/AKS.
Vous pouvez configurer Azure Key Vault en tant que magasin secret à l'aide de l'une des méthodes suivantes :
- Authentification principale
- Authentification de l'identité de la charge de travail
Par défaut, toutes les données sensibles sont définies dans input.json. Vous pouvez séparer ces données en deux parties :
input.json: contient uniquement les données de configuration.- Azure Key Vault : enregistre les informations d'identification en toute sécurité.
Vous ne pouvez pas stocker les chemins de certificat ou les informations d'identification liées au certificat dans le magasin secret.
Toutes les informations d'identification référencées dans input.json doivent exister en tant que clés secrètes dans Azure Key Vault avant de configurer le magasin de clés secrètes. Si des informations d'identification référencées sont manquantes dans Azure Key Vault, l'installation échoue.
Utilisation de l'authentification Service Principal
Pour configurer Azure Key Vault en tant que magasin secret à l'aide de l'authentification de Service Principal, procédez comme suit :
-
Pour
uipathctlafin d'identifier que les informations d'identification sont stockées dans Azure Key Vault, vous devez ajouter la section magasin de clés secrètes àinput.json, comme illustré dans l'exemple suivant :"secret_store": { "enabled": true, "provider_configs": [ { "type": "azure", "credentials_secret_name": "azure-service-principal-secret", "refresh_interval": "5m", "name": "azure-secret-store", "environment_type": "PublicCloud", "azure_kv": { "vault_url": "https://eso-azure-kv.vault.azure.net/", "tenant_id": "00000000-0000-0000-0000-000000000000" } } ] }"secret_store": { "enabled": true, "provider_configs": [ { "type": "azure", "credentials_secret_name": "azure-service-principal-secret", "refresh_interval": "5m", "name": "azure-secret-store", "environment_type": "PublicCloud", "azure_kv": { "vault_url": "https://eso-azure-kv.vault.azure.net/", "tenant_id": "00000000-0000-0000-0000-000000000000" } } ] } -
Créez une clé secrète Kubernetes qui stocke les informations d'identification Azure Service Principal, comme illustré dans l'exemple suivant :
apiVersion: v1 kind: Secret metadata: name: azure-service-principal-secret type: Opaque stringData: clientId: <client-id> clientSecret: <client-secret>apiVersion: v1 kind: Secret metadata: name: azure-service-principal-secret type: Opaque stringData: clientId: <client-id> clientSecret: <client-secret> -
Déployez la clé secrète dans l’espace de noms
uipathà l’aide de la commande suivante :kubectl apply -f azure-service-principal-secret -n uipathkubectl apply -f azure-service-principal-secret -n uipath -
Mettez à jour les valeurs d'identification dans
input.jsonpour référencer les clés secrètes stockées dans Azure Key Vault en utilisant le format suivant :vault/<vault-name>/<key-stored-in-the-vault>vault/<vault-name>/<key-stored-in-the-vault>Où :
vault- mot clé statique.vault-name: la valeur desecret_store.provider_configs[i].name(par exemple,azure-secret-store).key-stored-in-the-vault: nom de la clé secrète tel que stocké dans Azure Key Vault.Avant la modification, vos informations d'identification peuvent ressembler à ceci :
"admin_username": "admin", "admin_password": "password","admin_username": "admin", "admin_password": "password",Après les avoir mis à jour pour référencer Azure Key Vault, ils devraient ressembler à ceci :
"admin_username": "vault/azure-secret-store/admin-username-1234", "admin_password": "vault/azure-secret-store/admin-password-1234","admin_username": "vault/azure-secret-store/admin-username-1234", "admin_password": "vault/azure-secret-store/admin-password-1234",L'image suivante montre les clés secrètes stockées dans Azure Key Vault.
L'exemple suivant affiche une configuration input.json avec des informations d'identification stockées dans Azure Key Vault.
{
"admin_password": "vault/azure-secret-store/admin-password-1234",
"admin_username": "vault/azure-secret-store/admin-username-1234",
"apps": {
"enabled": true,
"external_object_storage": {
"account_key": "vault/azure-secret-store/apps-external-object-storage-account-key-1234",
"account_name": "as-storage-account",
"azure_fqdn_suffix": "core.windows.net",
"bucket_name": "uipath-as-platform",
"create_bucket": true,
"enabled": true,
"region": "us-east-1",
"storage_type": "azure",
"use_instance_profile": true
}
},
"exclude_components": [],
"external_object_storage": {
"account_key": "vault/azure-secret-store/external-object-storage-account-key-1234",
"account_name": "as-storage-account",
"azure_fqdn_suffix": "core.windows.net",
"create_bucket": true,
"enabled": true,
"region": "us-east-1",
"storage_type": "azure",
"use_instance_profile": true
},
"fabric": {
"redis": {
"hostname": "redis-cache.mycompany.com",
"password": "vault/azure-secret-store/fabric-redis-password-1234",
"port": 6380,
"tls": true
}
},
"fqdn": "automationsuite.mycompany.com",
"infra": {
"docker_registry": {}
},
"ingress": {
"gateway_selector": {
"istio": "ingressgateway"
},
"service_annotations": {
"service.beta.kubernetes.io/azure-load-balancer-internal": "false",
"service.beta.kubernetes.io/azure-load-balancer-ipv4": "ip-address"
}
},
"install_type": "online",
"integrationservices": {
"enabled": true,
"external_object_storage": {
"bucket_name": "uipath-as-platform"
}
},
"istioMinProtocolVersion": "TLSV1_3",
"kubernetes_distribution": "aks",
"orchestrator": {
"enabled": true,
"external_object_storage": {
"account_key": "vault/azure-secret-store/orchestrator-external-object-storage-account-key-1234",
"account_name": "os-storage-account",
"azure_fqdn_suffix": "core.windows.net",
"bucket_name": "uipath-as-orchestrator",
"create_bucket": true,
"enabled": true,
"region": "us-east-1",
"storage_type": "azure",
"use_instance_profile": true
},
"sql_connection_str": "vault/azure-secret-store/orchestrator-sql-connection-str-1234",
"testautomation": {
"enabled": true
},
"updateserver": {
"enabled": true
}
},
"platform": {
"enabled": true
},
"pod_identity": {
"aks_managed_identity_client_id": "client-id",
"enabled": true
},
"postgresql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/postgresql-connection-string-template-sqlalchemy-pyodbc-1234",
"profile": "ha",
"proxy": {
"enabled": true,
"http_proxy": "\u003c\u003chttp://\u003cPROXY-SERVER-IP\u003e\u003e:\u003cPROXY-PORT\u003e",
"https_proxy": "\u003c\u003chttp://\u003cPROXY-SERVER-IP\u003e\u003e:\u003cPROXY-PORT\u003e",
"no_proxy": "paste list from Configuring the cluster section"
},
"registries": {
"docker": {
"password": "",
"pull_secret_name": "registry-credentials",
"url": "registry.uipath.com",
"username": ""
},
"helm": {
"password": "",
"url": "registry.uipath.com",
"username": ""
}
},
"secret_store": {
"enabled": true,
"secret_name": "",
"provider_configs": [
{
"type": "azure",
"credentials_secret_name": "azure-service-principal-secret",
"is_default": true,
"refresh_interval": "5m",
"name": "azure-secret-store",
"azure_kv": {
"vault_url": "https://eso-azure-kv.vault.azure.net/",
"tenant_id": "00000000-0000-0000-0000-000000000000",
"managed_identity_id": null
},
"aws_kv": {
"role_arn": null
},
"hashicorp_kv": {}
}
]
},
"snapshot": {
"aks_infra_resource_group": "MC_ci-asaks4002399_ci-asaks4002399_eastus",
"enabled": true,
"external_object_storage": {
"account_name": "storaccid2547865",
"auth_mode": "ServicePrincipal",
"bucket_name": "uipath-backup",
"client_id": "1fbd7d95-5f8c-4f70-90a6-fdf20310d10e",
"client_secret": "vault/azure-secret-store/snapshot-external-object-storage-client-secret-1234",
"cloud_name": "AzurePublicCloud",
"resource_group": "ci-asaks4002399",
"storage_type": "azure",
"subscription_id": "b65b0225-ce9b-4a79-9dd9-c00071d40d64",
"tenant_id": "00000000-0000-0000-0000-000000000000"
}
},
"sql_connection_string_template": "vault/azure-secret-store/sql-connection-string-template-1234",
"sql_connection_string_template_jdbc": "vault/azure-secret-store/sql-connection-string-template-jdbc-1234",
"sql_connection_string_template_odbc": "vault/azure-secret-store/sql-connection-string-template-odbc-1234",
"sql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/sql-connection-string-template-sqlalchemy-pyodbc-1234",
"storage_class": "managed-premium",
"storage_class_single_replica": "azurefile-csi",
"test_manager": {
"enabled": true,
"external_object_storage": {
"bucket_name": "uipath-as-platform"
}
},
"tolerations": []
}
{
"admin_password": "vault/azure-secret-store/admin-password-1234",
"admin_username": "vault/azure-secret-store/admin-username-1234",
"apps": {
"enabled": true,
"external_object_storage": {
"account_key": "vault/azure-secret-store/apps-external-object-storage-account-key-1234",
"account_name": "as-storage-account",
"azure_fqdn_suffix": "core.windows.net",
"bucket_name": "uipath-as-platform",
"create_bucket": true,
"enabled": true,
"region": "us-east-1",
"storage_type": "azure",
"use_instance_profile": true
}
},
"exclude_components": [],
"external_object_storage": {
"account_key": "vault/azure-secret-store/external-object-storage-account-key-1234",
"account_name": "as-storage-account",
"azure_fqdn_suffix": "core.windows.net",
"create_bucket": true,
"enabled": true,
"region": "us-east-1",
"storage_type": "azure",
"use_instance_profile": true
},
"fabric": {
"redis": {
"hostname": "redis-cache.mycompany.com",
"password": "vault/azure-secret-store/fabric-redis-password-1234",
"port": 6380,
"tls": true
}
},
"fqdn": "automationsuite.mycompany.com",
"infra": {
"docker_registry": {}
},
"ingress": {
"gateway_selector": {
"istio": "ingressgateway"
},
"service_annotations": {
"service.beta.kubernetes.io/azure-load-balancer-internal": "false",
"service.beta.kubernetes.io/azure-load-balancer-ipv4": "ip-address"
}
},
"install_type": "online",
"integrationservices": {
"enabled": true,
"external_object_storage": {
"bucket_name": "uipath-as-platform"
}
},
"istioMinProtocolVersion": "TLSV1_3",
"kubernetes_distribution": "aks",
"orchestrator": {
"enabled": true,
"external_object_storage": {
"account_key": "vault/azure-secret-store/orchestrator-external-object-storage-account-key-1234",
"account_name": "os-storage-account",
"azure_fqdn_suffix": "core.windows.net",
"bucket_name": "uipath-as-orchestrator",
"create_bucket": true,
"enabled": true,
"region": "us-east-1",
"storage_type": "azure",
"use_instance_profile": true
},
"sql_connection_str": "vault/azure-secret-store/orchestrator-sql-connection-str-1234",
"testautomation": {
"enabled": true
},
"updateserver": {
"enabled": true
}
},
"platform": {
"enabled": true
},
"pod_identity": {
"aks_managed_identity_client_id": "client-id",
"enabled": true
},
"postgresql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/postgresql-connection-string-template-sqlalchemy-pyodbc-1234",
"profile": "ha",
"proxy": {
"enabled": true,
"http_proxy": "\u003c\u003chttp://\u003cPROXY-SERVER-IP\u003e\u003e:\u003cPROXY-PORT\u003e",
"https_proxy": "\u003c\u003chttp://\u003cPROXY-SERVER-IP\u003e\u003e:\u003cPROXY-PORT\u003e",
"no_proxy": "paste list from Configuring the cluster section"
},
"registries": {
"docker": {
"password": "",
"pull_secret_name": "registry-credentials",
"url": "registry.uipath.com",
"username": ""
},
"helm": {
"password": "",
"url": "registry.uipath.com",
"username": ""
}
},
"secret_store": {
"enabled": true,
"secret_name": "",
"provider_configs": [
{
"type": "azure",
"credentials_secret_name": "azure-service-principal-secret",
"is_default": true,
"refresh_interval": "5m",
"name": "azure-secret-store",
"azure_kv": {
"vault_url": "https://eso-azure-kv.vault.azure.net/",
"tenant_id": "00000000-0000-0000-0000-000000000000",
"managed_identity_id": null
},
"aws_kv": {
"role_arn": null
},
"hashicorp_kv": {}
}
]
},
"snapshot": {
"aks_infra_resource_group": "MC_ci-asaks4002399_ci-asaks4002399_eastus",
"enabled": true,
"external_object_storage": {
"account_name": "storaccid2547865",
"auth_mode": "ServicePrincipal",
"bucket_name": "uipath-backup",
"client_id": "1fbd7d95-5f8c-4f70-90a6-fdf20310d10e",
"client_secret": "vault/azure-secret-store/snapshot-external-object-storage-client-secret-1234",
"cloud_name": "AzurePublicCloud",
"resource_group": "ci-asaks4002399",
"storage_type": "azure",
"subscription_id": "b65b0225-ce9b-4a79-9dd9-c00071d40d64",
"tenant_id": "00000000-0000-0000-0000-000000000000"
}
},
"sql_connection_string_template": "vault/azure-secret-store/sql-connection-string-template-1234",
"sql_connection_string_template_jdbc": "vault/azure-secret-store/sql-connection-string-template-jdbc-1234",
"sql_connection_string_template_odbc": "vault/azure-secret-store/sql-connection-string-template-odbc-1234",
"sql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/sql-connection-string-template-sqlalchemy-pyodbc-1234",
"storage_class": "managed-premium",
"storage_class_single_replica": "azurefile-csi",
"test_manager": {
"enabled": true,
"external_object_storage": {
"bucket_name": "uipath-as-platform"
}
},
"tolerations": []
}
Configuration de l’environnement cloud Azure
Le champ environment_type spécifie l’environnement cloud Azure à utiliser pour l’accès à Key Vault. Ce champ est facultatif et sa valeur par défaut sera PublicCloud.
Les valeurs suivantes sont prises en charge :
| Valeur (Value) | Description |
|---|---|
PublicCloud | Cloud public Azure (par défaut) |
USGovernmentCloud | Cloud Azure US Government |
ChinaCloud | Cloud Azure Chine |
GermanCloud | Cloud Azure Allemagne |
Le vault_url doit correspondre à l’environnement cloud Azure. Par exemple :
- Cloud public :
https://<vault-name>.vault.azure.net/ - USGovernment :
https://<vault-name>.vault.usgovcloudapi.net/ - Chine :
https://<vault-name>.vault.azure.cn/ - Allemagne :
https://<vault-name>.vault.microsoftazure.de/
L’exemple suivant montre comment configurer le champ environment_type dans input.json:
"secret_store": {
"enabled": true,
"provider_configs": [
{
"type": "azure",
"credentials_secret_name": "azure-service-principal-secret",
"refresh_interval": "5m",
"name": "azure-secret-store",
"environment_type": "USGovernmentCloud",
"azure_kv": {
"vault_url": "https://eso-azure-kv.vault.azure.net/",
"tenant_id": "00000000-0000-0000-0000-000000000000"
}
}
]
}
"secret_store": {
"enabled": true,
"provider_configs": [
{
"type": "azure",
"credentials_secret_name": "azure-service-principal-secret",
"refresh_interval": "5m",
"name": "azure-secret-store",
"environment_type": "USGovernmentCloud",
"azure_kv": {
"vault_url": "https://eso-azure-kv.vault.azure.net/",
"tenant_id": "00000000-0000-0000-0000-000000000000"
}
}
]
}
Utilisation de l'authentification de l'identité de Workload
Vous pouvez configurer Azure Key Vault en tant que magasin secret à l'aide de l'authentification par identité de charge de travail au lieu d'un principal de service.
Workload Identity permet aux pods Kubernetes d'accéder aux ressources Azure sans stocker les informations d'identification dans les clés secrètes Kubernetes.
Selon votre configuration, vous pouvez utiliser l'identité de charge de travail globale qui s'applique à tous les composants ou configurer une identité de charge de travail distincte spécifiquement pour Azure Key Vault, comme suit :
- Utiliser l'identité de charge de travail globale
"pod_identity": { "aks_managed_identity_client_id": "managed-identity-id", "enabled": true }, "secret_store": { "enabled": true, "provider_configs": [ { "type": "azure", "refresh_interval": "5m", "name": "azure-secret-store", "azure_kv": { "vault_url": "https://eso-azure-kv.vault.azure.net/" } } ] }"pod_identity": { "aks_managed_identity_client_id": "managed-identity-id", "enabled": true }, "secret_store": { "enabled": true, "provider_configs": [ { "type": "azure", "refresh_interval": "5m", "name": "azure-secret-store", "azure_kv": { "vault_url": "https://eso-azure-kv.vault.azure.net/" } } ] } - Utiliser une identité de charge de travail distincte pour Azure Key Vault
"secret_store": { "enabled": true, "provider_configs": [ { "type": "azure", "refresh_interval": "5m", "name": "azure-secret-store", "azure_kv": { "vault_url": "https://eso-azure-kv.vault.azure.net/", "managed_identity_id": "managed-identity-id" } } ] }"secret_store": { "enabled": true, "provider_configs": [ { "type": "azure", "refresh_interval": "5m", "name": "azure-secret-store", "azure_kv": { "vault_url": "https://eso-azure-kv.vault.azure.net/", "managed_identity_id": "managed-identity-id" } } ] }
Configuration de l'identité gérée pour l'opérateur de clés secrètes externes
Pour permettre à l'opérateur de clés secrètes externe d'accéder à Azure Key Vault à l'aide de l'identité de charge de travail, procédez comme suit :
-
Effectuez les étapes décrites dans Configuration de l’identité de la charge de travail pour fournir des informations d’identification fédérées aux comptes de service requis.
-
En plus de l'étape 3 de la configuration de l'identité de charge de travail, exécutez la commande suivante pour créer des informations d'identification fédérées pour l' opérateur de clés secrètes externes :
create_federated_credentials "uipath" "external-secrets"create_federated_credentials "uipath" "external-secrets" -
Attribuez les rôles requis à l'identité gérée afin qu'elle puisse accéder aux clés secrètes dans Azure Key Vault :
# Export the following variables with your correct values export SUBSCRIPTION_ID="<your-subscription-id>" export TARGET_RG="<your-resource-group-name>" export VAULT_NAME="<your-key-vault-name>" export USER_ASSIGNED_MANAGED_IDENTITY_OBJECT_ID="<your-managed-identity-object-id>" # Assign Key Vault roles to the managed identity az role assignment create --assignee $USER_ASSIGNED_MANAGED_IDENTITY_OBJECT_ID --role "Key Vault Secrets User" --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$TARGET_RG/providers/Microsoft.KeyVault/vaults/$VAULT_NAME" az role assignment create --assignee $USER_ASSIGNED_MANAGED_IDENTITY_OBJECT_ID --role "Key Vault Reader" --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$TARGET_RG/providers/Microsoft.KeyVault/vaults/$VAULT_NAME"# Export the following variables with your correct values export SUBSCRIPTION_ID="<your-subscription-id>" export TARGET_RG="<your-resource-group-name>" export VAULT_NAME="<your-key-vault-name>" export USER_ASSIGNED_MANAGED_IDENTITY_OBJECT_ID="<your-managed-identity-object-id>" # Assign Key Vault roles to the managed identity az role assignment create --assignee $USER_ASSIGNED_MANAGED_IDENTITY_OBJECT_ID --role "Key Vault Secrets User" --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$TARGET_RG/providers/Microsoft.KeyVault/vaults/$VAULT_NAME" az role assignment create --assignee $USER_ASSIGNED_MANAGED_IDENTITY_OBJECT_ID --role "Key Vault Reader" --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$TARGET_RG/providers/Microsoft.KeyVault/vaults/$VAULT_NAME"
Configuration du registre privé compatible OCI externe
Lorsque vous utilisez un registre privé, si vous ne souhaitez pas configurer les informations d'identification du registre dans input.json, vous pouvez les fournir sous forme de clé secrète Kubernetes à la place, comme illustré dans l'exemple suivant :
"registries": {
"docker": {
"pull_secret_name": "registry-credentials",
"url": "sfbrdevhelmweacr.azurecr.io"
}
}
"registries": {
"docker": {
"pull_secret_name": "registry-credentials",
"url": "sfbrdevhelmweacr.azurecr.io"
}
}
Créez la clé secrète Kubernetes qui stocke les informations d’identification du registre, comme illustré dans l’exemple suivant :
apiVersion: v1
kind: Secret
metadata:
name: registry-credentials
type: Opaque
data:
url: base64Encode(sfbrdevhelmweacr.azurecr.io)
username: base64Encode(<registry-username>)
password: base64Encode(<registry-password>)
apiVersion: v1
kind: Secret
metadata:
name: registry-credentials
type: Opaque
data:
url: base64Encode(sfbrdevhelmweacr.azurecr.io)
username: base64Encode(<registry-username>)
password: base64Encode(<registry-password>)
Appliquez la clé secrète dans l’espace de noms uipath à l’aide de la commande suivante :
kubectl apply -f registry-credentials.yaml -n uipath
kubectl apply -f registry-credentials.yaml -n uipath