Crea una funzionalità Argo CD usando eksctl - Amazon EKS

View a markdown version of this page

Crea una funzionalità Argo CD usando eksctl - Amazon EKS

Contribuisci a migliorare questa pagina

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina su che si trova nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea una funzionalità Argo CD usando eksctl

Crea una funzionalità Argo CD sul tuo cluster Amazon EKS usando eksctl.

Nota

I passaggi seguenti richiedono una versione eksctl o successiva. 0.215.0 Per verificare la tua versione, esegui. eksctl version

Prerequisiti

  • AWS Identity Center configurato: Argo CD richiede AWS Identity Center per l'autenticazione. Gli utenti locali non sono supportati. Se non hai configurato AWS Identity Center, vedi Guida introduttiva a AWS Identity Center per creare un'istanza di Identity Center e Aggiungi utenti e Aggiungi gruppi per creare utenti e gruppi per l'accesso ad Argo CD.

  • Almeno un utente o gruppo in AWS Identity Center: è necessario disporre di almeno un utente o gruppo configurato nell'istanza di Identity Center per assegnare le mappature dei ruoli RBAC di Argo CD e fornire l'accesso all'interfaccia utente di Argo CD.

Fase 1: Creazione di un ruolo IAM Capability

Crea un file di policy sulla fiducia:

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

Crea il ruolo IAM:

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

Per questa configurazione di base, non sono necessarie politiche IAM aggiuntive. Se prevedi di utilizzare Secrets Manager per le credenziali del repository o CodeConnections, dovrai aggiungere le autorizzazioni al ruolo. Per esempi di policy IAM e linee guida alla configurazione, consulta e. Gestisci i segreti delle applicazioni con AWS Secrets Manager Connect ai repository Git con AWS CodeConnections

Fase 2: Ottieni il tuo AWS Configurazione dell'Identity Center

Ottieni l'ARN e l'ID utente dell'istanza di Identity Center per la configurazione 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

Annota questi valori: ti serviranno nel passaggio successivo.

(Facoltativo) Configura un endpoint privato

Per impostazione predefinita, l'interfaccia utente e l'endpoint API di Argo CD sono accessibili pubblicamente su Internet. Se è necessario limitare l'accesso, è possibile configurare un endpoint VPC. Questo è consigliato per ambienti con severi requisiti di sicurezza di rete.

Crea un endpoint VPC per EKS Capabilities

Crea un endpoint VPC di interfaccia per il servizio EKS Capabilities nel tuo VPC. Sostituiscivpc-id, subnet-id-1 subnet-id-2sg-id, e region-code con i tuoi valori:

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
  • Le sottoreti devono trovarsi in zone di disponibilità diverse per garantire l'alta disponibilità.

  • Il gruppo di sicurezza deve consentire il traffico HTTPS (porta 443) in entrata dalle reti che devono accedere all'interfaccia utente e all'API di Argo CD.

  • Nota l'ID dell'endpoint VPC restituito da questo comando: ti servirà durante la creazione della funzionalità.

Verifica che l'endpoint VPC sia disponibile

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

Attendi che venga visualizzato lo stato available prima di procedere.

Passo 3: Creare un file di configurazione eksctl

Crea un archivio denominato argocd-capability.yaml con i seguenti contenuti. Sostituisci i valori segnaposto con il nome del cluster, la regione del cluster, l'ARN del ruolo IAM, l'ARN dell'istanza di Identity Center, la regione dell'Identity Center e l'ID utente:

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

È possibile aggiungere più utenti o gruppi alle mappature RBAC. Per i gruppi, utilizza type: SSO_GROUP e fornisci l'ID del gruppo. I ruoli disponibili sonoADMIN,EDITOR, eVIEWER.

Se hai configurato un endpoint VPC per l'accesso privato, aggiungi la networkConfiguration sezione alla definizione della funzionalità. Sostituisci vpce-xxxxxxxx con il tuo ID endpoint 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 l'endpoint privato è abilitato, l'interfaccia utente e l'API di Argo CD sono accessibili solo tramite l'endpoint VPC. Gli utenti devono essere connessi al VPC (o a una rete peered) per accedere all'interfaccia Argo CD.

Fase 4: Creare la funzionalità Argo CD

Applica il file di configurazione:

eksctl create capability -f argocd-capability.yaml

Il comando viene restituito immediatamente, ma la funzionalità richiede del tempo per diventare attiva.

Fase 5: Verificare che la funzionalità sia attiva

Controlla lo stato della capacità. Sostituiscilo region-code con la AWS regione in cui si trova il cluster e sostituiscilo my-cluster con il nome del cluster.

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

La funzionalità è pronta quando viene visualizzato lo statoACTIVE.

Passaggio 6: verifica della disponibilità di risorse personalizzate

Dopo che la funzionalità è attiva, verifica che le risorse personalizzate di Argo CD siano disponibili nel tuo cluster:

kubectl api-resources | grep argoproj.io

Dovresti vedere i tipi Application di ApplicationSet risorse elencati.

Fasi successive