- Golang
- RabbitMQ
- Docker
- K8S
- MongoDB
- There are two services which communicate via http(sync) and rabbitmq(async).
- Services opened to network via Ingress Api Gateway.
- Each service has its own database(MongoDB preffered for both services).
- Start minikube or docker desktop kubernetes service
kubectl apply -f local-pvc.yaml
kubectl apply -f commands-pvc.yaml
kubectl apply -f rabbitmq-depl.yaml
kubectl apply -f mongodb-secrets.yaml
kubectl apply -f mongodb-plat-depl.yaml
kubectl apply -f platforms-depl.yaml
If you want to test platform service endpoint for development purposes deploy platforms-np-srv.yaml file.
kubectl apply -f commands-mongodb-plat-depl.yaml
kubectl apply -f commands-depl.yaml
First you should deploy ingress controller to k8s. https://kubernetes.github.io/ingress-nginx/deploy/ follow instructions in this article.
kubectl apply -f ingress-srv.yaml
On your machine edit hosts file to route acme.com dns to localhost, ingress is waiting requests for acme.com.
You can connect databases, and rabbitmq via localhost check kubectl get services
result to see which port assigned for them.
To get api endpoints details there is a export file in repository named microservice-insomnia.json you can import it and test endpoints.