Solução de cadastro de parceiros com integração ViaCep e Google GeoCode, projeto baseado no desafio do Zé Delivery.
- Golang
- gRPC
- GraphQL
- Microsoft Azure
- Azure Cosmos DB
- Azure Container Registry
- Azure Kubernetes Service
- Github Actions
- Docker
- Terraform
- Criar um parceiro
- Parceiros
- Parceiros por ID
- Parceiros por localização (distância por kilômetro)
- Executar o seguinte comando.
docker-compose up -d --build
- Iniciando o terraform. na pasta terraform executar:
terraform init
- Aplicar a formatação
terraform fmt
- Validação do que foi criado
terraform validate
- Aplicar o plano (planejamento dos recursos que serão criados)
terraform plan
- Executar a criação da infra
terraform apply -auto-approve
- Executar a remoção da infra
terraform destroy -auto-approve
- Autenticação no azure (Precisamos instalar o (Azure CLI)
az login
- Obtendo credenciais do cluster AKS
az aks get-credentials --resource-group $RESOURCE_GROUP --name $NAME
- Build da imagem docker
docker image build -t partnersregistry.azurecr.io/address:latest -f address/Dockerfile . docker image build -t partnersregistry.azurecr.io/partner:latest -f partner/Dockerfile .
- Autenticação no ACR
docker login partnersregistry.azurecr.io -u $USERNAME -p $PASSWORD
- Upload da imagem no ACR
docker image push partnersregistry.azurecr.io/address:latest docker image push partnersregistry.azurecr.io/partner:latest
-
Aplicar os manifestos do k8s
kubectl apply -f .\.k8s\namespaces\ -R kubectl apply -f .\.k8s\deployments\ -R -n partner kubectl apply -f .\.k8s\services\ -R -n partner kubectl apply -f .\.k8s\ingress\ -R -n partner
-
Ingress Controller Acessar o site nginx
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.0.0/deploy/static/provider/cloud/deploy.yaml
Verificar o service nginx
kubectl get services -n ingress-nginx
Aplicar o ingress
kubectl apply -f .\.k8s\ingress\ -R -n partner
Verificar o ingress
kubectl get ingress
Verificando cert manager
kubectl get clusterissuer -n partner kubectl get certificate -n partner kubectl describe certificate -n partner
-
Utilizando url Microsoft Azure (Ingress-tls)
$IP="MY_EXTERNAL_IP" $DNSNAME="demo-aks-ingress" $PUBLICIPID=$(az network public-ip list --query '[?ipAddress!=null]|[?contains(ipAddress, '$IP')].[id]" --output tsv) az network public-ip update --ids $PUBLICIPID --dns-name $DNSNAME az network public-ip show --ids $PUBLICIPID --query "[dnsSettings.fqdn]" --output tsv
-
Verificar o quanto de memória o pod está utilizando
kubectl top pods
-
gRPC
protoc --go_out=address/pb --go_opt=paths=source_relative --go-grpc_out=address/pb --go-grpc_opt=paths=source_relative --proto_path=address/protofiles address/protofiles/*.proto
-
GraphQL
go get github.com/99designs/gqlgen
go run github.com/99designs/gqlgen init
go run github.com/99designs/gqlgen generate