UiPath Documentation
automation-suite
2.2510
true
Guia de instalação do Automation Suite no OpenShift
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Instalando e configurando a ferramenta GitOps

Instale e configure a ferramenta GitOps para gerenciar implantações do Automation Suite no OpenShift.

Observação:

Antes de prosseguir com a instalação e configuração do operador OpenShift GitOps, é necessário instalar o OpenShift Service Mesh e fornecer todas as permissões necessárias para a conta de serviço uipathadmin .

Para obter as instruções de instalação e configuração do service mesh, consulte Instalação e configuração do service mesh.

Para as permissões de instalação, consulte Conceder permissões de instalação.

Você pode implantar o Automation Suite usando uma instância do OpenShift GitOps Operator dedicada aos aplicativos UiPath® ou uma instância compartilhada do OpenShift GitOps Operator, se ele já estiver instalado e disponível no seu cluster.

Recomendamos o uso de uma instância dedicada do OpenShift GitOps Operator para instalar os aplicativos do Automation Suite. Este método requer permissões mínimas para os outros namespaces e recursos de cluster.

Para obter detalhes de instalação e acesso, consulte as seguintes seções:

Provisionando uma instância dedicada do GitOps​

Observação:

Recomendamos usar um namespace diferente de <uipath> para o ArgoCD.

