View a markdown version of this page

Criação de uma funcionalidade do Argo CD por meio do eksctl - Amazon EKS

Ajudar a melhorar esta página

Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.

Criação de uma funcionalidade do Argo CD por meio do eksctl

Crie uma funcionalidade do Argo CD no cluster do Amazon EKS usando a ferramenta eksctl.

nota

Para realizar as etapas seguintes, é necessário estar utilizando o eksctl na versão 0.215.0 ou em versões posteriores. Para verificar a versão, execute eksctl version.

Pré-requisitos

  • Centro de Identidade da AWS configurado: o Argo CD requer o Centro de Identidade da AWS para autenticação. Não há suporte para usuários locais. Se você não tiver o Centro de Identidade da AWS configurado, consulte Conceitos básicos do Centro de Identidade da AWS para criar uma instância do Centro de Identidade, e Adicionar usuários e Adicionar grupos para criar usuários e grupos para acesso ao Argo CD.

  • Pelo menos um usuário ou grupo no AWSCentro de Identidade: você deve ter pelo menos um usuário ou grupo configurado em sua instância do Centro de Identidade para atribuir mapeamentos de função do Argo CD RBAC e fornecer acesso à interface do usuário do Argo CD.

Etapa 1: criação de um perfil de funcionalidade do IAM

Crie um arquivo de política de confiança:

cat > argocd-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF

Crie o perfil do IAM:

aws iam create-role \ --role-name ArgoCDCapabilityRole \ --assume-role-policy-document file://argocd-trust-policy.json
nota

Para esta configuração básica, não são necessárias políticas do IAM adicionais. Se você planeja usar o Secrets Manager para credenciais de repositório ou para o CodeConnections, precisará adicionar permissões ao perfil. Para obter exemplos da política do IAM e de orientações de configuração, consulte Gerenciamento de segredos de aplicações com o AWS Secrets Manager e Estabelecimento de conexão com repositórios do Git usando o AWS CodeConnections.

Etapa 2: obtenção da configuração do Centro de Identidade da AWS

Obtenha o ARN da instância do Centro de Identidade e o ID do usuário para a configuração de RBAC:

# Get your Identity Center instance ARN aws sso-admin list-instances --query 'Instances[0].InstanceArn' --output text # Get a user ID for admin access (replace 'your-username' with your Identity Center username) aws identitystore list-users \ --identity-store-id $(aws sso-admin list-instances --query 'Instances[0].IdentityStoreId' --output text) \ --query 'Users[?UserName==`your-username`].UserId' --output text

Anote esses valores. Você precisará deles na próxima etapa.

(Opcional) Configurar um endpoint privado

Por padrão, a interface do usuário e o endpoint de API do Argo CD são acessíveis publicamente pela internet. Se você precisar restringir o acesso, poderá configurar um endpoint da VPC. Recomendado para ambientes com requisitos rígidos de segurança de rede.

Criar um endpoint da VPC para Capacidades do EKS

Crie um endpoint da VPC de interface para o serviço Capacidades do EKS em sua VPC. Substitua vpc-id, subnet-id-1 subnet-id-2, sg-id e region-code pelos seus próprios valores:

aws ec2 create-vpc-endpoint \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.region-code.eks-capabilities \ --vpc-id vpc-id \ --subnet-ids subnet-id-1 subnet-id-2 \ --security-group-ids sg-id \ --region region-code
nota
  • As sub-redes devem estar em diferentes zonas de disponibilidade para alta disponibilidade.

  • O grupo de segurança deve permitir o tráfego HTTPS de entrada (porta 443) das redes que precisam acessar a interface do usuário e a API do Argo CD.

  • Observe o ID do endpoint da VPC retornado por esse comando. Você precisará dele ao criar o recurso.

Verifique se o endpoint da VPC está disponível

aws ec2 describe-vpc-endpoints \ --vpc-endpoint-ids vpce-xxxxxxxx \ --query 'VpcEndpoints[0].State' \ --output text \ --region region-code

Aguarde até que o estado apareça como available antes de continuar.

Etapa 3: criação de um arquivo de configuração do eksctl

Crie um arquivo chamado argocd-capability.yaml com o conteúdo a seguir. Substitua os valores com espaços reservados pelo nome do seu cluster, região, ARN do perfil do IAM, ARN da instância do Centro de Identidade, região do Centro de Identidade e ID do usuário:

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: cluster-region-code capabilities: - name: my-argocd type: ARGOCD roleArn: arn:aws:iam::111122223333:role/ArgoCDCapabilityRole deletePropagationPolicy: RETAIN configuration: argocd: awsIdc: idcInstanceArn: arn:aws:sso:::instance/ssoins-123abc idcRegion: idc-region-code rbacRoleMappings: - role: ADMIN identities: - id: 38414300-1041-708a-01af-5422d6091e34 type: SSO_USER
nota

É possível adicionar vários usuários ou grupos aos mapeamentos de RBAC. Para grupos, use type: SSO_GROUP e forneça o ID do grupo. Os perfis disponíveis são ADMIN, EDITOR e VIEWER.

Se você configurou um endpoint da VPC para acesso privado, adicione a seção networkConfiguration à definição de capacidade. Substitua vpce-xxxxxxxx pelo ID do seu endpoint da VPC:

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: cluster-region-code capabilities: - name: my-argocd type: ARGOCD roleArn: arn:aws:iam::111122223333:role/ArgoCDCapabilityRole deletePropagationPolicy: RETAIN networkConfiguration: elasticNetworkInterfaces: vpcEndpointId: vpce-xxxxxxxx configuration: argocd: awsIdc: idcInstanceArn: arn:aws:sso:::instance/ssoins-123abc idcRegion: idc-region-code rbacRoleMappings: - role: ADMIN identities: - id: 38414300-1041-708a-01af-5422d6091e34 type: SSO_USER
nota

Quando o endpoint privado está ativado, a interface do usuário e a API do Argo CD só podem ser acessadas por meio do endpoint da VPC. Os usuários devem estar conectados à VPC (ou a uma rede emparelhada) para acessar a interface do Argo CD.

Etapa 4: criação da funcionalidade do Argo CD

Aplique o arquivo de configuração:

eksctl create capability -f argocd-capability.yaml

O comando é executado de forma imediata, mas a funcionalidade demora algum tempo para se tornar ativa.

Etapa 5: verificação da ativação da funcionalidade

Verifique o status da funcionalidade. Substitua region-code pela região AWS em que seu cluster se encontra e substitua my-cluster pelo nome do seu cluster.

eksctl get capability \ --region region-code \ --cluster my-cluster \ --name my-argocd

A funcionalidade estará pronta assim que o status mostrar ACTIVE.

Etapa 6: verificação da disponibilidade de recursos personalizados

Após a funcionalidade estar ativa, verifique se os recursos personalizados do Argo CD estão disponíveis no cluster:

kubectl api-resources | grep argoproj.io

Os tipos de recursos Application e ApplicationSet devem aparecer na lista apresentada.

Próximas etapas