Referência da ação de implantação EKS do Amazon Elastic Container Service
Você pode usar a ação EKSDeploy para implantar um serviço do Amazon EKS. A implantação exige um arquivo de manifesto do Kubernetes usado pelo CodePipeline para implantar a imagem.
Antes de criar o pipeline, você também já deve ter criado os recursos do Amazon EKS e armazenado a imagem no repositório de imagens. Você também pode fornecer as informações do VPC para o cluster.
Importante
Essa ação usa a computação do CodeBuild gerenciada pelo CodePipeline para executar comandos em um ambiente de compilação. A execução da ação Comandos incorrerá em cobranças separadas no AWS CodeBuild.
nota
A ação de implantação EKS só está disponível para pipelines do tipo V2.
A ação do EKS dá suporte a clusters do EKS públicos e privados. Os clusters privados são do tipo recomendado pelo EKS. No entanto, ambos os tipos são compatíveis.
A ação do EKS é compatível com ações entre contas. Para adicionar uma ação do EKS entre contas, adicione actionRoleArn da conta de destino na declaração de ação.
Tópicos
Tipo de ação
-
Categoria:
Deploy -
Proprietário:
AWS -
Fornecedor:
EKS -
Versão:
1
Parâmetros de configuração
- ClusterName
-
Obrigatório: Sim
O cluster do Amazon EKS no Amazon EKS.
- Opções no Helm
-
Estas serão as opções disponíveis quando o Helm for a ferramenta de implantação selecionada.
- HelmReleaseName
-
Obrigatório: sim (obrigatório apenas para o tipo Helm)
O nome da versão da implantação.
- HelmChartLocation
-
Obrigatório: sim (obrigatório apenas para o tipo Helm)
A localização do gráfico da implantação.
- HelmValuesFiles
-
Obrigatório: não (opcional apenas para o tipo Helm)
Para substituir os arquivos de valores do Helm, insira os arquivos de valores do Helm separados por vírgula no local do chart do Helm.
- Opções em Kubectl
-
Estas serão as opções disponíveis quando o Kubectl for a ferramenta de implantação selecionada.
- ManifestFiles
-
Obrigatório: sim (obrigatório apenas para o tipo Kubectl)
O nome do arquivo de manifesto, o arquivo de texto que descreve o nome de contêiner, a imagem e a tag do serviço. Você usa esse arquivo para parametrizar o URI da imagem e outras informações. Você pode usar uma variável de ambiente com essa finalidade.
Você armazena esse arquivo no repositório de origem do pipeline.
- Namespace
-
Obrigatório: Não
O namespace kubernetes a ser usado em comandos
kubectlouhelm. - Sub-redes
-
Obrigatório: Não
As sub-redes da VPC do cluster. Elas fazem parte da mesma VPC conectada ao cluster. Você também pode fornecer sub-redes ainda não conectadas ao cluster e especificá-las aqui.
- SecurityGroupIds
-
Obrigatório: Não
Os grupos de segurança da VPC do cluster. Elas fazem parte da mesma VPC conectada ao cluster. Você também pode fornecer grupos de segurança ainda não conectados ao cluster e especificá-los aqui.
Input artifacts (Artefatos de entrada)
-
Número de artefatos:
1 -
Descrição: a ação procura o arquivo de manifesto do Kubernetes ou o chart do Helm no repositório de arquivos de origem do pipeline. Se quiser usar charts do Helm em formato .tgz armazenados em um bucket do S3, você poderá fazer isso configurando o bucket/chave do S3 como a ação de origem. Por exemplo, a chave do objeto fornecida seria
my-chart-0.1.0.tgz.
Artefatos de saída
-
Número de artefatos:
0 -
Descrição: os artefatos de saída não se aplicam a esse tipo de ação.
Variáveis de ambiente
Usado para substituir variáveis como repositórios de imagens ou tags de imagem em arquivos de manifesto ou arquivos de valores do chart do Helm.
- Chave
-
A chave em um par de variáveis do ambiente chave-valor, como
$IMAGE_TAG. - Valor
-
O valor do par chave-valor, como
v1.0. O valor pode ser parametrizado com variáveis de saída a partir de ações ou variáveis do pipeline. Por exemplo, o pipeline pode ter uma ação ECRBuildAndPublish que cria uma imagem do ECR com${codepipeline.PipelineExecutionId}, e a ação do EKS pode utilizar essa imagem usando${codepipeline.PipelineExecutionId}como o valor da variável de ambiente.
Variáveis de saída
- EKSClusterName
-
O cluster do Amazon EKS no Amazon EKS.
Permissões de política de perfil de serviço
Para executar essa ação, as permissões a seguir devem estar disponíveis na política do perfil de serviço do pipeline.
-
Ações do EC2: quando o CodePipeline executa a ação, as permissões da instância do EC2 são necessárias. Não se trata da mesma função da instância do EC2 necessária quando você cria o cluster do EKS.
Se estiver usando um perfil de serviço existente, para usar essa ação, você precisará adicionar as permissões a seguir para o perfil de serviço.
-
ec2:CreateNetworkInterface
-
ec2:DescribeDhcpOptions
-
ec2:DescribeNetworkInterfaces
-
ec2:DeleteNetworkInterface
-
ec2:DescribeSubnets
-
ec2:DescribeSecurityGroups
-
ec2:DescribeVpcs
-
-
Ações do EKS: quando o CodePipeline executa a ação, as permissões do cluster do EKS são necessárias. Não se trata da mesma função do cluster do EKS do IAM necessária quando você cria o cluster do EKS.
Se estiver usando um perfil de serviço existente, para usar essa ação, você precisará adicionar a permissão a seguir para o perfil de serviço.
-
eks:DescribeCluster
-
-
Ações do fluxo de logs: quando o CodePipeline executa a ação, o CodePipeline cria um grupo de logs usando o nome do pipeline conforme mostrado a seguir. Isso permite reduzir as permissões para os recursos de log usando o nome do pipeline.
/aws/codepipeline/MyPipelineNameSe estiver usando um perfil de serviço existente, para usar essa ação, você precisará adicionar as permissões a seguir para o perfil de serviço.
-
logs:CreateLogGroup
-
logs:CreateLogStream
-
logs:PutLogEvents
-
Na declaração da política do perfil de serviço, reduza o escopo das permissões até o nível de recurso conforme mostrado no exemplo a seguir.
Para visualizar logs no console usando a página de diálogo de detalhes da ação, a permissão para visualizar logs deve ser adicionada ao perfil do console. Para ter mais informações, consulte o exemplo de política de permissões do console em Permissões necessárias para visualizar logs de computação no console do CodePipeline.
Adição do perfil de serviço como uma entrada de acesso para o cluster
Depois que as permissões estiverem disponíveis na política do perfil de serviço do pipeline, você vai configurar as permissões do cluster adicionando o perfil de serviço do CodePipeline como uma entrada de acesso para o cluster.
Você também pode usar uma função de ação que tenha as permissões atualizadas. Para obter mais informações, consulte o exemplo do tutorial em Etapa 4: Criar uma entrada de acesso para o perfil de serviço do CodePipeline.
Declaração de ação
Consulte também
Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.
-
Consulte Tutorial: Implantar no Amazon EKS com o CodePipeline para um tutorial que demonstre como criar um cluster do EKS e um arquivo de manifesto do Kubernetes para adicionar a ação ao pipeline.