Eu tenho um cluster Rancher 2.5 em execução no AWS EKS. Meu CI é feito no CodeBuild por meio de um webhook para um repositório do Github. O buildspec.yml funciona bem para executar a compilação, marcar os contêineres e enviá-los para meu registro privado no AWS ECR, mas não encontrei uma maneira fácil de acionar uma atualização para a implantação no cluster para informar um nova versão do contêiner está disponível. Como faço isso?
Para fazer isso, você precisa obter o arquivo kubeconfig do Rancher e colocá-lo em algum lugar no repositório do github que é clonado pelo CodeBuild. Em seguida, você modifica o arquivo buildspec.yml para adicionar um comando ou comandos depois que a compilação for concluída com êxito, as imagens tiverem sido marcadas e enviadas por push para o registro, para implantar o(s) contêiner(es) no cluster. Na maioria das vezes, isso significa que isso acontecerá no final da seção post_build do arquivo buildspec.yml. Algo assim:
Isso acionará a alteração, mas lembre-se de que a nova tag deve ser diferente da tag que a implantação está executando no momento . Caso contrário, nada acontecerá porque o K8S acha que nenhuma implantação é necessária se a tag for a mesma. É por isso que usar
:latest
em suas tags não funcionará com isso e é uma má ideia em primeiro lugar.