Para subir um cluster local:
vkpr infra up
Nota: o VKPR é um acelerador para adoção de Kubernetes e o comando acima é apenas um wrapper para subir um cluster k3d local sem ingress controller mas com load balancer na porta 8000.
Para instalar o Kong em modo ingress controller (mudamos a ingressClass para nginx no values.yaml
):
helm repo add kong https://charts.konghq.com
helm repo update
helm upgrade -i -f values.yaml kong kong/kong
Teste a instalação do Kong:
curl localhost:8000
{"message":"no Route matched with those values"}
Instale uma aplicação de exemplo:
vkpr whoami install --default
Teste esta aplicação (se "whoami.localhost" não resolve para 127.0.0.1 dê sua marretada em "/etc/hosts"):
curl whoami.localhost:8000
Hostname: whoami-7df8d764d4-5bcn2
...
X-Real-Ip: 10.42.0.0
Para proteger esta aplicação usando um plugin de BasicAuthentication iremos usar um CRD do Kong e anotar o Ingress dela:
kubectl apply -f basic-auth.yml
kubectl annotate ingress whoami konghq.com/plugins=basic-auth-whoami -n vkpr
Testar a aplicação novamente dará erro 403:
curl whoami.localhost:8000
{
"message":"Unauthorized"
}%
Para criar um usuário é necessário criar um KongConsumer e uma secret definindo sua senha:
kubectl create secret generic consumer-pwd -n vkpr \
--from-literal=kongCredType=basic-auth \
--from-literal=password=campeao \
--from-literal=username=mengao
kubectl apply -f consumer.yml
Finalmente, para testar o acesso com credenciais basta o comando abaixo:
curl -u mengao:campeao whoami.localhost:8000