Setup TOTVS Gateway local clsuter
Requisitos
Overview
Linux
No linux vamos replicar o uso comum em clouds de load balancer, MetalLB vai fazer esse papel distribuindo os IPs para os pods do cluster. E haverá um gateway para expor acesso via esse LB.

Windows
No windows, como o WSL não provê os IPs de pods para o windows, precisamos conectar no cluster via NodePort. Replicando a porta de entrada do nó via NAT e acessando via portfowarding.

Instalação
Primeiro clone o repositório totvs-gateway-infra-local. Depois siga os passos de acordo com seu SO.
Windows
- Crie o cluster Kind baseado no .yaml que tem no repositorio
kind create cluster --config "{PATH_REPOSITORY_DIR}\kind\kind-config.yaml"
- Aplique o helmfile com a label phase=crds
cd {PATH_REPOSITORY_DIR}\install
helmfile apply -e local-win -l phase=crds
- Agora aplique o helmfile sem labels
cd {PATH_REPOSITORY_DIR}\install
helmfile apply -e local-win
- Agora busque o service public-gateway-istio e altere a porta do nó para(nodePort) 30080
- name: http
protocol: TCP
appProtocol: http
port: 80
nodeport: 30080 #Garanta 30080 aqui!
- Abra o arquivo C:\windows\system32\drivers\etc\hosts e adicione as linhas
127.0.0.1 api.gateway.local.test
127.0.0.1 gateway.local.test
Linux
- Crie o cluster Kind bas eado no .yaml que tem no repositorio
kind create cluster --config "{PATH_REPOSITORY_DIR}/kind/kind-config.yaml"
- verifique qual o CIDR da networking disponibilizada pelo docker
docker network inspect -f '{{(index .IPAM.Config 0).Subnet}}' kind
-
- Se o retorno for diferente de 172.18.0.0/16 altere o ipRange no arquivo ./install/envs/local-ubuntu/totovs-gateway-server.yaml para uma faixa que se aloque dentro do CIDR disponibilizado pelo seu docker.
-
Aplique o helmfile com a label phase=crds
cd {PATH_REPOSITORY_DIR}/install
helmfile apply -e local-win -l phase=crds
- Agora aplique o helmfile sem labels
cd {PATH_REPOSITORY_DIR}/install
helmfile apply -e local-win
- Busque nos services do cluster o service public-gateway-istio e veja qual IP está na propriedade EXTERNAL_IP. Abra o arquivo /etc/hosts e adicione as linhas
{SEU_EXTERNAL_IP} api.gateway.local.test
{SEU_EXTERNAL_IP} gateway.local.test
Upload Docker Images locais para o cluster
Para subir uma imagem local, buildada na sua máquina e utilizar no cluster use o seguinte comando:
kind load docker-image minha-imagem:tag --name totvs-gateway
Setup Redis insight para ver dados no valkey
Para ver dados no valkey podemos utilizar uma imagem do redis insight direto no cluster.
- utilizando helm instale o redis insight no seu cluster
$ helm repo add redisinsight https://raw.githubusercontent.com/hansehe/redisinsight-helm/master/helm/charts
$ helm install redisinsight redisinsight/redisinsight -n valkey
- depois, com o pod redisinsight já executando faça um portfowarding para o serviço dele
kubectl port-forward svc/redisinsight 5540:5540 -n valkey
- Na página inicial busque por "Add connection details manually"
- Para adicionar a conexão, informe:
- host: valkey-primary
- port: 6379
- database alias: valkey:6379
- username: (deixe em branco)
- password: (verifique no arquivo de configurações do valkey)
- clique para adicionar a conexão e está pronto!