- 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
- 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
Instalar y configurar la herramienta GitOps
Instale y configure la herramienta GitOps para gestionar las implementaciones de Automation Suite en OpenShift.
Antes de continuar con la instalación y configuración del operador OpenShift GitOps, debes instalar OpenShift Service Mesh y proporcionar todos los permisos necesarios a la cuenta de servicio uipathadmin .
For the service mesh installation and configuration instructions, refer to Installing and configuring the service mesh.
For the installation permissions, refer to Granting installation permissions.
Puedes implementar Automation Suite utilizando una instancia de OpenShift GitOps Operator dedicada a las aplicaciones de UiPath® o una instancia compartida de OpenShift GitOps Operator, si ya está instalada y disponible en tu clúster.
Recomendamos utilizar una instancia de operador OpenShift GitOps dedicada para instalar las aplicaciones de Automation Suite. Este método requiere permisos mínimos para los demás espacios de nombres y recursos del clúster.
Para obtener más información sobre la instalación y el acceso, consulta las siguientes secciones:
Aprovisionar una instancia de GitOps dedicada
Recomendamos utilizar un espacio de nombres que sea diferente de <uipath> para ArgoCD.
Si utilizas la versión 1.15 o posterior de Openshift GitOps e instalas una instancia dedicada de ArgoCD dentro del espacio de nombres <uipath> , la IU de ArgoCD no será accesible debido a las políticas de red en el espacio de nombres <uipath> añadido por el plano de control de Service Mesh. Para solucionarlo, debes añadir una política de red, como se muestra en el siguiente ejemplo, para permitir que los pods de entrada lleguen a los pods del servidor ArgoCD en el espacio de nombres <uipath> .
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-argocd
spec:
podSelector:
matchLabels:
app.kubernetes.io/name: argocd-server
ingress:
- from:
- namespaceSelector:
matchLabels:
network.openshift.io/policy-group: ingress
policyTypes:
- Ingress
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-argocd
spec:
podSelector:
matchLabels:
app.kubernetes.io/name: argocd-server
ingress:
- from:
- namespaceSelector:
matchLabels:
network.openshift.io/policy-group: ingress
policyTypes:
- Ingress
Para aprovisionar una instancia de operador OpenShift GitOps dedicada, sigue los siguientes pasos:
-
Si el espacio de nombres
<argocd>aún no existe, ejecuta los siguientes comandos para crearlo:oc get namespace <argocd> || oc new-project <argocd> oc project <argocd>oc get namespace <argocd> || oc new-project <argocd> oc project <argocd> -
Instala el operador OpenShift GitOps siguiendo las instrucciones en Instalación de OpenShift GitOps.
-
Crea una nueva instancia de ArgoCD siguiendo las instrucciones en Configuración de una nueva instancia de ArgoCD.
Nota:En la sección
specdescrita en Habilitar réplicas para el servidor de CD de Argo y el servidor de repositorio, debes añadir la siguiente línea:server.route.enabled: trueserver.route.enabled: true -
Si utilizas OpenShift Service Mesh 2.x, parchea la implementación de ArgoCD para que la malla de servicios la exponga a través de una ruta OpenShift. Omite este paso en OpenShift Service Mesh 3.x, donde la etiqueta
maistra.io/expose-routeno tiene efecto.oc -n <argocd> patch deployment argocd-server \ -p '{"spec":{"template":{"metadata":{"labels":{"maistra.io/expose-route":"true"}}}}}'oc -n <argocd> patch deployment argocd-server \ -p '{"spec":{"template":{"metadata":{"labels":{"maistra.io/expose-route":"true"}}}}}' -
Crea un rol para que ArgoCD pueda gestionar rangos de límite.
Antes de Automation Suite 2.2510.3, el gráfico de Helm de la plataforma enviaba un objeto
LimitRangeque asignaba límites de recursos predeterminados en el espacio de nombres<uipath>, por lo que el controlador de la aplicación ArgoCD necesitaba permisos para crearlo y gestionarlo. A partir de 2.2510.3, este objetoLimitRangese eliminó del gráfico, y el controlador solo necesita el verbodeletepara podar elLimitRangecreado por una versión anterior durante la sincronización.Para crear el rol, sigue los siguientes pasos:
- Guarda la configuración del rol que coincida con tu versión de Automation Suite como un archivo YAML:
- Automation Suite 2.2510.3 y posterior (solo se requiere el verbo
delete):kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: limit-range-manager namespace: <uipath> rules: - apiGroups: [""] resources: ["limitranges"] verbs: ["delete"]kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: limit-range-manager namespace: <uipath> rules: - apiGroups: [""] resources: ["limitranges"] verbs: ["delete"] - Versiones anteriores a 2.2510.3:
kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: limit-range-manager namespace: <uipath> rules: - apiGroups: [""] resources: ["limitranges"] verbs: ["get", "watch", "list", "patch", "update", "create"]kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: limit-range-manager namespace: <uipath> rules: - apiGroups: [""] resources: ["limitranges"] verbs: ["get", "watch", "list", "patch", "update", "create"]
- Automation Suite 2.2510.3 y posterior (solo se requiere el verbo
- Aplica la configuración ejecutando el siguiente comando. Asegúrate de reemplazar el marcador de posición
<file_name.yaml>con el nombre real del archivo YAML:oc apply -f <file_name.yaml>oc apply -f <file_name.yaml>
- Guarda la configuración del rol que coincida con tu versión de Automation Suite como un archivo YAML:
-
Vincula el rol
limit-range-managera la cuenta de servicioargocd:oc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<argocd>:argocd-argocd-application-controlleroc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<argocd>:argocd-argocd-application-controller -
Si has habilitado TaaS, crea un rol que conceda al controlador de la aplicación ArgoCD verbos de escritura en el recurso secundario
pods/log. El enlace de preinstalación de TaaS crea un rol que incluye estos verbos, y la prevención de escalada RBAC de Kubernetes requiere que el controlador los mantenga antes de poder otorgarlos. Para crear el rol, sigue los siguientes pasos:- Guarda la siguiente configuración de roles como un archivo YAML:
kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: argocd-pod-log-writer namespace: <uipath> rules: - apiGroups: [""] resources: ["pods/log"] verbs: ["create", "update", "patch", "delete"]kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: argocd-pod-log-writer namespace: <uipath> rules: - apiGroups: [""] resources: ["pods/log"] verbs: ["create", "update", "patch", "delete"] - Aplica la configuración ejecutando el siguiente comando. Asegúrate de reemplazar el marcador de posición
<file_name.yaml>con el nombre real del archivo YAML:oc apply -f <file_name.yaml>oc apply -f <file_name.yaml> - Vincula el rol
argocd-pod-log-writera la cuenta de servicioargocd:oc -n <uipath> create rolebinding argocd-pod-log-writer-binding --role=argocd-pod-log-writer --serviceaccount=<argocd>:argocd-argocd-application-controlleroc -n <uipath> create rolebinding argocd-pod-log-writer-binding --role=argocd-pod-log-writer --serviceaccount=<argocd>:argocd-argocd-application-controller
- Guarda la siguiente configuración de roles como un archivo YAML:
-
Si habilitaste Robots de Automation Suite, debes habilitar el modo de todo el clúster para ArgoCD siguiendo los siguientes pasos:
Importante:El modo en todo el clúster es necesario porque, de forma predeterminada, el gráfico de Robots de Automation Suite implementa un
ClusterRoleyClusterRoleBindingque una instancia de ArgoCD con espacio de nombres no puede gestionar. Si estás instalando solo con permisos de espacio de nombres, puedes omitir este paso estableciendo unasrobots.concurrency_limitexplícito eninput.json; el gráfico no implementa recursos del ámbito del clúster. Para obtener más información, consulta Conceder permisos de instalación sin roles de clúster.- En
<openshift-gitops>, edita el recurso de suscripciónopenshift-gitops-operatorpara incluir la siguiente variable de entorno:ARGOCD_CLUSTER_CONFIG_NAMESPACES: <argocd>ARGOCD_CLUSTER_CONFIG_NAMESPACES: <argocd> - Sigue las instrucciones en Utilizar una instancia de Argo CD para gestionar recursos del ámbito del clúster.
- En
-
Debes asegurarte de que la instancia de ArgoCD pueda gestionar el espacio de nombres
<uipath>si el espacio de nombres<uipath>no es el mismo que el espacio de nombres<argocd>:oc label namespace <uipath> argocd.argoproj.io/managed-by=<argocd>oc label namespace <uipath> argocd.argoproj.io/managed-by=<argocd>En este comando,
<argocd>es el nombre del espacio de nombres donde implementaste la instancia de ArgoCD dedicada.Después de aplicar la configuración, reinicia ArgoCD
application-controler(statefulset) yserver(implementación). -
Debes realizar los siguientes pasos solo si el espacio de nombres
<uipath>no es el mismo que el espacio de nombres<argocd>. Crea un rol para gestionar las aplicaciones en el espacio de nombres<argocd>. Para crear el rol, sigue los siguientes pasos:- Guarda la siguiente configuración de roles como un archivo YAML:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: uipath-application-manager namespace: <argocd> rules: - apiGroups: - argoproj.io resources: - applications verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: uipath-application-manager namespace: <argocd> rules: - apiGroups: - argoproj.io resources: - applications verbs: ["get", "watch", "list", "patch", "update", "create", "delete"] - Aplica la configuración ejecutando el siguiente comando. Asegúrate de reemplazar el marcador de posición
<file_name.yaml>con el nombre real del archivo YAML:oc apply -f <file_name.yaml>oc apply -f <file_name.yaml>
- Guarda la siguiente configuración de roles como un archivo YAML:
-
Vincula el rol
uipath-application-managera la cuenta de serviciouipathadmin:oc project <argocd> oc create rolebinding uipath-application-manager \ --role=uipath-application-manager --serviceaccount=<uipath>:uipathadminoc project <argocd> oc create rolebinding uipath-application-manager \ --role=uipath-application-manager --serviceaccount=<uipath>:uipathadmin -
Como administrador del clúster, crea el secreto del repositorio
helm-credentialsen el espacio de nombres<argocd>. Este es un secreto del repositorio de ArgoCD que contiene los detalles de conexión del registro de Helm y ArgoCD lo lee para extraer los gráficos de Automation Suite.Importante:La forma en que se gestiona este secreto depende de tu versión de Automation Suite:
- Automation Suite 2.2510.4 y posterior: el secreto es de tu propiedad.
uipathctlno lo gestiona y no requiere acceso a él ni al espacio de nombres<argocd>: la cuenta de serviciouipathadminno necesita ningún permiso allí, aparte de gestionar las aplicaciones ArgoCD, que concediste en el paso anterior. Omite el siguiente paso. - Automation Suite 2.2510.3: creas el secreto, pero
uipathctllo actualiza en cada ejecución, por lo queuipathadminnecesitaget,updateypatchen él. Completa el siguiente paso con la versión 2.2510.3 rol. - Versiones anteriores a 2.2510.3:
uipathctlcrea y gestiona el propio secreto, por lo que puedes omitir su creación. Completa el siguiente paso con el rol para las versiones anteriores a la 2.2510.3.
Cada vez que creas el secreto, también debes mantenerlo actualizado: si las credenciales del registro de Helm cambian, actualiza el secreto tú mismo, de lo contrario, ArgoCD deja de poder extraer los gráficos.
apiVersion: v1 kind: Secret metadata: name: helm-credentials namespace: <argocd> labels: argocd.argoproj.io/secret-type: repository type: Opaque stringData: name: uipath-helm url: <helm-registry-url> type: helm enableOCI: "true" username: <registry-username> password: <registry-password>apiVersion: v1 kind: Secret metadata: name: helm-credentials namespace: <argocd> labels: argocd.argoproj.io/secret-type: repository type: Opaque stringData: name: uipath-helm url: <helm-registry-url> type: helm enableOCI: "true" username: <registry-username> password: <registry-password>Los valores
stringDatase proporcionan en texto sin formato. Para un registro abierto comoregistry.uipath.com, omite las clavesusernameypasswordpara que ArgoCD se conecte de forma anónima. Dejarlos en blanco hace que ArgoCD intente iniciar sesión y falle con un error401. Como alternativa, crea el mismo secreto con la CLI:oc -n <argocd> create secret generic helm-credentials \ --from-literal=name=uipath-helm \ --from-literal=url=<helm-registry-url> \ --from-literal=type=helm \ --from-literal=enableOCI=true \ --from-literal=username=<registry-username> \ --from-literal=password=<registry-password> oc -n <argocd> label --overwrite secret helm-credentials argocd.argoproj.io/secret-type=repositoryoc -n <argocd> create secret generic helm-credentials \ --from-literal=name=uipath-helm \ --from-literal=url=<helm-registry-url> \ --from-literal=type=helm \ --from-literal=enableOCI=true \ --from-literal=username=<registry-username> \ --from-literal=password=<registry-password> oc -n <argocd> label --overwrite secret helm-credentials argocd.argoproj.io/secret-type=repository - Automation Suite 2.2510.4 y posterior: el secreto es de tu propiedad.
-
Solo Automation Suite 2.2510.3 y anteriores. Estas versiones escriben en el secreto
helm-credentialsy buscan el espacio de nombres<argocd>, por lo queuipathadminnecesita acceso a ambos. Omite este paso en 2.2510.4 y posteriores.- Guarda la configuración del rol que coincida con tu versión de Automation Suite como un archivo YAML:
- Automation Suite 2.2510.3, en el ámbito del secreto que creaste en el paso anterior:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: argo-secret-role namespace: <argocd> rules: - apiGroups: [""] resources: ["secrets"] resourceNames: ["helm-credentials"] verbs: ["get", "update", "patch"]apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: argo-secret-role namespace: <argocd> rules: - apiGroups: [""] resources: ["secrets"] resourceNames: ["helm-credentials"] verbs: ["get", "update", "patch"] - Versiones anteriores a 2.2510.3:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: argo-secret-role namespace: <argocd> rules: - apiGroups: ["rbac.authorization.k8s.io"] resources: ["roles", "rolebindings"] verbs: ["get", "watch", "list", "patch", "update", "create"] - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list", "patch", "update", "create"]apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: argo-secret-role namespace: <argocd> rules: - apiGroups: ["rbac.authorization.k8s.io"] resources: ["roles", "rolebindings"] verbs: ["get", "watch", "list", "patch", "update", "create"] - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list", "patch", "update", "create"]
- Automation Suite 2.2510.3, en el ámbito del secreto que creaste en el paso anterior:
- Aplica la configuración ejecutando el siguiente comando. Asegúrate de reemplazar el marcador de posición
<file_name.yaml>con el nombre real del archivo YAML:oc apply -f <file_name.yaml>oc apply -f <file_name.yaml> - Vincula el rol
argo-secret-roley el rolnamespace-readera la cuenta de serviciouipathadmin:oc project <argocd> oc create rolebinding secret-binding \ --role=argo-secret-role --serviceaccount=<uipath>:uipathadmin oc create rolebinding namespace-reader-rolebinding \ --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadminoc project <argocd> oc create rolebinding secret-binding \ --role=argo-secret-role --serviceaccount=<uipath>:uipathadmin oc create rolebinding namespace-reader-rolebinding \ --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin
- Guarda la configuración del rol que coincida con tu versión de Automation Suite como un archivo YAML:
Acceder a la instancia de ArgoCD dedicada
Para acceder a ArgoCD, siga estos pasos:
- Obtener la URL del host:
oc get routes argocd-server -n <argocd> -o jsonpath={.spec.host}; echooc get routes argocd-server -n <argocd> -o jsonpath={.spec.host}; echo - Para iniciar sesión, utiliza
admincomo nombre de usuario y ejecuta el siguiente comando para obtener la contraseña:oc -n <argocd> get secrets argocd-cluster \ -o "jsonpath={.data['admin\.password']}" | base64 -d; echooc -n <argocd> get secrets argocd-cluster \ -o "jsonpath={.data['admin\.password']}" | base64 -d; echo
Configurar el repositorio privado de Helm y los certificados en ArgoCD
Para configurar el repositorio de Helm en ArgoCD, sigue los siguientes pasos:
- Inicie sesión en ArgoCD.
- Ve a Configuración > Repositorios > +CONECTAR REPO.
- Utiliza VIA HTTPS para el método de conexión.
- Selecciona Helm como tipo.
- Proporcione un nombre.
- Elija predeterminado como proyecto.
- Proporciona la URL del repositorio, el nombre de usuario, la contraseña y la información del certificado.
Importante:
Al añadir el certificado de cliente TLS en la página +CONECTAR REPO , la clave del certificado de cliente TLS se convierte en un campo obligatorio. Para configurar el certificado de registro sin la clave de certificado de cliente TLS, sigue los siguientes pasos:
- Ve a Configuración > Certificados de repositorio y hosts conocidos > +AÑADIR CERTIFICADO TLS.
- Añade el nombre del repositorio y el certificado TLS en formato PEM.
- Habilita la casilla OCI .
- Select Connect.
- Asegúrese de que el estado de la conexión sea Correcto.
Configurar una instancia de GitOps compartida
Si tu equipo de plataforma aún no ha aprovisionado la instancia compartida de OpenShift GitOps Operator, sigue los siguientes pasos de instalación y configuración:
-
Crea el espacio de nombres
<uipath>:oc get namespace <uipath> || oc new-project <uipath> oc project <uipath>oc get namespace <uipath> || oc new-project <uipath> oc project <uipath> -
Instala el operador OpenShift GitOps siguiendo las instrucciones en Instalación de OpenShift GitOps. Esta instalación viene con la instancia de ArgoCD predeterminada, llamada
openshift-gitops, en el espacio de nombres<openshift-gitops>. -
Habilita el modo de todo el clúster para ArgoCD siguiendo los siguientes pasos:
- En
<openshift-gitops>, edita el recurso de suscripciónopenshift-gitops-operatorpara incluir la siguiente variable de entorno:ARGOCD_CLUSTER_CONFIG_NAMESPACES: <openshift-gitops>ARGOCD_CLUSTER_CONFIG_NAMESPACES: <openshift-gitops> - Sigue las instrucciones en Utilizar una instancia de ArgoCD para gestionar recursos del ámbito del clúster.
- En
-
Asegúrate de que la instancia
openshift-gitopsde ArgoCD puede gestionar el espacio de nombres<uipath>:oc label namespace <uipath> argocd.argoproj.io/managed-by=openshift-gitopsoc label namespace <uipath> argocd.argoproj.io/managed-by=openshift-gitopsDespués de aplicar la configuración, reinicia ArgoCD
openshift-gitops-application-controller(statefulset) yopenshift-gitops-server(implementación). -
Si utilizas OpenShift Service Mesh 2.x, parchea la implementación de ArgoCD para que la malla de servicios la exponga a través de una ruta OpenShift. Omite este paso en OpenShift Service Mesh 3.x, donde la etiqueta
maistra.io/expose-routeno tiene efecto.oc -n <uipath> patch deployment argocd-server \ -p '{"spec":{"template":{"metadata":{"labels":{"maistra.io/expose-route":"true"}}}}}'oc -n <uipath> patch deployment argocd-server \ -p '{"spec":{"template":{"metadata":{"labels":{"maistra.io/expose-route":"true"}}}}}' -
Crea un proyecto ArgoCD para la aplicación UiPath®:
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: uipath namespace: <openshift-gitops> spec: description: Appproject to managed and deploy uipath applications clusterResourceWhitelist: - group: '*' kind: '*' destinations: - namespace: <uipath> server: https://kubernetes.default.svc - namespace: <istio-system> server: https://kubernetes.default.svc sourceNamespaces: - <openshift-gitops> sourceRepos: - '*'apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: uipath namespace: <openshift-gitops> spec: description: Appproject to managed and deploy uipath applications clusterResourceWhitelist: - group: '*' kind: '*' destinations: - namespace: <uipath> server: https://kubernetes.default.svc - namespace: <istio-system> server: https://kubernetes.default.svc sourceNamespaces: - <openshift-gitops> sourceRepos: - '*' -
Crea un rol para que ArgoCD pueda gestionar rangos de límite.
Antes de Automation Suite 2.2510.3, el gráfico de Helm de la plataforma enviaba un objeto
LimitRangeque asignaba límites de recursos predeterminados en el espacio de nombres<uipath>, por lo que el controlador de la aplicación ArgoCD necesitaba permisos para crearlo y gestionarlo. A partir de 2.2510.3, este objetoLimitRangese eliminó del gráfico, y el controlador solo necesita el verbodeletepara podar elLimitRangecreado por una versión anterior durante la sincronización.Para crear el rol, sigue los siguientes pasos:
- Guarda la configuración del rol que coincida con tu versión de Automation Suite como un archivo YAML:
- Automation Suite 2.2510.3 y posterior (solo se requiere el verbo
delete):kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: limit-range-manager namespace: <uipath> rules: - apiGroups: [""] resources: ["limitranges"] verbs: ["delete"]kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: limit-range-manager namespace: <uipath> rules: - apiGroups: [""] resources: ["limitranges"] verbs: ["delete"] - Versiones anteriores a 2.2510.3:
kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: limit-range-manager namespace: <uipath> rules: - apiGroups: [""] resources: ["limitranges"] verbs: ["get", "watch", "list", "patch", "update", "create"]kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: limit-range-manager namespace: <uipath> rules: - apiGroups: [""] resources: ["limitranges"] verbs: ["get", "watch", "list", "patch", "update", "create"]
- Automation Suite 2.2510.3 y posterior (solo se requiere el verbo
- Aplica la configuración ejecutando el siguiente comando. Asegúrate de reemplazar el marcador de posición
<file_name.yaml>con el nombre real del archivo YAML:oc apply -f <file_name.yaml>oc apply -f <file_name.yaml>
- Guarda la configuración del rol que coincida con tu versión de Automation Suite como un archivo YAML:
-
Vincula el rol
limit-range-managera la cuenta de servicioargocd:oc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<openshift-gitops>:openshift-gitops-argocd-application-controlleroc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<openshift-gitops>:openshift-gitops-argocd-application-controller -
Crea un rol para gestionar las aplicaciones en el espacio de nombres
<openshift-gitops>:apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: uipath-application-manager namespace: <openshift-gitops> rules: - apiGroups: - argoproj.io resources: - applications verbs: ["get", "watch", "list", "patch", "update", "create"]apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: uipath-application-manager namespace: <openshift-gitops> rules: - apiGroups: - argoproj.io resources: - applications verbs: ["get", "watch", "list", "patch", "update", "create"] -
Vincula el rol
uipath-application-managera la cuenta de serviciouipathadmin:oc project <openshift-gitops> oc create rolebinding uipath-application-manager \ --role=uipath-application-manager --serviceaccount=<uipath>:uipathadminoc project <openshift-gitops> oc create rolebinding uipath-application-manager \ --role=uipath-application-manager --serviceaccount=<uipath>:uipathadmin -
Como administrador del clúster, crea el secreto del repositorio
helm-credentialsen el espacio de nombres<openshift-gitops>. Este es un secreto del repositorio de ArgoCD que contiene los detalles de conexión del registro de Helm y ArgoCD lo lee para extraer los gráficos de Automation Suite.Importante:La forma en que se gestiona este secreto depende de tu versión de Automation Suite:
- Automation Suite 2.2510.4 y posterior: el secreto es de tu propiedad.
uipathctlno lo gestiona y no requiere acceso a él ni al espacio de nombres<openshift-gitops>: la cuenta de serviciouipathadminno necesita ningún permiso allí, aparte de gestionar las aplicaciones ArgoCD, que concediste en el paso anterior. Omite el siguiente paso. - Automation Suite 2.2510.3: creas el secreto, pero
uipathctllo actualiza en cada ejecución, por lo queuipathadminnecesitaget,updateypatchen él. Completa el siguiente paso con la versión 2.2510.3 rol. - Versiones anteriores a 2.2510.3:
uipathctlcrea y gestiona el propio secreto, por lo que puedes omitir su creación. Completa el siguiente paso con el rol para las versiones anteriores a la 2.2510.3.
Cada vez que creas el secreto, también debes mantenerlo actualizado: si las credenciales del registro de Helm cambian, actualiza el secreto tú mismo, de lo contrario, ArgoCD deja de poder extraer los gráficos.
apiVersion: v1 kind: Secret metadata: name: helm-credentials namespace: <openshift-gitops> labels: argocd.argoproj.io/secret-type: repository type: Opaque stringData: name: uipath-helm url: <helm-registry-url> type: helm enableOCI: "true" username: <registry-username> password: <registry-password>apiVersion: v1 kind: Secret metadata: name: helm-credentials namespace: <openshift-gitops> labels: argocd.argoproj.io/secret-type: repository type: Opaque stringData: name: uipath-helm url: <helm-registry-url> type: helm enableOCI: "true" username: <registry-username> password: <registry-password>Los valores
stringDatase proporcionan en texto sin formato. Para un registro abierto comoregistry.uipath.com, omite las clavesusernameypasswordpara que ArgoCD se conecte de forma anónima. Dejarlos en blanco hace que ArgoCD intente iniciar sesión y falle con un error401. Como alternativa, crea el mismo secreto con la CLI:oc -n <openshift-gitops> create secret generic helm-credentials \ --from-literal=name=uipath-helm \ --from-literal=url=<helm-registry-url> \ --from-literal=type=helm \ --from-literal=enableOCI=true \ --from-literal=username=<registry-username> \ --from-literal=password=<registry-password> oc -n <openshift-gitops> label --overwrite secret helm-credentials argocd.argoproj.io/secret-type=repositoryoc -n <openshift-gitops> create secret generic helm-credentials \ --from-literal=name=uipath-helm \ --from-literal=url=<helm-registry-url> \ --from-literal=type=helm \ --from-literal=enableOCI=true \ --from-literal=username=<registry-username> \ --from-literal=password=<registry-password> oc -n <openshift-gitops> label --overwrite secret helm-credentials argocd.argoproj.io/secret-type=repository - Automation Suite 2.2510.4 y posterior: el secreto es de tu propiedad.
-
Solo Automation Suite 2.2510.3 y anteriores. Estas versiones escriben en el secreto
helm-credentialsy buscan el espacio de nombres<openshift-gitops>, por lo queuipathadminnecesita acceso a ambos. Omite este paso en 2.2510.4 y posteriores.- Guarda la configuración del rol que coincida con tu versión de Automation Suite como un archivo YAML:
- Automation Suite 2.2510.3, en el ámbito del secreto que creaste en el paso anterior:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: argo-secret-role namespace: <openshift-gitops> rules: - apiGroups: [""] resources: ["secrets"] resourceNames: ["helm-credentials"] verbs: ["get", "update", "patch"]apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: argo-secret-role namespace: <openshift-gitops> rules: - apiGroups: [""] resources: ["secrets"] resourceNames: ["helm-credentials"] verbs: ["get", "update", "patch"] - Versiones anteriores a 2.2510.3:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: argo-secret-role namespace: <openshift-gitops> rules: - apiGroups: ["rbac.authorization.k8s.io"] resources: ["roles", "rolebindings"] verbs: ["get", "watch", "list", "patch", "update", "create"] - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list", "patch", "update", "create"]apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: argo-secret-role namespace: <openshift-gitops> rules: - apiGroups: ["rbac.authorization.k8s.io"] resources: ["roles", "rolebindings"] verbs: ["get", "watch", "list", "patch", "update", "create"] - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list", "patch", "update", "create"]
- Automation Suite 2.2510.3, en el ámbito del secreto que creaste en el paso anterior:
- Aplica la configuración ejecutando el siguiente comando. Asegúrate de reemplazar el marcador de posición
<file_name.yaml>con el nombre real del archivo YAML:oc apply -f <file_name.yaml>oc apply -f <file_name.yaml> - Vincula el rol
argo-secret-roley el rolnamespace-readera la cuenta de serviciouipathadmin:oc project <openshift-gitops> oc create rolebinding secret-binding \ --role=argo-secret-role --serviceaccount=<uipath>:uipathadmin oc create rolebinding namespace-reader-rolebinding \ --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadminoc project <openshift-gitops> oc create rolebinding secret-binding \ --role=argo-secret-role --serviceaccount=<uipath>:uipathadmin oc create rolebinding namespace-reader-rolebinding \ --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin
- Guarda la configuración del rol que coincida con tu versión de Automation Suite como un archivo YAML:
Además de completar los pasos para configurar la instancia compartida de ArgoCD para la instalación de Automation Suite, debes añadir los siguientes parámetros al archivo input.json :
"argocd": {
"project": "<uipath>"
},
"argocd": {
"project": "<uipath>"
},
Acceder a la instancia compartida de ArgoCD
Para acceder a ArgoCD, siga estos pasos:
- Obtén la URL del host ejecutando los siguientes comandos:
oc get routes openshift-gitops-server -n <openshift-gitops> -o jsonpath={.spec.host}; echooc get routes openshift-gitops-server -n <openshift-gitops> -o jsonpath={.spec.host}; echo - Para iniciar sesión, utiliza
admincomo nombre de usuario y ejecuta el siguiente comando para obtener la contraseña:oc -n <openshift-gitops> get secrets openshift-gitops-cluster \ -o "jsonpath={.data['admin\.password']}" | base64 -d; echooc -n <openshift-gitops> get secrets openshift-gitops-cluster \ -o "jsonpath={.data['admin\.password']}" | base64 -d; echo
Configurar el repositorio privado de Helm y los certificados en ArgoCD
Para configurar el repositorio de Helm en ArgoCD, sigue los siguientes pasos:
- Inicie sesión en ArgoCD.
- Ve a Configuración > Repositorios > +CONECTAR REPO.
- Utiliza VIA HTTPS para el método de conexión.
- Selecciona Helm como tipo.
- Proporcione un nombre.
- Elige uipath como proyecto. uipath es el nombre del proyecto ArgoCD que creaste para la aplicación UiPath®.
- Proporciona la URL del repositorio, el nombre de usuario, la contraseña y la información del certificado.
Importante:
Al añadir el certificado de cliente TLS en la página +CONECTAR REPO , la clave del certificado de cliente TLS se convierte en un campo obligatorio. Para configurar el certificado de registro sin la clave de certificado de cliente TLS, sigue los siguientes pasos:
- Ve a Configuración > Certificados de repositorio y hosts conocidos > +AÑADIR CERTIFICADO TLS.
- Añade el nombre del repositorio y el certificado TLS en formato PEM.
- Habilita la casilla OCI .
- Select Connect.
- Asegúrese de que el estado de la conexión sea Correcto.
Configurar ArgoCD para varias instalaciones en un solo clúster
Para configurar ArgoCD para varias instalaciones de Automation Suite en un único clúster de OpenShift, sigue estos pasos:
- Comprueba si todos los servicios de ArgoCD están en funcionamiento. Puedes ejecutar el siguiente comando para supervisar todos los pods:
oc get pods -n <argocd>oc get pods -n <argocd> - Una vez que todos los servicios estén en funcionamiento, puedes utilizar el siguiente comando secuencialmente para parchear los permisos de ArgoCD. Esto permite a ArgoCD gestionar diferentes espacios de nombres de aplicaciones donde está instalado Automation Suite:
oc patch appprojects.argoproj.io default -n <argocd> --type='merge' -p '{"spec": {"sourceNamespaces": ["*"]}}' oc patch configmaps argocd-cmd-params-cm -n <argocd> --type='merge' -p '{"data": {"application.namespaces": "*"}}' oc rollout restart -n <argocd> deployment argocd-server oc rollout restart -n <argocd> statefulset argocd-application-controlleroc patch appprojects.argoproj.io default -n <argocd> --type='merge' -p '{"spec": {"sourceNamespaces": ["*"]}}' oc patch configmaps argocd-cmd-params-cm -n <argocd> --type='merge' -p '{"data": {"application.namespaces": "*"}}' oc rollout restart -n <argocd> deployment argocd-server oc rollout restart -n <argocd> statefulset argocd-application-controller
- Aprovisionar una instancia de GitOps dedicada
- Acceder a la instancia de ArgoCD dedicada
- Configurar el repositorio privado de Helm y los certificados en ArgoCD
- Configurar una instancia de GitOps compartida
- Acceder a la instancia compartida de ArgoCD
- Configurar el repositorio privado de Helm y los certificados en ArgoCD
- Configurar ArgoCD para varias instalaciones en un solo clúster