Se você usar o OpenShift GitOps versão 1.15 ou superior e instalar uma instância dedicada do ArgoCD no <uipath> , a interface do usuário do ArgoCD não estará acessível devido às políticas de rede no namespace <uipath> adicionados pelo plano de controle do Service Mesh. Para resolver isso, você deve adicionar uma política de rede, conforme mostrado no exemplo a seguir, para permitir que os pods do Ingress alcancem os pods ArgoCD-server no namespace <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 provisionar uma instância dedicada do operador OpenShift GitOps, execute as seguintes etapas:

  1. Se o namespace <argocd> ainda não existir, execute os seguintes comandos para criá-lo:

    oc get namespace <argocd> || oc new-project <argocd>
    oc project <argocd>
    oc get namespace <argocd> || oc new-project <argocd>
    oc project <argocd>
    
  2. Instale o Operador do OpenShift GitOps seguindo as instruções em Instalação do OpenShift GitOps.

  3. Crie uma nova instância do ArgoCD seguindo as instruções em Configuração de uma nova instância do ArgoCD.

    Observação:

    Na seção spec descrita em Habilitação de réplicas para o servidor do Argo CD e servidor de repositórios, você deve adicionar a seguinte linha:

    server.route.enabled: true
    server.route.enabled: true
    
  4. Se você usar o OpenShift Service Mesh 2.x, corrija a implantação do ArgoCD para que o service mesh o exponha por meio de uma rota do OpenShift. Pule esta etapa no OpenShift Service Mesh 3.x, onde o rótulo maistra.io/expose-route não tem efeito.

    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. Crie uma função para que o ArgoCD possa gerenciar intervalos de limite.

    Antes do Automation Suite 2.2510.3, o gráfico do Helm de plataforma enviava um objeto LimitRange que atribuía limites de recursos padrão no namespace <uipath>, então o controlador de aplicativos do ArgoCD precisava de permissões para criá-lo e gerenciá-lo. A partir de 2.2510.3, esse objeto LimitRange foi removido do gráfico, e o controlador precisa apenas do verbo delete para podar o LimitRange criado por uma versão anterior durante a sincronização.

    Para criar a função, siga as seguintes etapas:

    1. Salve a configuração de função que corresponde à sua versão do Automation Suite como um arquivo YAML:
      • Automation Suite 2.2510.3 e posterior (apenas o verbo delete é necessário):
        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"]
        
      • Versões anteriores à 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. Aplique a configuração executando o seguinte comando. Certifique-se de substituir o placeholder <file_name.yaml> pelo nome real do arquivo YAML:
      oc apply -f <file_name.yaml>
      oc apply -f <file_name.yaml>
      
  6. Associe a função limit-range-manager à conta de serviço 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. Se você habilitou o TaaS, crie uma função que conceda ao controlador de aplicativos do ArgoCD verbos de gravação no sub-recurso pods/log. O hook de pré-instalação do TaaS cria uma função que inclui esses verbos, e a prevenção de escalonamento do Kubernetes RBAC exige que o controlador os mantenha antes de concedê-los. Para criar a função, siga as seguintes etapas:

    1. Salve a seguinte configuração de função como um arquivo 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. Aplique a configuração executando o seguinte comando. Certifique-se de substituir o placeholder <file_name.yaml> pelo nome real do arquivo YAML:
      oc apply -f <file_name.yaml>
      oc apply -f <file_name.yaml>
      
    3. Associe a função argocd-pod-log-writer à conta de serviço 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. Se você habilitou os Automation Suite Robots, você deve habilitar o modo em todo o cluster para o ArgoCD seguindo as seguintes etapas:

    Importante:

    O modo em todo o cluster é necessário porque, por padrão, o gráfico do Automation Suite Robots implanta um ClusterRole e ClusterRoleBinding que uma instância do ArgoCD com namespace não pode gerenciar. Se você estiver instalando apenas com permissões com escopo de namespace, você pode pular essa etapa definindo um asrobots.concurrency_limit explícito em input.json; o gráfico não implantará nenhum recurso com escopo de cluster. Para obter detalhes, consulte Concessão de permissões de instalação sem funções de cluster.

    1. No <openshift-gitops>, edite o recurso de assinatura openshift-gitops-operator para incluir a seguinte variável de ambiente:
      ARGOCD_CLUSTER_CONFIG_NAMESPACES: <argocd>
      ARGOCD_CLUSTER_CONFIG_NAMESPACES: <argocd>
      
    2. Siga as instruções em Usando uma instância do Argo CD para gerenciar recursos com escopo de cluster.
  9. Você deve garantir que a instância do ArgoCD possa gerenciar o namespace <uipath> se o namespace <uipath> não for o mesmo que o namespace <argocd> :

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

    Nesse comando, <argocd> é o nome do namespace onde você implantou a instância dedicada do ArgoCD.

    Depois de aplicar a configuração, reinicie o ArgoCD application-controler (statefulset) e server (implantação).

  10. Você deve executar as seguintes etapas apenas se o namespace <uipath> não for o mesmo que o namespace <argocd> . Crie uma função para gerenciar os aplicativos no namespace <argocd> . Para criar a função, siga as seguintes etapas:

    1. Salve a seguinte configuração de função como um arquivo 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. Aplique a configuração executando o seguinte comando. Certifique-se de substituir o placeholder <file_name.yaml> pelo nome real do arquivo YAML:
      oc apply -f <file_name.yaml>
      oc apply -f <file_name.yaml>
      
  11. Associe a função uipath-application-manager à conta de serviço 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 de cluster, crie o segredo do repositório helm-credentials no namespace <argocd>. Este é um segredo do repositório do ArgoCD que contém os detalhes de conexão de registro do Helm, e o ArgoCD o lê para extrair os gráficos do Automation Suite.

    Importante:

    O modo como esse segredo é gerenciado depende da sua versão do Automation Suite:

    • Automation Suite 2.2510.4 e posterior: o segredo é de sua propriedade. uipathctl não o gerencia e não requer acesso a ele ou ao namespace <argocd> — a conta de serviço uipathadmin não precisa de permissões além do gerenciamento de aplicativos ArgoCD, que você concedeu na etapa anterior. Ignorar a próxima etapa.
    • Automation Suite 2.2510.3: você cria o segredo, mas uipathctl ainda o atualiza em todas as execuções, então uipathadmin precisa de get, update e patch nele. Conclua a próxima etapa com o 2.2510.3 função.
    • Versões anteriores à 2.2510.3: uipathctl cria e gerencia o próprio segredo, então você pode ignorar sua criação. Conclua a próxima etapa com a função para versões anteriores à 2.2510.3.

    Sempre que você criou o segredo, você também deve mantê-lo atualizado: se as credenciais de registro do Helm mudarem, atualize o segredo por conta própria, caso contrário, o ArgoCD não conseguirá extrair os 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>
    

    Os stringData valores são fornecidos em texto simples. Para um registro aberto, como registry.uipath.com, omita as chaves username e password para que o ArgoCD se conecte anonimamente. Deixá-los em branco faz com que o ArgoCD tente um login e falhe com um erro 401. Ou crie o mesmo segredo com a 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. Apenas o Automation Suite 2.2510.3 e anterior. Essas versões gravam no segredo helm-credentials e procura o namespace <argocd>, portanto, uipathadmin precisa de acesso a ambos. Pule esta etapa na versão 2.2510.4 e posterior.

    1. Salve a configuração de função que corresponde à sua versão do Automation Suite como um arquivo YAML:
      • Automation Suite 2.2510.3, com escopo no segredo que você criou na etapa 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"]
        
      • Versões anteriores à 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. Aplique a configuração executando o seguinte comando. Certifique-se de substituir o placeholder <file_name.yaml> pelo nome real do arquivo YAML:
      oc apply -f <file_name.yaml>
      oc apply -f <file_name.yaml>
      
    3. Associe a função argo-secret-role e a função namespace-reader à conta de serviço 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
      

Acessando a instância dedicada do ArgoCD​

