View a markdown version of this page

Référence des actions de déploiement d'Amazon Elastic Kubernetes Service EKS - AWS CodePipeline

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.

Référence des actions de déploiement d'Amazon Elastic Kubernetes Service EKS

Vous pouvez utiliser cette EKSDeploy action pour déployer un service Amazon EKS. Le déploiement nécessite un fichier manifeste Kubernetes CodePipeline utilisé pour déployer l'image.

Avant de créer votre pipeline, vous devez déjà avoir créé les ressources Amazon EKS et avoir stocké l'image dans votre référentiel d'images. Vous pouvez éventuellement fournir des informations VPC pour votre cluster.

Important

Cette action utilise le CodeBuild calcul CodePipeline géré pour exécuter des commandes dans un environnement de génération. L'exécution de l'action des commandes entraînera des frais distincts dans AWS CodeBuild.

Note

L'action de EKS déploiement n'est disponible que pour les pipelines de type V2.

L'action EKS soutient les clusters EKS publics et privés. Les clusters privés sont le type recommandé par EKS ; toutefois, les deux types sont pris en charge.

L'action EKS est prise en charge pour les actions entre comptes. Pour ajouter une action EKS intercomptes, ajoutez-la actionRoleArn depuis votre compte cible dans la déclaration d'action.

Type d'action

  • Catégorie : Deploy

  • Propriétaire : AWS

  • Fournisseur : EKS

  • Version : 1

Paramètres de configuration

ClusterName

Obligatoire : oui

Le cluster Amazon EKS dans Amazon EKS.

Options sous contrôle

Les options disponibles sont les suivantes lorsque Helm est l'outil de déploiement sélectionné.

HelmReleaseName

Obligatoire : Oui (obligatoire uniquement pour le type de casque)

Le nom de version de votre déploiement.

HelmChartLocation

Obligatoire : Oui (obligatoire uniquement pour le type de casque)

Emplacement de votre déploiement sur la carte.

HelmValuesFiles

Obligatoire : Non (facultatif uniquement pour le type de casque)

Pour remplacer les fichiers de valeurs Helm, entrez les fichiers de valeurs Helm séparés par des virgules à l'emplacement du graphique Helm.

Options sous Kubectl

Les options disponibles sont les suivantes lorsque Kubectl est l'outil de déploiement sélectionné.

ManifestFiles

Obligatoire : Oui (obligatoire uniquement pour le type Kubectl)

Le nom de votre fichier manifeste, le fichier texte qui décrit le nom du conteneur de votre service, ainsi que l'image et la balise. Ce fichier vous permet de paramétrer l'URI de votre image et d'autres informations. Vous pouvez utiliser une variable d'environnement à cette fin.

Vous stockez ce fichier dans le référentiel source de votre pipeline.

Namespace

Obligatoire : non

L'espace de noms Kubernetes à utiliser dans nos commandes. kubectl helm

Subnets

Obligatoire : non

Les sous-réseaux du VPC de votre cluster. Ils font partie du même VPC qui est attaché à votre cluster. Vous pouvez également fournir des sous-réseaux qui ne sont pas encore rattachés à votre cluster et les spécifier ici.

SecurityGroupIds

Obligatoire : non

Les groupes de sécurité du VPC de votre cluster. Ils font partie du même VPC qui est attaché à votre cluster. Vous pouvez également fournir des groupes de sécurité qui ne sont pas encore attachés à votre cluster et les spécifier ici.

Artefacts d'entrée

  • Nombre d'objets : 1

  • Description : L'action recherche le fichier manifeste Kubernetes ou le graphique Helm dans le référentiel de fichiers source du pipeline. Si vous souhaitez utiliser des graphiques Helm au format .tgz stockés dans un compartiment S3, vous pouvez le faire en configurant le S3 Bucket/Key comme action source. Par exemple, la clé d'objet fournie seraitmy-chart-0.1.0.tgz.

Artefacts de sortie

  • Nombre d'objets : 0

  • Description : Les artefacts de sortie ne s'appliquent pas à ce type d'action.

Variables d’environnement

Utilisé pour remplacer des variables telles que des référentiels d'images ou des balises d'image dans des fichiers manifestes ou des fichiers de valeurs de graphiques Helm.

Clé

La clé d'une paire de variables d'environnement clé-valeur, telle que. $IMAGE_TAG

Value

La valeur de la paire clé-valeur, telle que. v1.0 La valeur peut être paramétrée à l'aide de variables de sortie issues d'actions de pipeline ou de variables de pipeline. Par exemple, le pipeline peut avoir une ECRBuildAndPublish action qui crée une image ECR avec${codepipeline.PipelineExecutionId}, et l'action EKS peut utiliser cette image en utilisant ${codepipeline.PipelineExecutionId} comme valeur de variable d'environnement.

Variables de sortie

EKSClusterName

Le cluster Amazon EKS dans Amazon EKS.

Autorisations relatives aux politiques de rôle de service

Pour exécuter cette action, les autorisations suivantes doivent être disponibles dans la politique de rôle de service de votre pipeline.

  • Actions EC2 : lors de l' CodePipeline exécution de l'action, des autorisations d'instance EC2 sont requises. Notez que ce n'est pas la même chose que le rôle d'instance EC2 requis lorsque vous créez votre cluster EKS.

    Si vous utilisez un rôle de service existant, pour utiliser cette action, vous devez ajouter les autorisations suivantes pour ce rôle de service.

    • EC2 : CreateNetworkInterface

    • EC2 : DescribeDhcpOptions

    • EC2 : DescribeNetworkInterfaces

    • EC2 : DeleteNetworkInterface

    • EC2 : DescribeSubnets

    • EC2 : DescribeSecurityGroups

    • EC2 : DescribeVpcs

  • Actions EKS : lors de l' CodePipeline exécution de l'action, les autorisations du cluster EKS sont requises. Notez que ce n'est pas la même chose que le rôle de cluster IAM EKS requis lors de la création de votre cluster EKS.

    Si vous utilisez un rôle de service existant, pour utiliser cette action, vous devez ajouter l'autorisation suivante pour ce rôle de service.

    • 4 semaines : DescribeCluster

  • Actions du flux de journalisation : lors de l' CodePipeline exécution de l'action, CodePipeline crée un groupe de journaux en utilisant le nom du pipeline comme suit. Cela vous permet de limiter les autorisations d'enregistrement des ressources à l'aide du nom du pipeline.

    /aws/codepipeline/MyPipelineName

    Si vous utilisez un rôle de service existant, pour utiliser cette action, vous devez ajouter les autorisations suivantes pour ce rôle de service.

    • journaux : CreateLogGroup

    • journaux : CreateLogStream

    • journaux : PutLogEvents

Dans la déclaration de politique relative aux rôles de service, réduisez les autorisations au niveau des ressources, comme indiqué dans l'exemple suivant.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:*:111122223333:cluster/YOUR_CLUSTER_NAME" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DescribeRouteTables" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:111122223333:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME", "arn:aws:logs:*:111122223333:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*" ] } ] }

Pour afficher les journaux dans la console à l'aide de la page de dialogue des détails des actions, l'autorisation d'affichage des journaux doit être ajoutée au rôle de console. Pour plus d'informations, consultez l'exemple de politique d'autorisations de console dansAutorisations requises pour afficher les journaux de calcul dans la console.

Ajouter le rôle de service en tant qu'entrée d'accès pour votre cluster

Une fois les autorisations disponibles dans la politique de rôle de service de votre pipeline, vous configurez les autorisations de votre cluster en ajoutant le rôle de CodePipeline service en tant qu'entrée d'accès pour votre cluster.

Vous pouvez également utiliser un rôle d'action doté des autorisations mises à jour. Pour plus d'informations, consultez l'exemple du didacticiel dansÉtape 4 : Création d'une entrée d'accès pour le rôle CodePipeline de service.

Déclaration d'action

YAML
Name: DeployEKS ActionTypeId: Category: Deploy Owner: AWS Provider: EKS Version: '1' RunOrder: 2 Configuration: ClusterName: my-eks-cluster ManifestFiles: ManifestFile.json OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact
JSON
{ "Name": "DeployECS", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "EKS", "Version": "1" }, "RunOrder": 2, "Configuration": { "ClusterName": "my-eks-cluster", "ManifestFiles": "ManifestFile.json" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ] },

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.