UiPath Documentation
automation-suite
2.2510
true
Guía de instalación de Automation Suite en OpenShift
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Instalar y configurar la herramienta GitOps

Instale y configure la herramienta GitOps para gestionar las implementaciones de Automation Suite en OpenShift.

Nota:

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​

Nota:

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:

  1. 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>
    
  2. Instala el operador OpenShift GitOps siguiendo las instrucciones en Instalación de OpenShift GitOps.

  3. Crea una nueva instancia de ArgoCD siguiendo las instrucciones en Configuración de una nueva instancia de ArgoCD.

    Nota:

    En la sección spec descrita 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: true
    server.route.enabled: true
    
  4. 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-route no 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"}}}}}'
    
  5. 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 LimitRange que 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 objeto LimitRange se eliminó del gráfico, y el controlador solo necesita el verbo delete para podar el LimitRange creado por una versión anterior durante la sincronización.

    Para crear el rol, sigue los siguientes pasos:

    1. 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"]
        
    2. 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>
      
  6. Vincula el rol limit-range-manager a la cuenta de servicio argocd :

    oc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<argocd>:argocd-argocd-application-controller
    oc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<argocd>:argocd-argocd-application-controller
    
  7. 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:

    1. 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"]
      
    2. 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>
      
    3. Vincula el rol argocd-pod-log-writer a la cuenta de servicio argocd :
      oc -n <uipath> create rolebinding argocd-pod-log-writer-binding --role=argocd-pod-log-writer --serviceaccount=<argocd>:argocd-argocd-application-controller
      oc -n <uipath> create rolebinding argocd-pod-log-writer-binding --role=argocd-pod-log-writer --serviceaccount=<argocd>:argocd-argocd-application-controller
      
  8. 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 ClusterRole y ClusterRoleBinding que 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 un asrobots.concurrency_limit explícito en input.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.

    1. En <openshift-gitops>, edita el recurso de suscripción openshift-gitops-operator para incluir la siguiente variable de entorno:
      ARGOCD_CLUSTER_CONFIG_NAMESPACES: <argocd>
      ARGOCD_CLUSTER_CONFIG_NAMESPACES: <argocd>
      
    2. Sigue las instrucciones en Utilizar una instancia de Argo CD para gestionar recursos del ámbito del clúster.
  9. 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) y server (implementación).

  10. 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:

    1. 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"]
      
    2. 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>
      
  11. Vincula el rol uipath-application-manager a la cuenta de servicio uipathadmin :

    oc project <argocd>
    oc create rolebinding uipath-application-manager \
      --role=uipath-application-manager --serviceaccount=<uipath>:uipathadmin
    oc project <argocd>
    oc create rolebinding uipath-application-manager \
      --role=uipath-application-manager --serviceaccount=<uipath>:uipathadmin
    
  12. Como administrador del clúster, crea el secreto del repositorio helm-credentials en 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. uipathctl no lo gestiona y no requiere acceso a él ni al espacio de nombres <argocd> : la cuenta de servicio uipathadmin no 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 uipathctl lo actualiza en cada ejecución, por lo que uipathadmin necesita get, update y patch en él. Completa el siguiente paso con la versión 2.2510.3 rol.
    • Versiones anteriores a 2.2510.3: uipathctl crea 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 stringData se proporcionan en texto sin formato. Para un registro abierto como registry.uipath.com, omite las claves username y password para que ArgoCD se conecte de forma anónima. Dejarlos en blanco hace que ArgoCD intente iniciar sesión y falle con un error 401. 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=repository
    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=repository
    
  13. Solo Automation Suite 2.2510.3 y anteriores. Estas versiones escriben en el secreto helm-credentials y buscan el espacio de nombres <argocd>, por lo que uipathadmin necesita acceso a ambos. Omite este paso en 2.2510.4 y posteriores.

    1. 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"]
        
    2. 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>
      
    3. Vincula el rol argo-secret-role y el rol namespace-reader a la cuenta de servicio uipathadmin:
      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>:uipathadmin
      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>:uipathadmin
      

Acceder a la instancia de ArgoCD dedicada​

