- Visão geral
- Requisitos
- Pré-instalação
- Preparação da instalação
- Baixando os pacotes de instalação
- Configuração do registro compatível com OCI
- Concessão de permissões de instalação com funções de cluster
- Concessão de permissões de instalação sem funções de cluster
- Instalação e configuração do service mesh
- Instalando e configurando a ferramenta GitOps
- Instalando o operador de segredos externos
- Implantação do Redis pelo OperatorHub
- Aplicação de configurações diversas
- Executando o uipathctl
- Instalação
- Pós-instalação
- Migração e atualização
- Monitoramento e alertas
- Administração de cluster
- Configuração específica do produto
- Configuração avançada do Orchestrator
- Configuração de parâmetros do Orchestrator
- Configuração do AppSettings
- Configuração do tamanho máximo da solicitação
- Substituição da configuração de armazenamento no nível do cluster
- Configuração do NLog
- Salvando logs do robô no Elasticsearch
- Configuração dos repositórios de credenciais
- Configuração da chave de criptografia por tenant
- Limpeza do banco de dados do Orchestrator
- Ignorar a instalação da biblioteca do host
- AI Trust Layer
- Solução de problemas
- Como desinstalar o Automation Suite
- Como resolver a falha de verificação de conectividade pré-requisito no OpenShift 4.16–4.18
- Como implantar o Insights em um cluster habilitado para FIPS
- Como desabilitar a habilitação automática do CDI no operador de GPU Nvidia
- Como codificar para URL uma senha da string de conexão do PostgreSQL
- 500 erros e limitação de taxa em solicitações do S3 no ODF
- Solução de problemas de segredos externos
- Configurando tolerâncias de driver CSI para ODF 4.20
- Solução de problemas de Temporal como um serviço
- Os pods do AI Center e do Document Understanding falham ao iniciar com a verificação do certificado TLS habilitada
- O Studio Desktop não pode carregar conectores e atividades do Integration Service
- Erros de validação de certificado TLS
- Migreção manual do ArgoCD NetworkPolicy (GHSA-47m3-95c7-g2g8)
- Configuração de solicitações e limites de recursos para cargas de trabalho criadas pelo uipathctl
Instalando e configurando a ferramenta GitOps
Instale e configure a ferramenta GitOps para gerenciar implantações do Automation Suite no OpenShift.
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
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:
-
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> -
Instale o Operador do OpenShift GitOps seguindo as instruções em Instalação do OpenShift GitOps.
-
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
specdescrita 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: trueserver.route.enabled: true -
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-routenã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"}}}}}' -
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
LimitRangeque 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 objetoLimitRangefoi removido do gráfico, e o controlador precisa apenas do verbodeletepara podar oLimitRangecriado por uma versão anterior durante a sincronização.Para criar a função, siga as seguintes etapas:
- 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"]
- Automation Suite 2.2510.3 e posterior (apenas o verbo
- 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>
- Salve a configuração de função que corresponde à sua versão do Automation Suite como um arquivo YAML:
-
Associe a função
limit-range-managerà conta de serviçoargocd: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 -
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:- 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"] - 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> - Associe a função
argocd-pod-log-writerà conta de serviçoargocd: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
- Salve a seguinte configuração de função como um arquivo YAML:
-
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
ClusterRoleeClusterRoleBindingque 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 umasrobots.concurrency_limitexplícito eminput.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.- No
<openshift-gitops>, edite o recurso de assinaturaopenshift-gitops-operatorpara incluir a seguinte variável de ambiente:ARGOCD_CLUSTER_CONFIG_NAMESPACES: <argocd>ARGOCD_CLUSTER_CONFIG_NAMESPACES: <argocd> - Siga as instruções em Usando uma instância do Argo CD para gerenciar recursos com escopo de cluster.
- No
-
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) eserver(implantação). -
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:- 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"] - 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>
- Salve a seguinte configuração de função como um arquivo YAML:
-
Associe a função
uipath-application-managerà conta de serviçouipathadmin: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 de cluster, crie o segredo do repositório
helm-credentialsno 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.
uipathctlnão o gerencia e não requer acesso a ele ou ao namespace<argocd>— a conta de serviçouipathadminnã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
uipathctlainda o atualiza em todas as execuções, entãouipathadminprecisa deget,updateepatchnele. Conclua a próxima etapa com o 2.2510.3 função. - Versões anteriores à 2.2510.3:
uipathctlcria 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
stringDatavalores são fornecidos em texto simples. Para um registro aberto, comoregistry.uipath.com, omita as chavesusernameepasswordpara que o ArgoCD se conecte anonimamente. Deixá-los em branco faz com que o ArgoCD tente um login e falhe com um erro401. 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=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 e posterior: o segredo é de sua propriedade.
-
Apenas o Automation Suite 2.2510.3 e anterior. Essas versões gravam no segredo
helm-credentialse procura o namespace<argocd>, portanto,uipathadminprecisa de acesso a ambos. Pule esta etapa na versão 2.2510.4 e posterior.- 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"]
- Automation Suite 2.2510.3, com escopo no segredo que você criou na etapa anterior:
- 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> - Associe a função
argo-secret-rolee a funçãonamespace-readerà conta de serviçouipathadmin: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
- Salve a configuração de função que corresponde à sua versão do Automation Suite como um arquivo YAML:
Acessando a instância dedicada do ArgoCD
Para acessar o ArgoCD, siga as seguintes etapas:
- Obtenha o URL do 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 fazer login, use
admincomo 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; echooc -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:
- Faça login no ArgoCD.
- Navegue até Configurações > Repositórios > +CONNECT REPO.
- Use VIA HTTPS para o método de conexão.
- Selecione Helm como o tipo.
- Forneça um nome.
- Escolha padrão como o projeto.
- 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:
- Navegue até Configurações > Certificados de repositório e hosts conhecidos > +ADD TLS CERTIFICATE.
- Adicione o nome do repositório e o certificado TLS no formato PEM.
- Habilite a caixa de seleção OCI .
- Select Connect.
- 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:
-
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> -
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>. -
Habilite o modo em todo o cluster para o ArgoCD seguindo as etapas a seguir:
- No
<openshift-gitops>, edite o recurso de assinaturaopenshift-gitops-operatorpara incluir a seguinte variável de ambiente:ARGOCD_CLUSTER_CONFIG_NAMESPACES: <openshift-gitops>ARGOCD_CLUSTER_CONFIG_NAMESPACES: <openshift-gitops> - Siga as instruções em Usando uma instância do ArgoCD para gerenciar recursos com escopo de cluster.
- No
-
Certifique-se de que a instância
openshift-gitopsdo ArgoCD possa gerenciar o namespace<uipath>:oc label namespace <uipath> argocd.argoproj.io/managed-by=openshift-gitopsoc label namespace <uipath> argocd.argoproj.io/managed-by=openshift-gitopsDepois de aplicar a configuração, reinicie o ArgoCD
openshift-gitops-application-controller(statefulset) eopenshift-gitops-server(implantação). -
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-routenã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"}}}}}' -
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: - '*' -
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
LimitRangeque 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 objetoLimitRangefoi removido do gráfico, e o controlador precisa apenas do verbodeletepara podar oLimitRangecriado por uma versão anterior durante a sincronização.Para criar a função, siga as seguintes etapas:
- 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"]
- Automation Suite 2.2510.3 e posterior (apenas o verbo
- 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>
- Salve a configuração de função que corresponde à sua versão do Automation Suite como um arquivo YAML:
-
Associe a função
limit-range-managerà conta de serviçoargocd: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 -
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"] -
Associe a função
uipath-application-managerà conta de serviçouipathadmin: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 de cluster, crie o segredo do repositório
helm-credentialsno 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.
uipathctlnão o gerencia e não requer acesso a ele ou ao namespace<openshift-gitops>— a conta de serviçouipathadminnã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
uipathctlainda o atualiza em todas as execuções, entãouipathadminprecisa deget,updateepatchnele. Conclua a próxima etapa com o 2.2510.3 função. - Versões anteriores à 2.2510.3:
uipathctlcria 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
stringDatavalores são fornecidos em texto simples. Para um registro aberto, comoregistry.uipath.com, omita as chavesusernameepasswordpara que o ArgoCD se conecte anonimamente. Deixá-los em branco faz com que o ArgoCD tente um login e falhe com um erro401. 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=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 e posterior: o segredo é de sua propriedade.
-
Apenas o Automation Suite 2.2510.3 e anterior. Essas versões gravam no segredo
helm-credentialse procura o namespace<openshift-gitops>, portanto,uipathadminprecisa de acesso a ambos. Pule esta etapa na versão 2.2510.4 e posterior.- 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"]
- Automation Suite 2.2510.3, com escopo no segredo que você criou na etapa anterior:
- 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> - Associe a função
argo-secret-rolee a funçãonamespace-readerà conta de serviçouipathadmin: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
- Salve a configuração de função que corresponde à sua versão do Automation Suite como um arquivo YAML:
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:
- Obtenha o URL do host executando os seguintes 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 fazer login, use
admincomo 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; echooc -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:
- Faça login no ArgoCD.
- Navegue até Configurações > Repositórios > +CONNECT REPO.
- Use VIA HTTPS para o método de conexão.
- Selecione Helm como o tipo.
- Forneça um nome.
- Escolha uipath como o projeto. uipath é o nome do projeto ArgoCD que você criou para o aplicativo UiPath®.
- 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:
- Navegue até Configurações > Certificados de repositório e hosts conhecidos > +ADD TLS CERTIFICATE.
- Adicione o nome do repositório e o certificado TLS no formato PEM.
- Habilite a caixa de seleção OCI .
- Select Connect.
- 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:
- 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> - 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-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
- Provisionando uma instância dedicada do GitOps
- Acessando a instância dedicada do ArgoCD
- Configurando o repositório privado e os certificados do Helm no ArgoCD
- Configurando uma instância compartilhada do GitOps
- Acessando a instância compartilhada do ArgoCD
- Configurando o repositório privado e os certificados do Helm no ArgoCD
- Configuração do ArgoCD para várias instalações em um único cluster