Como publicar uma branch do git, no gitlab usando o gitlab, Ingress e criando um apontamento DNS para um domino?
No artigo anterior apresentei o passo a passo que utilize para montar um pipeline completo no gitlab, criar uma instancia de um container da imagem do meu aplicativo e colocar essa instancia em um cluster kubernetes usando google cloud. Para tornar acessivel o aplicativo, utilizamos um wildcard dns para responder para um IP através de um domínio não existente.Link para o artigo: https://www.rcelebrone.com/2019/01/ci-cd-gitlab-google-cloud-kubernetes.html
Mas e se eu desejar publicar automaticamente em um domínio existente?
É perfeitamente simples e possível.No artigo anterior, dentro do gitlab. Entre no projeto, em configurações, CI/CD e abra as configurações do recurso Auto DevOps. No campo domínio, no artigo anterior, utilizamos um serviço de wildcard DNS (o xip.io), para apontar para o IP do Ingress. É nesse campo domínio que temos que informar o domínio oficial por onde queremos servir nosso aplicativo.
* No gitlab, o IP do Ingress (caso tenha seguido o artigo anterior), está disponível dentro do projeto em Operações > Kubernetes > (clique no nome do cluster na lista) > O ip estará visível em aplicações > Ingress.
IP em mãos e domínio configurado no gitlab e agora?
Aqui tem uma observação. Existem diversas ferramentas de registro de domínio. No meu caso, trabalho com o uolhosts e diretamente no painel do uolhosts eu consigo fazer o apontamento que preciso. Para isso, basta criar no domínio um apontamento A Name para o endereço gerado pelo gitlab e o IP do Ingress.
Vale lembrar que por padrão (quando não definimos um arquivo gitlab-ci.yml), o gitlab utiliza uma junção do nome do seu grupo no gitlab com o nome do seu projeto. Então, por exemplo, se nossas informações são as seguintes:
- Grupo do gitlab: universo
- Nome do projeto: admin-jupiter
- Ip do Ingress: 35.234.567.67
- Domínio: nasa.com
Teremos o seguinte:
No serviço de configuração do domínio:
Crie um registro "A NAME" > com IP: 35.234.567.67 e endereço: universo-admin-juniper.nasa.com
No campo domínio do Ingress no gitlab:
Informe o domínio: nasa.com
* Para utilizar um endereço customizado, basta utilizar nas variáveis de ambiente: Dentro do projeto > Configurações > CI/CD > variáveis de ambiente. Então basta utilizar a variável: CI_PROJECT_PATH_SLUG e o nome do subdomínio. Ou seja, para o endereço xpto.exemplo.com, o valor dessa variável será xpto.