Para acceder a ArgoCD, siga estos pasos:

  1. Obtener la URL del host:
    oc get routes argocd-server -n <argocd> -o jsonpath={.spec.host}; echo
    oc get routes argocd-server -n <argocd> -o jsonpath={.spec.host}; echo
    
  2. Para iniciar sesión, utiliza admin como 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; echo
    oc -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:

  1. Inicie sesión en ArgoCD.
  2. Ve a Configuración > Repositorios > +CONECTAR REPO.
  3. Utiliza VIA HTTPS para el método de conexión.
  4. Selecciona Helm como tipo.
  5. Proporcione un nombre.
  6. Elija predeterminado como proyecto.
  7. 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:

    1. Ve a Configuración > Certificados de repositorio y hosts conocidos > +AÑADIR CERTIFICADO TLS.
    2. Añade el nombre del repositorio y el certificado TLS en formato PEM.
  8. Habilita la casilla OCI .
  9. Select Connect.
  10. 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:

  1. 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>
    
  2. 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> .

  3. Habilita el modo de todo el clúster para ArgoCD siguiendo los siguientes pasos:

    1. En <openshift-gitops>, edita el recurso de suscripción openshift-gitops-operator para incluir la siguiente variable de entorno:
      ARGOCD_CLUSTER_CONFIG_NAMESPACES: <openshift-gitops>
      ARGOCD_CLUSTER_CONFIG_NAMESPACES: <openshift-gitops>
      
    2. Sigue las instrucciones en Utilizar una instancia de ArgoCD para gestionar recursos del ámbito del clúster.
  4. Asegúrate de que la instancia openshift-gitops de ArgoCD puede gestionar el espacio de nombres <uipath> :

    oc label namespace <uipath> argocd.argoproj.io/managed-by=openshift-gitops
    oc label namespace <uipath> argocd.argoproj.io/managed-by=openshift-gitops
    

    Después de aplicar la configuración, reinicia ArgoCD openshift-gitops-application-controller (statefulset) y openshift-gitops-server (implementación).

  5. 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-route no 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"}}}}}'
    
  6. 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:
        - '*'
    
  7. 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 LimitRange que 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 objeto LimitRange se eliminó del gráfico, y el controlador solo necesita el verbo delete para podar el LimitRange creado por una versión anterior durante la sincronización.

    Para crear el rol, sigue los siguientes pasos:

    1. 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"]
        
    2. 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>
      
  8. Vincula el rol limit-range-manager a la cuenta de servicio argocd :

    oc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<openshift-gitops>:openshift-gitops-argocd-application-controller
    oc -n <uipath> create rolebinding limit-range-manager-binding --role=limit-range-manager --serviceaccount=<openshift-gitops>:openshift-gitops-argocd-application-controller
    
  9. 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"]
    
  10. Vincula el rol uipath-application-manager a la cuenta de servicio uipathadmin :

    oc project <openshift-gitops>
    oc create rolebinding uipath-application-manager \
      --role=uipath-application-manager --serviceaccount=<uipath>:uipathadmin
    oc project <openshift-gitops>
    oc create rolebinding uipath-application-manager \
      --role=uipath-application-manager --serviceaccount=<uipath>:uipathadmin
    
  11. Como administrador del clúster, crea el secreto del repositorio helm-credentials en 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. uipathctl no lo gestiona y no requiere acceso a él ni al espacio de nombres <openshift-gitops> : la cuenta de servicio uipathadmin no 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 uipathctl lo actualiza en cada ejecución, por lo que uipathadmin necesita get, update y patch en él. Completa el siguiente paso con la versión 2.2510.3 rol.
    • Versiones anteriores a 2.2510.3: uipathctl crea 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 stringData se proporcionan en texto sin formato. Para un registro abierto como registry.uipath.com, omite las claves username y password para que ArgoCD se conecte de forma anónima. Dejarlos en blanco hace que ArgoCD intente iniciar sesión y falle con un error 401. 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=repository
    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=repository
    
  12. Solo Automation Suite 2.2510.3 y anteriores. Estas versiones escriben en el secreto helm-credentials y buscan el espacio de nombres <openshift-gitops>, por lo que uipathadmin necesita acceso a ambos. Omite este paso en 2.2510.4 y posteriores.

    1. 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"]
        
    2. 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>
      
    3. Vincula el rol argo-secret-role y el rol namespace-reader a la cuenta de servicio uipathadmin:
      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>:uipathadmin
      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>:uipathadmin
      

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:

  1. Obtén la URL del host ejecutando los siguientes comandos:
    oc get routes openshift-gitops-server -n <openshift-gitops> -o jsonpath={.spec.host}; echo
    oc get routes openshift-gitops-server -n <openshift-gitops> -o jsonpath={.spec.host}; echo
    
  2. Para iniciar sesión, utiliza admin como 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; echo
    oc -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:

  1. Inicie sesión en ArgoCD.
  2. Ve a Configuración > Repositorios > +CONECTAR REPO.
  3. Utiliza VIA HTTPS para el método de conexión.
  4. Selecciona Helm como tipo.
  5. Proporcione un nombre.
  6. Elige uipath como proyecto. uipath es el nombre del proyecto ArgoCD que creaste para la aplicación UiPath®.
  7. 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:

    1. Ve a Configuración > Certificados de repositorio y hosts conocidos > +AÑADIR CERTIFICADO TLS.
    2. Añade el nombre del repositorio y el certificado TLS en formato PEM.
  8. Habilita la casilla OCI .
  9. Select Connect.
  10. 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:

  1. 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>
    
  2. 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-controller
    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-controller
    

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado