

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.

# Déployez des charges de travail à partir de DevOps pipelines Azure vers des clusters Amazon EKS privés
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters"></a>

*Mahendra Ranasiddappa, Amazon Web Services*

## Résumé
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-summary"></a>

Ce modèle montre comment implémenter l'intégration continue et la livraison continue (CI/CD) à partir de DevOps pipelines Azure vers des clusters privés Amazon Elastic Kubernetes Service (Amazon EKS). Il répond à un défi critique auquel sont confrontées les entreprises qui améliorent leur niveau de sécurité en optant pour des points de terminaison de serveurs d'API privés pour leurs clusters Amazon EKS.

Un point de terminaison public expose le serveur d'API Kubernetes directement à Internet, ce qui crée une plus grande surface d'attaque que des acteurs malveillants pourraient potentiellement cibler. En passant à un point de terminaison privé, l'accès au plan de contrôle du cluster est limité au cloud privé virtuel (VPC) du client.

Bien que la transition d'un cluster Amazon EKS vers un point de terminaison d'API privé améliore considérablement la sécurité, elle pose des problèmes de connectivité pour les CI/CD plateformes externes telles qu'Azure DevOps. Le point de terminaison privé n'est accessible que depuis le VPC ou les réseaux pairs du cluster. Par conséquent, les DevOps agents Azure standard hébergés par Microsoft, opérant en dehors du réseau AWS privé, ne peuvent pas accéder directement au serveur d'API Kubernetes. Cela interrompt les flux de travail de déploiement classiques qui reposent sur des outils tels que kubectl ou Helm exécutés sur ces agents, car ils ne parviennent pas à établir de connexion avec le cluster.

Pour surmonter ce problème, ce modèle illustre une approche efficace en utilisant des DevOps agents Azure auto-hébergés au sein de clusters Amazon EKS privés. Cette solution offre une optimisation des coûts, une efficacité opérationnelle et une évolutivité supérieures tout en préservant les exigences de sécurité. Cette approche profite particulièrement aux entreprises qui cherchent à rationaliser leurs DevOps processus multicloud sans compromettre les performances ou la sécurité.

