PIPELINE CI/CD etapas:
- criar cluster na nuvem (no caso é a Digitalocean):
- criar arquivo terraform main.tf e o terraform.tfvars com especificações do cluster a ser gerado.
- na pasta com os arquivos de iac de terraform:
$ terraform init
$ terraform apply
- para interagir com o cluster:
- copiar configurações de acesso kube_config.yaml para configurações do cluster local:
$ cp ./kube_config.yaml ~/.kube/config
- fazer no Github Actions o main.yaml do workflows a parte de CI
- no Github Settings criar Secrets:
- DOCKERHUB_USER com seu usuário do dockerhub
- DOCKERHUB_PWD com a respectiva senha
5) *lembrar de criar .gitignore pra só subir main.tf no Github para não expor informações sensíveis como token da nuvem, presente nos arquivos gerados *.tfstate e *.tfvars e o kube_config.yaml !!!
- complementar o workflows a parte de CD e:
- criar Secrets: K8S_CONFIG e dentro dele colar todo o conteudo do kubec_config.yaml
- na pasta kube-news instalar pelo helm, o Prometheus do artifacthub:
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
$ helm repo update
$ helm upgrade --install prometheus prometheus-community/prometheus --set alertmanager.enabled=false,server.persistenVolume.enabled=false,server.service.type=LoadBalancer,server.global.scrape_interval=10s
- inserir annotations no k8s deployment.yaml:
- aplicar mudançças no deployment.yaml :
$ kubectl apply -f deployment.yaml
- obs.: caso queira acessar, abra pagina da internet e escreva "localhost:IP", substitua "IP" pelo EXTERNAL-IP do prometheus-server mostrado pelo comando:
$ kubectl get svc