Para acessar o ArgoCD, siga as seguintes etapas:

  1. Obtenha o URL do 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 fazer login, use admin como o nome de usuário e execute o seguinte comando para obter a senha:
    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
    

Configuração do repositório de Helm privado e certificados no ArgoCD​

Para configurar o repositório do Helm no ArgoCD, siga as seguintes etapas:

  1. Faça login no ArgoCD.
  2. Navegue até Configurações > Repositórios > +CONNECT REPO.
  3. Use VIA HTTPS para o método de conexão.
  4. Selecione Helm como o tipo.
  5. Forneça um nome.
  6. Escolha padrão como o projeto.
  7. Forneça a URL do repositório, nome de usuário, senha e informações do certificado.
    Importante:

    Ao adicionar o certificado do cliente TLS na página +CONNECT REPO , a chave do certificado do cliente TLS se torna um campo obrigatório. Para configurar o certificado de registro sem a chave do certificado do cliente TLS, siga as seguintes etapas:

    1. Navegue até Configurações > Certificados de repositório e hosts conhecidos > +ADD TLS CERTIFICATE.
    2. Adicione o nome do repositório e o certificado TLS no formato PEM.
  8. Habilite a caixa de seleção OCI .
  9. Select Connect.
  10. Certifique-se de que o status da conexão seja Bem-sucedido.

Configurando uma instância compartilhada do GitOps​

Se a sua equipe de plataforma ainda não provisionou a instância compartilhada do OpenShift GitOps Operator, siga as seguintes etapas de instalação e configuração:

  1. Crie o namespace <uipath> :

    oc get namespace <uipath> || oc new-project <uipath>
    oc project <uipath>
    oc get namespace <uipath> || oc new-project <uipath>
    oc project <uipath>
    
  2. Instale o Operador do OpenShift GitOps seguindo as instruções em Instalação do OpenShift GitOps. Essa instalação vem com a instância padrão do ArgoCD, denominada openshift-gitops, no namespace <openshift-gitops> .

  3. Habilite o modo em todo o cluster para o ArgoCD seguindo as etapas a seguir:

    1. No <openshift-gitops>, edite o recurso de assinatura openshift-gitops-operator para incluir a seguinte variável de ambiente:
      ARGOCD_CLUSTER_CONFIG_NAMESPACES: <openshift-gitops>
      ARGOCD_CLUSTER_CONFIG_NAMESPACES: <openshift-gitops>
      
    2. Siga as instruções em Usando uma instância do ArgoCD para gerenciar recursos com escopo de cluster.
  4. Certifique-se de que a instância openshift-gitops do ArgoCD possa gerenciar o namespace <uipath> :

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

    Depois de aplicar a configuração, reinicie o ArgoCD openshift-gitops-application-controller (statefulset) e openshift-gitops-server (implantação).

  5. Se você usar o OpenShift Service Mesh 2.x, corrija a implantação do ArgoCD para que o service mesh o exponha por meio de uma rota do OpenShift. Pule esta etapa no OpenShift Service Mesh 3.x, onde o rótulo maistra.io/expose-route não tem efeito.

    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. Crie um projeto ArgoCD para o aplicativo 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. Crie uma função para que o ArgoCD possa gerenciar intervalos de limite.

    Antes do Automation Suite 2.2510.3, o gráfico do Helm de plataforma enviava um objeto LimitRange que atribuía limites de recursos padrão no namespace <uipath>, então o controlador de aplicativos do ArgoCD precisava de permissões para criá-lo e gerenciá-lo. A partir de 2.2510.3, esse objeto LimitRange foi removido do gráfico, e o controlador precisa apenas do verbo delete para podar o LimitRange criado por uma versão anterior durante a sincronização.

    Para criar a função, siga as seguintes etapas:

    1. Salve a configuração de função que corresponde à sua versão do Automation Suite como um arquivo YAML:
      • Automation Suite 2.2510.3 e posterior (apenas o verbo delete é necessário):
        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"]
        
      • Versões anteriores à 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. Aplique a configuração executando o seguinte comando. Certifique-se de substituir o placeholder <file_name.yaml> pelo nome real do arquivo YAML:
      oc apply -f <file_name.yaml>
      oc apply -f <file_name.yaml>
      
  8. Associe a função limit-range-manager à conta de serviço 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. Crie uma função para gerenciar os aplicativos no namespace. <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. Associe a função uipath-application-manager à conta de serviço 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 de cluster, crie o segredo do repositório helm-credentials no namespace <openshift-gitops>. Este é um segredo do repositório do ArgoCD que contém os detalhes de conexão de registro do Helm, e o ArgoCD o lê para extrair os gráficos do Automation Suite.

    Importante:

    O modo como esse segredo é gerenciado depende da sua versão do Automation Suite:

    • Automation Suite 2.2510.4 e posterior: o segredo é de sua propriedade. uipathctl não o gerencia e não requer acesso a ele ou ao namespace <openshift-gitops> — a conta de serviço uipathadmin não precisa de permissões além do gerenciamento de aplicativos ArgoCD, que você concedeu na etapa anterior. Ignorar a próxima etapa.
    • Automation Suite 2.2510.3: você cria o segredo, mas uipathctl ainda o atualiza em todas as execuções, então uipathadmin precisa de get, update e patch nele. Conclua a próxima etapa com o 2.2510.3 função.
    • Versões anteriores à 2.2510.3: uipathctl cria e gerencia o próprio segredo, então você pode ignorar sua criação. Conclua a próxima etapa com a função para versões anteriores à 2.2510.3.

    Sempre que você criou o segredo, você também deve mantê-lo atualizado: se as credenciais de registro do Helm mudarem, atualize o segredo por conta própria, caso contrário, o ArgoCD não conseguirá extrair os 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>
    

    Os stringData valores são fornecidos em texto simples. Para um registro aberto, como registry.uipath.com, omita as chaves username e password para que o ArgoCD se conecte anonimamente. Deixá-los em branco faz com que o ArgoCD tente um login e falhe com um erro 401. Ou crie o mesmo segredo com a 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. Apenas o Automation Suite 2.2510.3 e anterior. Essas versões gravam no segredo helm-credentials e procura o namespace <openshift-gitops>, portanto, uipathadmin precisa de acesso a ambos. Pule esta etapa na versão 2.2510.4 e posterior.

    1. Salve a configuração de função que corresponde à sua versão do Automation Suite como um arquivo YAML:
      • Automation Suite 2.2510.3, com escopo no segredo que você criou na etapa 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"]
        
      • Versões anteriores à 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. Aplique a configuração executando o seguinte comando. Certifique-se de substituir o placeholder <file_name.yaml> pelo nome real do arquivo YAML:
      oc apply -f <file_name.yaml>
      oc apply -f <file_name.yaml>
      
    3. Associe a função argo-secret-role e a função namespace-reader à conta de serviço 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
      

