View a markdown version of this page

Criação de uma funcionalidade do Argo CD por meio da AWS CLI - 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 da AWS CLI

Crie uma funcionalidade do Argo CD no cluster do Amazon EKS usando a AWS CLI. Este procedimento orienta a criação de um perfil do IAM, a configuração da integração com o Centro de Identidade da AWS e a verificação de que a funcionalidade está ativa.

Pré-requisitos

  • AWS CLI: versão 2.12.3 ou em versões posteriores. Para verificar a versão, execute aws --version. Para obter mais informações, consulte Instalação no Guia do Usuário da Interface de Linha de Comando AWS.

  • kubectl – uma ferramenta de linha de comando para trabalhar com clusters do Kubernetes. Para obter mais informações, consulte Configurar o kubectl e o eksctl.

  • 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: criar 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

Caso pretenda usar as integrações opcionais com o AWS Secrets Manager ou o AWS CodeConnections, realize a adição de 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.

(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 2: criação da funcionalidade do Argo CD

Crie o recurso da funcionalidade do Argo CD no cluster.

Primeiro, defina as variáveis de ambiente para a sua configuração do Centro de Identidade:

# Get your Identity Center instance ARN (replace region if your IDC instance is in a different region) export IDC_INSTANCE_ARN=$(aws sso-admin list-instances --region region-code --query 'Instances[0].InstanceArn' --output text) # Get a user ID for RBAC mapping (replace with your username and region if needed) export IDC_USER_ID=$(aws identitystore list-users \ --region region-code \ --identity-store-id $(aws sso-admin list-instances --region region-code --query 'Instances[0].IdentityStoreId' --output text) \ --query 'Users[?UserName==your-username].UserId' --output text) echo "IDC_INSTANCE_ARN=$IDC_INSTANCE_ARN" echo "IDC_USER_ID=$IDC_USER_ID"

Crie a funcionalidade com integração ao Centro de Identidade. Substitua region-code pela região da AWS na qual o cluster está localizado, my-cluster pelo nome do cluster e idc-region-code pelo código da região em que a instância do Centro de Identidade está localizada:

aws eks create-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --type ARGOCD \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ArgoCDCapabilityRole \ --delete-propagation-policy RETAIN \ --configuration '{ "argoCd": { "awsIdc": { "idcInstanceArn": "'$IDC_INSTANCE_ARN'", "idcRegion": "'idc-region-code'" }, "rbacRoleMappings": [{ "role": "ADMIN", "identities": [{ "id": "'$IDC_USER_ID'", "type": "SSO_USER" }] }] } }'

Se você configurou um endpoint da VPC para acesso privado, inclua o parâmetro network-configuration para criar o recurso com um endpoint privado. Substitua vpce-xxxxxxxx pelo ID do seu endpoint da VPC:

aws eks create-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --type ARGOCD \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ArgoCDCapabilityRole \ --delete-propagation-policy RETAIN \ --network-configuration '{ "elasticNetworkInterfaces": { "vpcEndpointId": "'vpce-xxxxxxxx'" } }' \ --configuration '{ "argoCd": { "awsIdc": { "idcInstanceArn": "'$IDC_INSTANCE_ARN'", "idcRegion": "'idc-region-code'" }, "rbacRoleMappings": [{ "role": "ADMIN", "identities": [{ "id": "'$IDC_USER_ID'", "type": "SSO_USER" }] }] } }'

O comando é concluído de imediato, mas a funcionalidade demora algum tempo para se tornar ativa, conforme o EKS cria a infraestrutura e os componentes necessários para a funcionalidade. O EKS instala as definições de recursos personalizados (CRDs, na sigla em inglês) do Kubernetes no cluster durante a criação da funcionalidade.

nota

Caso ocorra um erro indicando a inexistência do cluster ou falta de permissões, verifique o seguinte:

  • Se o nome do cluster está correto

  • Se a AWS CLI está configurada para a região correta

  • Se você tem as permissões do IAM obrigatórias

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

Aguarde até que a funcionalidade se torne ativa. Substitua region-code pela região da AWS em que seu cluster está localizado e my-cluster pelo nome do seu cluster.

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.status' \ --output text

A funcionalidade estará pronta assim que o status mostrar ACTIVE. Espere até que o status seja ACTIVE antes de prosseguir para a próxima etapa.

Também é possível visualizar os detalhes completos da funcionalidade:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd

Etapa 4: 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