## Conditions préalables et limitations
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS.
+ AWS Command Line Interface [(AWS CLI) version 2.13.17 ou ultérieure, installée.](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
+ [Kubectl version 1.25.1 ou ultérieure, installée.](https://kubernetes.io/docs/tasks/tools/)
+ [Un cluster Amazon EKS privé version 1.24 ou ultérieure [créé](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html), avec des autorisations pour créer des espaces de noms, des secrets et des déploiements.](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html)
+ Nœuds de travail dans un cluster Amazon EKS dotés d'une connectivité sortante à Internet afin que l' DevOps agent Azure qui s'exécute sur ces nœuds puisse se connecter au pool d' DevOps agents Azure.
+ GitHub compte [créé](https://github.com/signup).
+ Un DevOps projet Azure ayant accès à la configuration des connexions de service, qui sont des connexions authentifiées entre Azure Pipelines et des services externes ou distants, [a été créé](https://learn.microsoft.com/en-us/azure/devops/user-guide/sign-up-invite-teammates?view=azure-devops&tabs=microsoft-account).
+ La AWS Toolkit pour Azure DevOps version 1.15 ou ultérieure installée pour le DevOps projet Azure décrit au point précédent. Pour les instructions d'installation, reportez-vous [AWS Toolkit pour Azure DevOps](https://marketplace.visualstudio.com/items?itemName=AmazonWebServices.aws-vsts-tools)à Visual Studio Marketplace.

**Limites**
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, consultez la section [AWS Services par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez [Points de terminaison de service et quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien correspondant au service.

## Architecture
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-architecture"></a>

Ce modèle crée ce qui suit :
+ Référentiel **Amazon ECR : le référentiel** Amazon Elastic Container Registry (Amazon ECR) stocke l'image Docker avec l' DevOps agent Azure et l'exemple d'application déployé.
+ **Pool d' DevOps agents Azure** : un pool d'agents DevOps auto-hébergé par Azure enregistre l'agent exécuté sur le cluster Amazon EKS privé.
+ Rôle **IAM : rôle** Gestion des identités et des accès AWS (IAM) permettant à la connexion au service Azure de fournir l'accès requis à l'agent qui s'exécute sur un cluster Amazon EKS privé.
+ Connexion au ** DevOps service Azure : connexion** au service dans un DevOps compte Azure pour utiliser le rôle IAM qui fournit l'accès requis pour que les tâches du pipeline puissent accéder Services AWS.

Le schéma suivant montre l'architecture du déploiement d'un DevOps agent Azure auto-hébergé sur un cluster Amazon EKS privé et du déploiement d'un exemple d'application sur le même cluster.

![\[Déploiement d'un DevOps agent Azure auto-hébergé et d'un exemple d'application sur un cluster Amazon EKS privé.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/a965834f-a1e2-4679-bd8c-15eed4f57b55/images/ee22bd3e-311c-46e0-8024-9b7e7752080a.png)


Le schéma suivant illustre le flux de travail suivant :

1. Déployez un DevOps agent Azure auto-hébergé en tant que déploiement au sein d'un cluster Amazon EKS.

1. Un DevOps agent Azure se connecte au pool d'agents sur un DevOps compte Azure à l'aide d'un jeton d'accès personnel (PAT) pour l'authentification.

1. Azure Pipelines configure un pipeline à déployer en utilisant le code d'un GitHub référentiel.

1. Le pipeline s'exécute sur l'agent à partir du pool d'agents configuré dans la configuration du pipeline. L' DevOps agent Azure obtient les informations relatives aux tâches du pipeline en interrogeant constamment le DevOps compte Azure.

1. L' DevOps agent Azure crée une image Docker dans le cadre de la tâche de pipeline et envoie l'image vers le référentiel Amazon ECR.

1. L' DevOps agent Azure déploie l'exemple d'application sur un cluster Amazon EKS privé dans un espace de noms appelé. `webapp` 

## Outils
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-tools"></a>

**Outils**
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) est un service géré de registre d'images de conteneurs sécurisé, évolutif et fiable.
+ [Amazon Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) EKS) vous permet d'exécuter AWS Kubernetes sans avoir à installer ou à gérer votre propre plan de contrôle ou vos propres nœuds Kubernetes.
+ [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.

**Autres outils**
+ [Docker](https://www.docker.com/) est un ensemble de produits de plateforme en tant que service (PaaS) qui utilisent la virtualisation au niveau du système d'exploitation pour fournir des logiciels dans des conteneurs.
+ [kubectl](https://kubernetes.io/docs/tasks/tools/) est une interface de ligne de commande qui vous permet d'exécuter des commandes sur des clusters Kubernetes.

**Référentiel de code**
+ Le code de ce modèle est disponible dans le référentiel GitHub [deploy-kubernetes-resources-to- amazon-eks-using-azure -devops](https://github.com/aws-samples/deploy-kubernetes-resources-to-amazon-eks-using-azure-devops).

## Bonnes pratiques
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-best-practices"></a>
+ Pour Amazon EKS, consultez le [guide des meilleures pratiques Amazon EKS](https://docs.aws.amazon.com/eks/latest/best-practices/introduction.html).
+ Respectez le principe du moindre privilège et accordez les autorisations minimales requises pour effectuer une tâche. Pour plus d'informations, consultez les sections [Accorder le moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) et [Bonnes pratiques en matière de sécurité](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans la documentation IAM.

## Épopées
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-epics"></a>

### Création d'une connexion de service
<a name="create-a-service-connection"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Trouvez le GUID de DevOps l'organisation Azure. | Connectez-vous à votre DevOps compte Azure, puis utilisez l'URL suivante pour trouver le GUID de l'organisation : `https://dev.azure.com/{DevOps_Org_ID}/_apis/projectCollections?api-version=6.0` dans l'URL, remplacez-le par votre identifiant `{DevOps_org_ID}` d' DevOps organisation Azure. | AWS DevOps | 
| Configurez un IdP dans le. Compte AWS | Pour configurer un fournisseur d'identité (IdP) dans le cadre Compte AWS d'une connexion au service Azure, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Pour plus de détails, consultez [Comment créer une fédération AWS depuis Azure à DevOps l'aide d'OpenID Connect](https://aws.amazon.com/blogs/modernizing-with-aws/how-to-federate-into-aws-from-azure-devops-using-openid-connect/). | AWS DevOps | 
| Créez une politique IAM dans le Compte AWS. | Pour créer une politique IAM afin de fournir les autorisations requises au rôle IAM utilisé par le DevOps pipeline Azure, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | AWS DevOps | 
| Créez un rôle IAM dans le Compte AWS. | Pour configurer un rôle IAM dans Compte AWS la connexion au service Azure, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Effect": "Allow",<br />      "Principal": {<br />        "Federated": "arn:aws:iam::{account_id}:oidc-provider/vstoken.dev.azure.com/{OrganizationGUID}"<br />      },<br />      "Action": "sts:AssumeRoleWithWebIdentity",<br />      "Condition": {<br />        "StringEquals": {<br />          "vstoken.dev.azure.com/{OrganizationGUID}:aud": "api://AzureADTokenExchange",<br />          "vstoken.dev.azure.com/{OrganizationGUID}:sub": "sc://{OrganizationName}/{ProjectName}/{ServiceConnectionName}"<br />        }<br />      }<br />    }<br />  ]<br />}</pre>Dans la politique, fournissez vos informations pour les espaces réservés suivants :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | AWS DevOps | 
| Créez une connexion de service dans le DevOps compte Azure. | Pour configurer une connexion au service Azure, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Pour plus de détails, consultez la section [Créer une connexion de service](https://learn.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops#create-a-service-connection) dans la documentation Microsoft. | AWS DevOps | 
| Ajoutez le rôle IAM au fichier de configuration Amazon EKS. | Le rôle IAM doit disposer des autorisations nécessaires pour effectuer les opérations requises sur le cluster Amazon EKS. Comme il s'agit d'un rôle de pipeline, le rôle IAM doit être capable de gérer presque tous les types de ressources du cluster. Par conséquent, l'autorisation de `system:masters` groupe est appropriée pour ce rôle.Pour ajouter la configuration requise à Kubernetes, utilisez le code `aws-auth ConfigMap` suivant :<pre>- groups:<br />  - system:masters<br />  rolearn: arn:aws:iam::{account_id}:role/ADO-role<br />  username: ADO-role</pre>`{account_id}`Remplacez-le par votre Compte AWS identifiant.Pour plus d'informations, consultez [Comment Amazon EKS fonctionne avec IAM](https://docs.aws.amazon.com/eks/latest/userguide/security-iam-service-with-iam.html#security-iam-service-with-iam-roles) dans la documentation Amazon EKS. | AWS DevOps | 

### Création d'un pool d'agents
<a name="create-an-agent-pool"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un pool d'agents auto-hébergé. | Pour configurer un pool d'agents auto-hébergé dans le DevOps compte Azure, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Pour plus de détails, consultez la section [Création et gestion de pools d'agents](https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/pools-queues?view=azure-devops&tabs=yaml%2Cbrowser) dans la documentation Microsoft. |  | 

### Créez une image d' DevOps agent Azure et envoyez-la vers Amazon ECR
<a name="build-azure-devops-agent-image-and-push-to-ecr"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| créer un référentiel Amazon ECR ; | Les images Docker utilisées pour déployer l' DevOps agent Azure et l'exemple d'application (`webapp`) sur le cluster Amazon EKS privé doivent être stockées dans un référentiel Amazon ECR. Pour créer un référentiel Amazon ECR, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Pour plus de détails, consultez la section [Création d'un référentiel privé Amazon ECR pour stocker des images](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html) dans la documentation Amazon ECR. | AWS DevOps | 
| Créez un Dockerfile pour créer l'agent Azure DevOps . | Créez un Dockerfile pour créer l'image Docker sur laquelle l'agent Azure DevOps est installé. Stockez le contenu suivant dans un fichier nommé `Dockerfile` :<pre><br />FROM ubuntu:22.04 <br />ENV TARGETARCH="linux-x64"<br />RUN apt update && apt upgrade -y && apt install -y curl git jq libicu70 unzip wget<br /><br />RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />RUN unzip awscliv2.zip<br />RUN ./aws/install<br />RUN rm -rf aws awscliv2.zip<br /><br />RUN curl -sSL https://get.docker.com/ | sh<br /><br />RUN curl -sL https://aka.ms/InstallAzureCLIDeb | bash<br />RUN mkdir -p azp <br />WORKDIR /azp/<br /><br />COPY ./start.sh ./ <br />RUN chmod +x ./start.sh<br /><br />RUN useradd -m -d /home/agent agent <br />RUN chown -R agent:agent /azp /home/agent<br />RUN groupadd -f docker <br />RUN usermod -aG docker agent<br />USER agent<br /><br />ENTRYPOINT [ "./start.sh" ]</pre> | AWS DevOps | 
| Créez un script pour l' DevOps agent Azure. | Pour créer le `start.sh` script, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | AWS DevOps | 
| Créez une image Docker avec l' DevOps agent Azure.  | Pour créer une image Docker afin d'installer l' DevOps agent Azure, utilisez le Dockerfile que vous avez créé précédemment pour créer l'image. Dans le répertoire où le Dockerfile est stocké, exécutez les commandes suivantes :<pre>aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com<br /><br />docker build --platform linux/amd64 -t ado-agent:latest .<br /><br />docker tag ado-agent:latest aws_account_id.dkr.ecr.region.amazonaws.com/webapp:latest<br /><br />docker push aws_account_id.dkr.ecr.region.amazonaws.com/webapp:latest</pre>Remplacez `aws_account_id` et `region` par votre Compte AWS identifiant et Région AWS. | AWS DevOps | 

### Déployer l' DevOps agent Azure sur un cluster Amazon EKS privé
<a name="deploy-the-azure-devops-agent-to-a-private-eks-cluster"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Générez un jeton d'accès personnel Azure. | L'agent exécuté sur le cluster privé Amazon EKS a besoin d'un jeton d'accès personnel (PAT) afin de pouvoir s'authentifier auprès du DevOps compte Azure. Pour générer un PAT, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)<pre>apiVersion: v1<br />kind: Secret<br />metadata:<br />  name: azdevops-pat<br />  namespace: default<br />type: Opaque<br />stringData:<br />  AZP_TOKEN: <PAT Token></pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)<pre>kubectl create -f ado-secret.yaml</pre>Pour plus de détails, voir [Enregistrer un agent à l'aide d'un jeton d'accès personnel (PAT)](https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/personal-access-token-agent-registration?view=azure-devops) dans la documentation Microsoft. | AWS DevOps | 
| Utilisez le fichier manifeste Kubernetes pour le déploiement de l'agent. | Pour déployer l' DevOps agent Azure sur le cluster privé Amazon EKS, copiez le fichier manifeste suivant et stockez-le sous le nom `agent-deployment.yaml` : <pre>apiVersion: apps/v1<br />kind: Deployment<br />metadata:<br />  name: azure-pipelines-agent-eks<br />  labels:<br />    app: azure-pipelines-agent<br />spec:<br />  replicas: 1<br />  selector:<br />    matchLabels:<br />      app: azure-pipelines-agent<br />  template:<br />    metadata:<br />      labels:<br />        app: azure-pipelines-agent<br />    spec:<br />      containers:<br />      - name: docker<br />        image: docker:dind<br />        securityContext: <br />          privileged: true<br />        volumeMounts:<br />        - name: shared-workspace<br />          mountPath: /workspace<br />        - name: dind-storage<br />          mountPath: /var/lib/docker<br />        env:<br />        - name: DOCKER_TLS_CERTDIR<br />          value: ""<br />      - name: azure-pipelines-agent<br />        image: aws_account_id.dkr.ecr.region.amazonaws.com/webapp:latest<br />        env:<br />        - name: AZP_URL<br />          value: "<Azure account URL>"<br />        - name: AZP_POOL<br />          value: "eks-agent"<br />        - name: AZP_TOKEN<br />          valueFrom:<br />            secretKeyRef:<br />              name: azdevops-pat<br />              key: AZP_TOKEN<br />        - name: AZP_AGENT_NAME<br />          valueFrom:<br />            fieldRef:<br />              fieldPath: metadata.name<br />        - name: DOCKER_HOST<br />          value: tcp://localhost:2375<br />        volumeMounts:<br />        - mountPath: /workspace<br />          name: shared-workspace<br />      volumes:<br />      - name: dind-storage<br />        emptyDir: {}<br />      - name: shared-workspace<br />        emptyDir: {}</pre>Remplacez `aws_account_id` et `<Azure account URL>` par votre Compte AWS identifiant et l'URL de votre DevOps compte Azure. | AWS DevOps | 
| Déployez l'agent sur le cluster Amazon EKS privé. | Pour déployer l'agent Azure Devops sur le cluster privé Amazon EKS, utilisez la commande suivante :<pre>kubectl create -f agent-deployment.tf</pre> | AWS DevOps | 
| Vérifiez que l'agent est en cours d'exécution. | Pour vérifier que l' DevOps agent Azure est en cours d'exécution, utilisez la commande suivante :<pre>kubectl get deploy azure-pipelines-agent-eks<br /></pre>Le résultat attendu doit être similaire à ce qui suit :<pre><br />NAME                        READY   UP-TO-DATE   AVAILABLE   AGE<br />azure-pipelines-agent-eks   1/1     1            1           58s</pre>Assurez-vous que la `READY ` colonne s'affiche`1/1`. | AWS DevOps | 
| Vérifiez que l'agent est enregistré dans le pool d' DevOps agents Azure. | Pour vérifier que l'agent est déployé sur le cluster privé Amazon EKS et qu'il est enregistré dans le pool d'agents`eks-agent`, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Vous devriez voir un agent répertorié avec un **statut** **en ligne**, et le nom de l'agent doit commencer par **azure-pipelines-agent-eks-\$1**. | AWS DevOps | 

### Déployer un exemple d'application
<a name="deploy-sample-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Ajoutez le référentiel d'exemples d'applications à votre GitHub compte.  | Ajoutez le référentiel AWS d'échantillons suivant à votre GitHub compte :[https://github.com/aws-samples/deploy-kubernetes-resources-to- amazon-eks-using-azure devops](https://github.com/aws-samples/deploy-kubernetes-resources-to-amazon-eks-using-azure-devops) | AWS DevOps | 
| Créez un pipeline. | Pour créer un pipeline dans votre DevOps compte Azure, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)<pre>pool:<br />  name: eks-agent<br />#pool: self-hosted # If you are running self-hosted Azure DevOps Agents<br /><br />stages:<br /># Refering the pipeline template, input parameter that are not specified will be added with defaults<br />- template: ./pipeline_templates/main_template.yaml<br />  parameters:<br />    serviceConnectionName: aws-sc<br />    awsRegion: <your region><br />    awsEKSClusterName: <name of your EKS cluster><br />    projectName: webapp<br /></pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | AWS DevOps | 
| Vérifiez que l'exemple d'application a été déployé. | Une fois le pipeline terminé, vérifiez le déploiement réussi de l'exemple d'application en vérifiant à la fois le référentiel Amazon ECR et le cluster Amazon EKS.Pour vérifier les artefacts dans le référentiel Amazon ECR, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html)Par exemple : `20250501.1-image` et `20250501.1-helm`.Pour vérifier le déploiement sur le cluster privé Amazon EKS dans l'espace de noms`webapp`, utilisez la commande suivante :<pre>kubectl get deploy -n webapp </pre>La sortie attendue est la suivante :<pre><br />NAME     READY   UP-TO-DATE   AVAILABLE<br />webapp   1/1     1            1           </pre>Remarque : s'il s'agit de votre première exécution de pipeline, vous devrez peut-être autoriser la connexion au service et le pool d'agents. Recherchez les demandes d'autorisation dans l'interface du DevOps pipeline Azure et approuvez-les pour continuer. | AWS DevOps | 

## Résolution des problèmes
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Le pipeline échoue lorsque le nom du référentiel Amazon ECR ne correspond pas `webapp` | L'exemple d'application s'attend à ce que le nom du référentiel Amazon ECR corresponde au `projectName: webapp` paramètre indiqué dans`azure_pipeline.yml`.Pour résoudre ce problème, renommez votre référentiel Amazon ECR en ou mettez à jour `webapp` ce qui suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | 
| Erreur : le cluster Kubernetes est inaccessible : le serveur a demandé au client de fournir des informations d'identification | Si vous rencontrez cette erreur à l'étape « Pull and Deploy Helm Chart » de votre pipeline Azure, la cause première provient généralement d'une configuration incorrecte des rôles IAM dans celui de `aws-auth ConfigMap` votre cluster Amazon EKS.Pour résoudre ce problème, vérifiez les points suivants :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters.html) | 

## Ressources connexes
<a name="deploy-workloads-from-azure-devops-pipelines-to-private-amazon-eks-clusters-resources"></a>

**AWS Blogs**
+ [Comment créer une fédération AWS depuis Azure à l' DevOps aide d'OpenID Connect](https://aws.amazon.com/blogs/modernizing-with-aws/how-to-federate-into-aws-from-azure-devops-using-openid-connect/)

**Services AWS documentation**
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
+ [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Documentation Microsoft**
+ [Qu'est-ce qu'Azure DevOps ?](https://learn.microsoft.com/en-us/azure/devops/user-guide/what-is-azure-devops?view=azure-devops)
+ [Qu'est-ce qu'Azure Pipelines ?](https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops)