

 **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 sur** 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éer un module complémentaire Amazon EKS
<a name="creating-an-add-on"></a>

Les modules complémentaires Amazon EKS sont des logiciels complémentaires destinés aux clusters Amazon EKS. Tous les modules complémentaires Amazon EKS :
+ Inclure les derniers correctifs de sécurité et corrections de bogues.
+ Sont validés par AWS pour fonctionner avec Amazon EKS.
+ Réduire la charge de travail nécessaire à la gestion du logiciel complémentaire.

Vous pouvez créer un module complémentaire Amazon EKS à l'aide `eksctl` de l'interface de AWS Management Console ligne de commande ou de la AWS CLI. Si le module complémentaire nécessite un rôle IAM, consultez les détails du module complémentaire spécifique dans [Amazon EKS add-ons](eks-add-ons.md) pour plus d’informations sur la création du rôle.

## Conditions préalables
<a name="creating-an-add-on-prereq"></a>

Avant de créer un module complémentaire, procédez comme suit :
+ Le cluster doit exister avant que vous ne puissiez créer un module complémentaire pour celui-ci. Pour de plus amples informations, veuillez consulter [Création d’un cluster Amazon EKS](create-cluster.md).
+ Vérifiez si votre module complémentaire nécessite un rôle IAM. Pour de plus amples informations, veuillez consulter [Vérification de la compatibilité de la version du module complémentaire Amazon EKS avec un cluster](addon-compat.md).
+ Vérifiez que la version du module complémentaire Amazon EKS est compatible avec votre cluster. Pour de plus amples informations, veuillez consulter [Vérification de la compatibilité de la version du module complémentaire Amazon EKS avec un cluster](addon-compat.md).
+ Vérifiez que la version 0.190.0 ou ultérieure de l'outil de ligne de `eksctl` commande est installée sur votre ordinateur ou. AWS CloudShell Pour plus d’informations, consultez [Installation](https://eksctl.io/installation/) sur le site Web `eksctl`.

## Procédure
<a name="creating-an-add-on-procedure"></a>

Vous pouvez créer un module complémentaire Amazon EKS à l'aide `eksctl` de l'interface de AWS Management Console ligne de commande ou de la AWS CLI. Si le module complémentaire nécessite un rôle IAM, consultez les détails du module complémentaire spécifique dans [Modules complémentaires Amazon EKS disponibles AWS](workloads-add-ons-available-eks.md) pour plus d’informations sur la création du rôle.

## Créer un module complémentaire (eksctl)
<a name="_create_add_on_eksctl"></a>

1. Affichez les noms des modules complémentaires disponibles pour une version de cluster. Remplacez *1.35* par la version de votre cluster.

   ```
   eksctl utils describe-addon-versions --kubernetes-version 1.35 | grep AddonName
   ```

   L'exemple qui suit illustre un résultat.

   ```
   "AddonName": "aws-ebs-csi-driver",
                           "AddonName": "coredns",
                           "AddonName": "kube-proxy",
                           "AddonName": "vpc-cni",
                           "AddonName": "adot",
                           "AddonName": "dynatrace_dynatrace-operator",
                           "AddonName": "upbound_universal-crossplane",
                           "AddonName": "teleport_teleport",
                           "AddonName": "factorhouse_kpow",
                           [...]
   ```

1. Consultez les versions disponibles pour le module complémentaire que vous souhaitez créer. Remplacez *1.35* par la version de votre cluster. Remplacez *name-of-addon* par le nom du module complémentaire dont vous souhaitez afficher les versions. Le nom doit être l’un des noms renvoyés à l’étape précédente.

   ```
   eksctl utils describe-addon-versions --kubernetes-version 1.35 --name name-of-addon | grep AddonVersion
   ```

   La sortie suivante est un exemple de ce qui est renvoyé pour le module complémentaire nommé `vpc-cni`. Vous pouvez voir que le module complémentaire dispose de plusieurs versions disponibles.

   ```
   "AddonVersions": [
       "AddonVersion": "v1.12.0-eksbuild.1",
       "AddonVersion": "v1.11.4-eksbuild.1",
       "AddonVersion": "v1.10.4-eksbuild.1",
       "AddonVersion": "v1.9.3-eksbuild.1",
   ```

   1. Déterminez si le module complémentaire que vous souhaitez créer est un module complémentaire Amazon EKS ou AWS Marketplace. The AWS Marketplace propose des modules complémentaires tiers qui vous obligent à effectuer des étapes supplémentaires pour créer le module complémentaire.

      ```
      eksctl utils describe-addon-versions --kubernetes-version 1.35 --name name-of-addon | grep ProductUrl
      ```

      Si aucune sortie n'est renvoyée, le module complémentaire est un module Amazon EKS. Si une sortie est renvoyée, le module complémentaire est un module complémentaire AWS Marketplace. La sortie suivante concerne un module complémentaire nommé `teleport_teleport`.

      ```
      "ProductUrl": "https://aws.amazon.com/marketplace/pp?sku=3bda70bb-566f-4976-806c-f96faef18b26"
      ```

      Vous pouvez en savoir plus sur le module complémentaire sur le AWS Marketplace avec l'URL renvoyée. Si le module complémentaire nécessite un abonnement, vous pouvez vous y abonner via le AWS Marketplace. Si vous souhaitez créer un module complémentaire depuis AWS Marketplace, le [principal IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) que vous utilisez pour créer le module complémentaire doit être autorisé à créer le rôle lié à un [AWSServiceRoleForAWSLicenseManagerRole](https://docs.aws.amazon.com/license-manager/latest/userguide/license-manager-role-core.html)service. Pour plus d'informations sur l'attribution d'autorisations à une entité IAM, consultez la rubrique [Ajout et suppression d'autorisations basées sur l'identité IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dans le Guide de l'utilisateur IAM.

1. Créez un module complémentaire Amazon EKS. Copiez la commande et remplacez la commande *user-data* comme suit :
   + Remplacez *my-cluster* par le nom de votre cluster.
   + Remplacez *name-of-addon* par le nom du module complémentaire que vous souhaitez créer.
   + Si vous souhaitez une version du module complémentaire antérieure à la dernière version, remplacez-la *latest* par le numéro de version renvoyé dans le résultat de l'étape précédente que vous souhaitez utiliser.
   + Si le module complémentaire utilise un rôle de compte de service, remplacez *111122223333* par votre ID de compte et *role-name* par le nom du rôle. Pour obtenir des instructions sur la création d’un rôle pour votre compte de service, consultez la documentation relative au module complémentaire que vous créez. Pour obtenir la liste des modules complémentaires, consultez [AWS modules complémentaires](workloads-add-ons-available-eks.md). Pour spécifier un rôle de compte de service, vous devez disposer d’un fournisseur IAM OpenID Connect (OIDC) pour votre cluster. Pour déterminer si vous en avez un pour votre cluster ou pour en créer un, consultez [Créer un fournisseur d'identité OIDC IAM pour votre cluster](enable-iam-roles-for-service-accounts.md).

     Si le module complémentaire n’utilise pas de rôle de compte de service, supprimez `--service-account-role-arn arn:aws: iam::111122223333:role/role-name`.
   + Cet exemple de commande remplace la configuration de toute version autogérée existante du module complémentaire, le cas échéant. Si vous ne souhaitez pas remplacer la configuration d'un module complémentaire autogéré existant, supprimez l'*--force*option. Si vous supprimez cette option et que le module complémentaire doit remplacer la configuration d'un module complémentaire autogéré existant, la création du module complémentaire Amazon EKS échoue et vous recevez un message d'erreur pour vous aider à résoudre le conflit. Avant de spécifier cette option, assurez-vous que le module complémentaire Amazon EKS ne gère pas les paramètres que vous devez gérer, car ces paramètres sont remplacés par cette option.

     ```
     eksctl create addon --cluster my-cluster --name name-of-addon --version latest \
         --service-account-role-arn arn:aws: iam::111122223333:role/role-name --force
     ```

     Vous pouvez consulter la liste complète des options disponibles pour la commande.

     ```
     eksctl create addon --help
     ```

     Pour plus d'informations sur les options disponibles, consultez [Modules complémentaires](https://eksctl.io/usage/addons/) dans la documentation `eksctl`.

## Créer un module complémentaire (AWS console)
<a name="create_add_on_console"></a>

1. Ouvrez la [console Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

1. Dans le volet de navigation de gauche, choisissez **Clusters**.

1. Choisissez le nom du cluster pour lequel vous souhaitez créer le module complémentaire.

1. Choisissez l’onglet **Modules complémentaires**.

1. Choisissez **Obtenez plus de modules complémentaires**.

1. Sur la page **Select add-ons** (Sélectionner les modules complémentaires), choisissez les modules complémentaires que vous souhaitez ajouter à votre cluster. Vous pouvez ajouter autant de modules complémentaires **Amazon EKS et de modules** **complémentaires AWS Marketplace** que vous le souhaitez.

   Pour les modules complémentaires ** AWS Marketplace**, le [principal IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) que vous utilisez pour créer le module complémentaire doit être autorisé à lire les droits relatifs au module complémentaire depuis le. AWS LicenseManager AWS LicenseManager nécessite un rôle [AWSServiceRoleForAWSLicenseManagerRole](https://docs.aws.amazon.com/license-manager/latest/userguide/license-manager-role-core.html)lié au service (SLR) qui permet aux AWS ressources de gérer les licences en votre nom. Le SLR est une exigence unique, par compte, et vous n’aurez pas à créer de SLR distincts pour chaque module complémentaire ou chaque cluster. Pour plus d'informations sur l'attribution d'autorisations à un [principal IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal), consultez la rubrique [Ajout et suppression d'autorisations basées sur l'identité IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) du Guide de l'utilisateur IAM.

   Si les **modules complémentaires AWS Marketplace** que vous souhaitez installer ne figurent pas dans la liste, vous pouvez cliquer sur la numérotation des pages pour afficher des résultats supplémentaires ou effectuer une recherche dans le champ de recherche. Dans les **Options de filtrage**, vous pouvez également filtrer par **catégorie**, **fournisseur**, ou **modèle de tarification** puis choisir les modules complémentaires dans les résultats de la recherche. Une fois que vous avez sélectionné les modules complémentaires que vous souhaitez installer, cliquez sur **Suivant**.

1. Sur la page **Configurer les paramètres des modules complémentaires sélectionnés**, procédez comme suit :

   1. Choisissez **Afficher les options d'abonnement** pour ouvrir le formulaire des **Options d'abonnement**. Passez en revue les sections **Détails de la tarification** et **Mentions légales**, puis cliquez sur le bouton **S'abonner** pour continuer.

   1. Pour la **version**, choisissez celle que vous souhaitez installer. Nous recommandons la version marquée comme la **plus récente**, à moins que le module complémentaire que vous créez ne recommande une version différente. Pour déterminer si un module complémentaire dispose d’une version recommandée, consultez la documentation relative au module complémentaire que vous créez. Pour obtenir la liste des modules complémentaires, consultez [AWS modules complémentaires](workloads-add-ons-available-eks.md).

   1. Vous disposez de deux options pour configurer les rôles des modules complémentaires : le rôle IAM EKS Pod Identities et les rôles IAM pour les comptes de service (IRSA). Suivez l’étape appropriée ci-dessous pour l’option que vous préférez. Si tous les modules complémentaires que vous avez sélectionnés ont la mention **Nécessite un abonnement** sous **Statut**, sélectionnez **Suivant**. Vous ne pouvez pas [configurer davantage ces modules complémentaires](updating-an-add-on.md) tant que vous ne vous y êtes pas abonné après la création de votre cluster. Pour les modules complémentaires qui n’ont pas la mention **Abonnement requis** sous **Statut**, procédez comme suit :

      1. Pour le **rôle IAM d’identité du pod pour le compte de service**, vous pouvez soit utiliser un rôle IAM d’identité du pod EKS existant, soit en créer un à l’aide du bouton **Créer un rôle recommandé**. Ce champ ne proposera que les options correspondant à la politique de confiance appropriée. Si aucun rôle n’est sélectionnable, cela signifie qu’aucun rôle existant ne correspond à la politique de confiance. Pour configurer un rôle IAM d’identité du pod EKS pour les comptes de service du module complémentaire sélectionné, choisissez **Créer un rôle recommandé**. L’assistant de création de rôle s’ouvre dans une fenêtre séparée. L’assistant remplira automatiquement les informations relatives au rôle comme suit. Pour chaque module complémentaire pour lequel vous souhaitez créer le rôle IAM d’identité du pod EKS, suivez les étapes de l’assistant IAM comme suit.
         + À l'étape **Sélectionner une entité de confiance**, l'option de AWS service pour **EKS** et le cas d'utilisation pour **EKS - Pod Identity** sont présélectionnés, et la politique de confiance appropriée sera automatiquement renseignée pour le module complémentaire. Par exemple, le rôle sera créé avec la politique de confiance appropriée contenant le principal IAM pods.eks.amazonaws.com, comme détaillé dans [Avantages des identités du pod EKS](pod-identities.md#pod-id-benefits). Choisissez **Suivant**.
         + À l’étape **Ajouter des autorisations**, la stratégie gérée appropriée pour la stratégie de rôle est présélectionnée pour le module complémentaire. Par exemple, pour le module complémentaire Amazon VPC CNI, le rôle sera créé avec la politique gérée `AmazonEKS_CNI_Policy` telle que détaillée dans [Plug-in CNI Amazon VPC pour Kubernetes](workloads-add-ons-available-eks.md#add-ons-vpc-cni). Choisissez **Suivant**.
         + À l’étape **Nom, révision et création**, dans **Nom du rôle**, le nom de rôle par défaut est automatiquement renseigné pour le module complémentaire. **Par exemple, pour le module complémentaire **Amazon VPC CNI**, le rôle sera créé sous le nom Amazon. EKSPod IdentityAmazon VPCCNIRole** Dans **Description**, la description par défaut est automatiquement remplie avec la description appropriée pour le module complémentaire. Par exemple, pour le module complémentaire Amazon VPC CNI, le rôle sera créé avec la description **Autorise les pods exécutés dans le cluster Amazon EKS à accéder aux ressources**. AWS Dans la **stratégie de confiance**, affichez la stratégie de confiance renseignée pour le module complémentaire. Choisissez **Créer un rôle**.

           REMARQUE : Conserver le nom de rôle par défaut permet à EKS de présélectionner le rôle pour les modules complémentaires dans les nouveaux clusters ou lors de l’ajout de modules complémentaires à des clusters existants. Vous pouvez toujours remplacer ce nom et le rôle sera disponible pour le module complémentaire dans tous vos clusters, mais il devra être sélectionné manuellement dans le menu déroulant.

      1. Pour les modules complémentaires qui ne comportent pas la mention **Abonnement requis** sous **Statut** et pour lesquels vous souhaitez configurer des rôles à l’aide d’IRSA, consultez la documentation relative au module complémentaire que vous créez afin de créer une politique IAM et de l’associer à un rôle. Pour obtenir la liste des modules complémentaires, consultez [AWS modules complémentaires](workloads-add-ons-available-eks.md). Pour sélectionner un rôle IAM, vous devez disposer d’un fournisseur IAM OpenID Connect (OIDC) pour votre cluster. Pour déterminer si vous en avez un pour votre cluster ou pour en créer un, consultez [Créer un fournisseur d'identité OIDC IAM pour votre cluster](enable-iam-roles-for-service-accounts.md).

      1. Sélectionnez **Optional configuration settings** (Paramètres de configuration facultatifs).

      1. Si le module complémentaire nécessite une configuration, saisissez-la dans la zone **Configuration values** (Valeurs de configuration). Pour déterminer si le module complémentaire nécessite des informations de configuration, consultez la documentation du module complémentaire que vous créez. Pour obtenir la liste des modules complémentaires, consultez [AWS modules complémentaires](workloads-add-ons-available-eks.md).

      1. Choisissez l’une des options disponibles pour la **méthode de résolution des conflits**. Si vous sélectionnez **Remplacer** comme **méthode de résolution des conflits**, un ou plusieurs paramètres du module complémentaire existant peuvent être remplacés par les paramètres du module complémentaire Amazon EKS. Si vous n’activez pas cette option et qu’il y a un conflit avec vos paramètres existants, l’opération échoue. Vous pouvez utiliser le message d'erreur qui en résulte pour résoudre le conflit. Avant de sélectionner cette option, assurez-vous que le module complémentaire Amazon EKS ne gère pas les paramètres que vous devez gérer vous-même.

      1. Si vous souhaitez installer le module complémentaire dans un espace de noms spécifique, saisissez-le dans le champ **Espace de noms**. Pour les modules complémentaires communautaires AWS et ceux de la communauté, vous pouvez définir un espace de noms Kubernetes personnalisé dans lequel installer le module complémentaire. Pour de plus amples informations, veuillez consulter [Espace de noms personnalisé pour les modules complémentaires](eks-add-ons.md#custom-namespace).

      1. Choisissez **Suivant**.

1. Sur la page **Vérifier et ajouter**, choisissez **Créer**. Une fois l'installation des modules complémentaire terminée, vous pouvez voir les modules complémentaires installés.

1. Si l'un des modules complémentaires que vous avez installés nécessite un abonnement, procédez comme suit :

   1. Cliquez sur le bouton **Subscribe** (S'abonner) dans le coin inférieur droit du module complémentaire. Vous êtes redirigé vers la page du module complémentaire AWS sur le Marketplace. Lisez les informations relatives au module complémentaire, telles que **Product Overview** (Présentation du produit) et **Pricing Information** (Informations sur la tarification).

   1. Cliquez sur le bouton **Continue to Subscribe** (Continuer pour s'abonner) en haut à droite de la page du module complémentaire.

   1. Lisez les **Conditions générales**. Si vous les acceptez, sélectionnez **Accept Terms** (Accepter les conditions). Le traitement de l'abonnement peut prendre plusieurs minutes. Pendant le traitement de l'abonnement, le bouton **Return to Amazon EKS Console** (Retourner à la console Amazon EKS) est grisé.

   1. Une fois le traitement de l'abonnement terminé, le bouton **Return to Amazon EKS Console** (Retourner à la console Amazon EKS) n'est plus grisé. Cliquez sur le bouton pour revenir à l'onglet **Add-ons** (Modules complémentaires) de la console Amazon EKS pour votre cluster.

   1. Pour le module complémentaire auquel vous êtes abonné, sélectionnez **Remove and reinstall** (Supprimer et réinstaller), puis **Reinstall add-on** (Réinstaller le module complémentaire). L'installation du module complémentaire peut prendre plusieurs minutes. Une fois l'installation terminée, vous pouvez configurer le module complémentaire.

## Créer un module complémentaire (AWS CLI)
<a name="create_add_on_shared_aws_cli"></a>

1. Vous avez besoin d'`2.12.3`une version ou d'une version ultérieure `1.27.160` ou d'une version ultérieure de l'interface de ligne de AWS commande (AWS CLI) installée et configurée sur votre appareil ou AWS CloudShell. Pour vérifier votre version actuelle, utilisez `aws --version | cut -d / -f2 | cut -d ' ' -f1`. Les gestionnaires de packages tels que `yum` Homebrew pour macOS ont souvent plusieurs versions de retard sur la dernière version de la AWS CLI. `apt-get` Pour installer la dernière version, consultez la section [Installation](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) et [configuration rapide avec aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) dans le *Guide de l'utilisateur de l'interface de ligne de AWS commande*. La version de la AWS CLI installée AWS CloudShell peut également avoir plusieurs versions de retard par rapport à la dernière version. Pour le mettre à jour, consultez la section [Installation de la AWS CLI dans votre répertoire](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software) de base dans le *guide de AWS CloudShell l'utilisateur*.

1. Déterminez quels modules complémentaires sont disponibles. Vous pouvez voir tous les modules complémentaires disponibles, leur type et leur éditeur. Vous pouvez également consulter l'URL des modules complémentaires disponibles AWS sur le Marketplace. Remplacez *1.35* par la version de votre cluster.

   ```
   aws eks describe-addon-versions --kubernetes-version 1.35 \
       --query 'addons[].{MarketplaceProductUrl: marketplaceInformation.productUrl, Name: addonName, Owner: owner Publisher: publisher, Type: type}' --output table
   ```

   L'exemple qui suit illustre un résultat.

   ```
   ---------------------------------------------------------------------------------------------------------------------------------------------------------
   |                                                                 DescribeAddonVersions                                                                 |
   +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+
   |                     MarketplaceProductUrl                     |             Name              |      Owner       |  Publisher   |        Type         |
   +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+
   |  None                                                         |  aws-ebs-csi-driver           |  aws             |  eks         |  storage            |
   |  None                                                         |  coredns                      |  aws             |  eks         |  networking         |
   |  None                                                         |  kube-proxy                   |  aws             |  eks         |  networking         |
   |  None                                                         |  vpc-cni                      |  aws             |  eks         |  networking         |
   |  None                                                         |  adot                         |  aws             |  eks         |  observability      |
   | https://aws.amazon.com/marketplace/pp/prodview-brb73nceicv7u |  dynatrace_dynatrace-operator |  aws-marketplace |  dynatrace   |  monitoring         |
   | https://aws.amazon.com/marketplace/pp/prodview-uhc2iwi5xysoc |  upbound_universal-crossplane |  aws-marketplace |  upbound     |  infra-management   |
   | https://aws.amazon.com/marketplace/pp/prodview-hd2ydsrgqy4li |  teleport_teleport            |  aws-marketplace |  teleport    |  policy-management  |
   | https://aws.amazon.com/marketplace/pp/prodview-vgghgqdsplhvc |  factorhouse_kpow             |  aws-marketplace |  factorhouse |  monitoring         |
   |  [...]                                                        |  [...]                        |  [...]           |  [...]       |  [...]              |
   +---------------------------------------------------------------+-------------------------------+------------------+--------------+---------------------+
   ```

   Votre sortie peut être différente. Dans cet exemple de sortie, trois modules complémentaires différents sont disponibles par type `networking` et cinq modules complémentaires avec un éditeur de type `eks`. Les modules complémentaires `aws-marketplace` figurant dans la colonne `Owner` peuvent nécessiter un abonnement avant de pouvoir être installés. Vous pouvez consulter l'URL pour en savoir plus sur le module complémentaire et vous y abonner.

1. Vous pouvez voir quelles versions sont disponibles pour chaque module complémentaire. Remplacez *1.35* par la version de votre cluster et remplacez *vpc-cni* par le nom d'un module complémentaire renvoyé à l'étape précédente.

   ```
   aws eks describe-addon-versions --kubernetes-version 1.35 --addon-name vpc-cni \
       --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output table
   ```

   L'exemple qui suit illustre un résultat.

   ```
   ------------------------------------------
   |          DescribeAddonVersions         |
   +-----------------+----------------------+
   | Defaultversion  |       Version        |
   +-----------------+----------------------+
   |  False          |  v1.12.0-eksbuild.1  |
   |  True           |  v1.11.4-eksbuild.1  |
   |  False          |  v1.10.4-eksbuild.1  |
   |  False          |  v1.9.3-eksbuild.1   |
   +-----------------+----------------------+
   ```

   La version avec `True` dans la colonne `Defaultversion` correspond à la version avec laquelle le module complémentaire est créé, par défaut.

1. (Facultatif) Recherchez les options de configuration du module complémentaire de votre choix en exécutant la commande suivante :

   ```
   aws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.12.0-eksbuild.1
   ```

   ```
   {
       "addonName": "vpc-cni",
       "addonVersion": "v1.12.0-eksbuild.1",
       "configurationSchema": "{\"$ref\":\"#/definitions/VpcCni\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"definitions\":{\"Cri\":{\"additionalProperties\":false,\"properties\":{\"hostPath\":{\"$ref\":\"#/definitions/HostPath\"}},\"title\":\"Cri\",\"type\":\"object\"},\"Env\":{\"additionalProperties\":false,\"properties\":{\"ADDITIONAL_ENI_TAGS\":{\"type\":\"string\"},\"AWS_VPC_CNI_NODE_PORT_SUPPORT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_ENI_MTU\":{\"format\":\"integer\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CONFIGURE_RPFILTER\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOGLEVEL\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_RANDOMIZESNAT\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_VETHPREFIX\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_LEVEL\":{\"type\":\"string\"},\"DISABLE_INTROSPECTION\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_METRICS\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_NETWORK_RESOURCE_PROVISIONING\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_POD_ENI\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_PREFIX_DELEGATION\":{\"format\":\"boolean\",\"type\":\"string\"},\"WARM_ENI_TARGET\":{\"format\":\"integer\",\"type\":\"string\"},\"WARM_PREFIX_TARGET\":{\"format\":\"integer\",\"type\":\"string\"}},\"title\":\"Env\",\"type\":\"object\"},\"HostPath\":{\"additionalProperties\":false,\"properties\":{\"path\":{\"type\":\"string\"}},\"title\":\"HostPath\",\"type\":\"object\"},\"Limits\":{\"additionalProperties\":false,\"properties\":{\"cpu\":{\"type\":\"string\"},\"memory\":{\"type\":\"string\"}},\"title\":\"Limits\",\"type\":\"object\"},\"Resources\":{\"additionalProperties\":false,\"properties\":{\"limits\":{\"$ref\":\"#/definitions/Limits\"},\"requests\":{\"$ref\":\"#/definitions/Limits\"}},\"title\":\"Resources\",\"type\":\"object\"},\"VpcCni\":{\"additionalProperties\":false,\"properties\":{\"cri\":{\"$ref\":\"#/definitions/Cri\"},\"env\":{\"$ref\":\"#/definitions/Env\"},\"resources\":{\"$ref\":\"#/definitions/Resources\"}},\"title\":\"VpcCni\",\"type\":\"object\"}}}"
   }
   ```

   La sortie correspond à un schéma JSON standard.

   Voici un exemple de valeurs de configuration valides, au format JSON, fonctionnant avec le schéma ci-dessus.

   ```
   {
     "resources": {
       "limits": {
         "cpu": "100m"
       }
     }
   }
   ```

   Voici un exemple de valeurs de configuration valides, au format YAML, fonctionnant avec le schéma ci-dessus.

   ```
     resources:
       limits:
         cpu: 100m
   ```

1. Déterminez si le module complémentaire nécessite des autorisations IAM. Si tel est le cas, vous devez (1) déterminer si vous souhaitez utiliser les identités de pod EKS ou les rôles IAM pour les comptes de service (IRSA), (2) déterminer l’ARN du rôle IAM à utiliser avec le module complémentaire et (3) déterminer le nom du compte de service Kubernetes utilisé par le module complémentaire. Pour de plus amples informations, veuillez consulter [Récupérer les informations IAM sur un module complémentaire Amazon EKS](retreive-iam-info.md).
   + Amazon EKS recommande d’utiliser les identités de pod EKS si le module complémentaire le prend en charge. Pour cela, l’[agent d’identité du pod doit être installé sur votre cluster](pod-identities.md). Pour plus d’informations sur l’utilisation des identités de pod avec les modules complémentaires, consultez [Rôles IAM pour les modules complémentaires Amazon EKS](add-ons-iam.md).
   + Si le module complémentaire ou votre cluster n’est pas configuré pour les identités de pod EKS, utilisez IRSA. [Vérifiez que l’IRSA est configuré sur votre cluster.](iam-roles-for-service-accounts.md) 
   +  [Consultez la documentation relative aux modules complémentaires Amazon EKS afin de déterminer si le module complémentaire nécessite des autorisations IAM et le nom du compte de service Kubernetes associé.](eks-add-ons.md) 

     1. Créez un module complémentaire Amazon EKS. Copiez la commande qui suit sur votre appareil. Si nécessaire, apportez les modifications suivantes à la commande, puis exécutez la commande modifiée :
   + Remplacez *my-cluster* par le nom de votre cluster.
   + Remplacez *vpc-cni* par un nom de module complémentaire renvoyé dans le résultat de l'étape précédente que vous souhaitez créer.
   + Remplacez *version-number* par la version renvoyée dans le résultat de l'étape précédente que vous souhaitez utiliser.
   + Si vous souhaitez installer le module complémentaire dans un espace de noms Kubernetes personnalisé, ajoutez l’option `--namespace-config 'namespace=<my-namespace>`. Cette option n'est disponible que pour AWS les modules complémentaires communautaires. Pour de plus amples informations, consultez [Espace de noms personnalisé pour les modules complémentaires](eks-add-ons.md#custom-namespace). 
   + Si le module complémentaire ne nécessite pas d'autorisations IAM, *<service-account-configuration>* supprimez-le.
   + Effectuez l’une des actions suivantes :
     + Si le module complémentaire (1) nécessite des autorisations IAM et (2) votre cluster utilise EKS Pod Identities, remplacez-le par *<service-account-configuration>* l'association d'identité de pod suivante. *<service-account-name>*Remplacez-le par le nom du compte de service utilisé par le module complémentaire. Remplacez *<role-arn>* par l'ARN d'un rôle IAM. Le rôle doit disposer de la politique de confiance requise par les identités EKS Pod.

       ```
       --pod-identity-associations 'serviceAccount=<service-account-name>,roleArn=<role-arn>'
       ```
     + Si le module complémentaire (1) nécessite des autorisations IAM et (2) votre cluster utilise IRSA, remplacez-le *<service-account-configuration>* par la configuration IRSA suivante. *111122223333*Remplacez-le par votre identifiant de compte et *role-name* par le nom d'un rôle IAM existant que vous avez créé. Pour obtenir des instructions sur la création d’un rôle, consultez la documentation du module complémentaire que vous créez. Pour obtenir la liste des modules complémentaires, consultez [AWS modules complémentaires](workloads-add-ons-available-eks.md). Pour spécifier un rôle de compte de service, vous devez disposer d’un fournisseur IAM OpenID Connect (OIDC) pour votre cluster. Pour déterminer si vous en avez un pour votre cluster ou pour en créer un, consultez [Créer un fournisseur d'identité OIDC IAM pour votre cluster](enable-iam-roles-for-service-accounts.md).

       ```
       --service-account-role-arn arn:aws::iam::111122223333:role/role-name
       ```
   + Cet exemple de commande remplace l'option `--configuration-values` de toute version autogérée existante du module complémentaire, le cas échéant. Remplacez cela par les valeurs de configuration souhaitées, telles qu'une chaîne ou une entrée de fichier. Si vous ne voulez pas fournir de valeurs de configuration, supprimez l’option `--configuration-values`. Si vous ne souhaitez pas que la AWS CLI remplace la configuration d'un module complémentaire autogéré existant, supprimez l'*--resolve-conflicts OVERWRITE*option. Si vous supprimez cette option et que le module complémentaire doit remplacer la configuration d'un module complémentaire autogéré existant, la création du module complémentaire Amazon EKS échoue et vous recevez un message d'erreur pour vous aider à résoudre le conflit. Avant de spécifier cette option, assurez-vous que le module complémentaire Amazon EKS ne gère pas les paramètres que vous devez gérer, car ces paramètres sont remplacés par cette option.

     ```
     aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \
          <service-account-configuration> --configuration-values '{"resources":{"limits":{"cpu":"100m"}}}' --resolve-conflicts OVERWRITE
     ```

     ```
     aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version version-number \
         <service-account-configuration> --configuration-values 'file://example.yaml' --resolve-conflicts OVERWRITE
     ```

     Pour la liste complète des options disponibles, consultez ` [create-addon](https://docs.aws.amazon.com/cli/latest/reference/eks/create-addon.html) ` dans la référence des lignes de commande Amazon EKS. Si le module complémentaire que vous avez créé possède `aws-marketplace` listé dans la colonne `Owner` d’une étape précédente, la création peut échouer et vous pouvez recevoir un message d’erreur similaire à l’erreur suivante.

     ```
     {
         "addon": {
             "addonName": "addon-name",
             "clusterName": "my-cluster",
             "status": "CREATE_FAILED",
             "addonVersion": "version",
             "health": {
                 "issues": [
                     {
                         "code": "AddonSubscriptionNeeded",
                         "message": "You are currently not subscribed to this add-on. To subscribe, visit the AWS Marketplace console, agree to the seller EULA, select the pricing type if required, then re-install the add-on"
                     }
                 ]
             }
         }
     }
     ```

     Si vous recevez une erreur similaire à celle de la sortie précédente, consultez l'URL figurant dans la sortie d'une étape précédente pour vous abonner au module complémentaire. Une fois abonné, exécutez à nouveau la commande `create-addon`.