View a markdown version of this page

Création d'une fonctionnalité Argo CD à l'aide d'eksctl - 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éation d'une fonctionnalité Argo CD à l'aide d'eksctl

Créez une fonctionnalité Argo CD sur votre cluster Amazon EKS à l'aide de eksctl.

Note

Les étapes suivantes nécessitent la version eksctl 0.215.0 ou une version ultérieure. Pour vérifier votre version, exécutezeksctl version.

Conditions préalables

  • 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

Pour cette configuration de base, aucune politique IAM supplémentaire n'est requise. Si vous envisagez d'utiliser Secrets Manager pour les informations d'identification du référentiel ou CodeConnections si vous devez 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.

Étape 2 : Obtenez votre AWS Configuration du centre d'identité

Obtenez l'ARN et l'ID utilisateur de votre instance Identity Center pour la configuration 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

Notez ces valeurs. Vous en aurez besoin à l'étape suivante.

(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 3 : Création d'un fichier de configuration eksctl

Créez un fichier nommé argocd-capability.yaml avec le contenu suivant. Remplacez les valeurs d'espace réservé par le nom de votre cluster, la région du cluster, l'ARN du rôle IAM, l'ARN de l'instance Identity Center, la région du centre d'identité et l'ID utilisateur :

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
Note

Vous pouvez ajouter plusieurs utilisateurs ou groupes aux mappages RBAC. Pour les groupes, utilisez type: SSO_GROUP et fournissez l'identifiant du groupe. Les rôles disponibles sont ADMINEDITOR, etVIEWER.

Si vous avez configuré un point de terminaison VPC pour un accès privé, ajoutez la networkConfiguration section à la définition des fonctionnalités. Remplacez-le vpce-xxxxxxxx par l'ID de votre point de terminaison 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
Note

Lorsque le point de terminaison privé est activé, l'interface utilisateur et l'API Argo CD ne sont accessibles que via le point de terminaison VPC. Les utilisateurs doivent être connectés au VPC (ou à un réseau pair) pour accéder à l'interface Argo CD.

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

Appliquez le fichier de configuration :

eksctl create capability -f argocd-capability.yaml

La commande revient immédiatement, mais la fonctionnalité met un certain temps à être active.

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

Vérifiez l'état des capacités. region-codeRemplacez-la par la AWS région dans laquelle se trouve votre cluster et my-cluster remplacez-la par le nom de votre cluster.

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

La fonctionnalité est prête lorsque l'état s'afficheACTIVE.

Étape 6 : 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