View a markdown version of this page

Créez une fonctionnalité Argo CD à l'aide du AWS INTERFACE DE LIGNE DE COMMANDE (CLI) - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez une fonctionnalité Argo CD à l'aide du AWS INTERFACE DE LIGNE DE COMMANDE (CLI)

Créez une fonctionnalité Argo CD sur votre cluster Amazon EKS à l'aide de l' AWS interface de ligne de commande. Cette procédure vous explique comment créer un rôle IAM, configurer AWS l'intégration d'Identity Center et vérifier que la fonctionnalité est active.

Conditions préalables

  • AWS CLI  : version 2.12.3 ou version ultérieure. Pour vérifier votre version, exécutezaws --version. Pour plus d'informations, consultez le guide d'installation dans le guide de l'utilisateur de l'interface de ligne de AWS commande.

  • kubectl  : outil de ligne de commande pour travailler avec des clusters Kubernetes. Pour de plus amples informations, veuillez consulter Configurer kubectl et eksctl .

  • AWS Identity Center configuré  : Argo CD nécessite AWS Identity Center pour l'authentification. Les utilisateurs locaux ne sont pas pris en charge. Si vous n'avez pas configuré AWS Identity Center, consultez Démarrage avec AWS Identity Center pour créer une instance Identity Center, et Ajouter des utilisateurs et Ajouter des groupes pour créer des utilisateurs et des groupes pour accéder à Argo CD.

  • Au moins un utilisateur ou un groupe dans AWS Identity Center  : au moins un utilisateur ou un groupe doit être configuré dans votre instance Identity Center pour attribuer des mappages de rôles Argo CD RBAC et fournir un accès à l'interface utilisateur Argo CD.

Étape 1 : Création d'un rôle de capacité IAM

Créez un fichier de politique de confiance :

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

Créez le rôle IAM :

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

Si vous envisagez d'utiliser les intégrations facultatives avec AWS Secrets Manager ou AWS CodeConnections d'ajouter des autorisations au rôle. Pour obtenir des exemples de politiques IAM et des conseils de configuration, consultez Gérez les secrets des applications avec AWS Secrets Manager etConnectez-vous aux référentiels Git avec AWS CodeConnections.

(Facultatif) Configurer un point de terminaison privé

Par défaut, l'interface utilisateur et le point de terminaison de l'API Argo CD sont accessibles au public sur Internet. Si vous devez restreindre l'accès, vous pouvez configurer un point de terminaison VPC. Ceci est recommandé pour les environnements soumis à des exigences de sécurité réseau strictes.

Création d'un point de terminaison VPC pour les fonctionnalités EKS

Créez un point de terminaison VPC d'interface pour le service EKS Capabilities de votre VPC. Remplacez vpc-idsubnet-id-1 subnet-id-2,sg-id, et region-code par vos propres valeurs :

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
Note
  • Les sous-réseaux doivent se trouver dans des zones de disponibilité différentes pour garantir une haute disponibilité.

  • Le groupe de sécurité doit autoriser le trafic HTTPS entrant (port 443) en provenance des réseaux qui doivent accéder à l'interface utilisateur et à l'API Argo CD.

  • Notez l'ID de point de terminaison VPC renvoyé par cette commande ; vous en aurez besoin lors de la création de la fonctionnalité.

Vérifiez que le point de terminaison VPC est disponible

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

Attendez que l'état apparaisse available avant de continuer.

Étape 2 : Création de la fonctionnalité Argo CD

Créez la ressource de fonctionnalité Argo CD sur votre cluster.

Tout d'abord, définissez les variables d'environnement pour la configuration de votre Identity Center :

# 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"

Créez cette fonctionnalité grâce à l'intégration d'Identity Center. Remplacez region-code par la AWS région dans laquelle se trouve votre cluster, my-cluster par le nom de votre cluster et idc-region-code par le code de région dans lequel se trouve votre instance Identity Center :

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" }] }] } }'

Si vous avez configuré un point de terminaison VPC pour un accès privé, incluez le network-configuration paramètre permettant de créer la fonctionnalité avec un point de terminaison privé. Remplacez-le vpce-xxxxxxxx par votre ID de point de terminaison 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" }] }] } }'

La commande revient immédiatement, mais la capacité met un certain temps à être active car EKS crée l'infrastructure et les composants de capacité requis. EKS installe les définitions de ressources personnalisées (CRD) Kubernetes dans votre cluster lors de la création des fonctionnalités.

Note

Si vous recevez un message d'erreur indiquant que le cluster n'existe pas ou que vous n'avez pas d'autorisations, vérifiez :

  • Le nom du cluster est correct

  • Votre AWS CLI est configurée pour la bonne région

  • Vous disposez des autorisations IAM requises

Étape 3 : Vérifiez que la fonctionnalité est active

Attendez que la fonctionnalité soit active. Remplacez region-code par la AWS région dans laquelle se trouve votre cluster et my-cluster par le nom de votre cluster.

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

La fonctionnalité est prête lorsque l'état s'afficheACTIVE. Attendez que le statut soit ACTIVE affiché avant de passer à l'étape suivante.

Vous pouvez également consulter les détails complets des fonctionnalités :

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

Étape 4 : Vérifier la disponibilité des ressources personnalisées

Une fois la fonctionnalité activée, vérifiez que les ressources personnalisées Argo CD sont disponibles dans votre cluster :

kubectl api-resources | grep argoproj.io

Vous devriez voir Application et répertorier les types de ApplicationSet ressources.

Étapes suivantes