Além de concluir as etapas para configurar a instância compartilhada do ArgoCD para a instalação do Automation Suite, você deve adicionar os seguintes parâmetros ao arquivo input.json :

  "argocd": {
    "project": "<uipath>"
  },
  "argocd": {
    "project": "<uipath>"
  },

Acessando a instância compartilhada do ArgoCD​

Para acessar o ArgoCD, siga as seguintes etapas:

  1. Obtenha o URL do host executando os seguintes 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 fazer login, use admin como o nome de usuário e execute o seguinte comando para obter a senha:
    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
    

Configuração do repositório de Helm privado e certificados no ArgoCD​

Para configurar o repositório do Helm no ArgoCD, siga as seguintes etapas:

  1. Faça login no ArgoCD.
  2. Navegue até Configurações > Repositórios > +CONNECT REPO.
  3. Use VIA HTTPS para o método de conexão.
  4. Selecione Helm como o tipo.
  5. Forneça um nome.
  6. Escolha uipath como o projeto. uipath é o nome do projeto ArgoCD que você criou para o aplicativo UiPath®.
  7. Forneça a URL do repositório, nome de usuário, senha e informações do certificado.
    Importante:

    Ao adicionar o certificado do cliente TLS na página +CONNECT REPO , a chave do certificado do cliente TLS se torna um campo obrigatório. Para configurar o certificado de registro sem a chave do certificado do cliente TLS, siga as seguintes etapas:

    1. Navegue até Configurações > Certificados de repositório e hosts conhecidos > +ADD TLS CERTIFICATE.
    2. Adicione o nome do repositório e o certificado TLS no formato PEM.
  8. Habilite a caixa de seleção OCI .
  9. Select Connect.
  10. Certifique-se de que o status da conexão seja Bem-sucedido.

Configuração do ArgoCD para várias instalações em um único cluster​

Para configurar o ArgoCD para várias instalações do Automation Suite em um único cluster do OpenShift, siga estas etapas:

  1. Verifique se todos os serviços do ArgoCD estão funcionando. Você pode executar o seguinte comando para monitorar todos os pods:
    oc get pods -n <argocd>
    oc get pods -n <argocd>
    
  2. Depois que todos os serviços estiverem funcionando, você pode usar o seguinte comando sequencialmente para corrigir as permissões do ArgoCD. Isso permite que o ArgoCD gerencie diferentes namespaces de aplicativos nos quais o Automation Suite está instalado:
    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
    

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades