Melhor estratégia de CD para implantações do Kubernetes
Nossa fase atual de implantação de IC funciona assim:
Construa os contêineres.Marque as imagens como"latest"
e< commit hash >
.Envie imagens para o repositório.Invoque a atualização contínua nos RCs apropriados.Isso tem funcionado muito bem em implantações baseadas em RC, mas agora que oDeployment
Se o objeto estiver se tornando mais estável e um recurso subjacente, queremos aproveitar essa abstração em nossos esquemas de implantação e fases de desenvolvimento atuais.
Estou com problemas para encontrar uma maneira sensata de automatizar a atualização de umDeployment
com o fluxo de trabalho do IC. O que eu tenho experimentado é dividir os repositórios Git e fazer algo como:
"latest"
e< commit hash >
.[App Build] Empurre as imagens para o repositório.[Compilação do aplicativo] Invoque a compilação do aplicativoDeployment
repo, passando pelo hash de confirmação atual.[Deployment Build] Interpole tokens de arquivo de manifesto (atualmente, apenas o hash de confirmação passado, por exemplo,image: app-%%COMMIT_HASH%%
)[Deployment Build] Aplique o manifesto atualizado ao apropriadoDeployment
Recursos).Certamente, embora haja uma maneira melhor de lidar com isso. Seria ótimo se oDeployment
monitorado para alterações de hash da tag "mais recente" da imagem ... talvez já exista? Eu não tive sucesso com isso. Quaisquer pensamentos ou idéias sobre como lidar melhor com a implantação deDeployment
seria apreciado :)