ℹ Looking for a microservice / service mesh sample app ? You might want to have a look at this.
Requirements: helm
Commands:
- Modify
helm/microcalc/values.yaml
and update your domain name - Execute the following commands to deploy microcalc
$ kubectl create namespace microcalc
$ kubectl label namespace microcalc -l istio-injection=enabled
$ helm template helm/microcalc | kubectl apply -n microcalc -f -
The application will be accessible at:
- Parser service: http://APP_DOMAIN
- GET /api/v1/status
- POST /api/v1/calculate
Run acceptance tests (as Job):
$ kubectl run robot -n microcalc --image=foly/microcalc-robot --restart=OnFailure -l 'app=microcalc-robot'
$ export POD_NAME=$(kubectl get pod -l 'app=microcalc-robot' -n microcalc -o jsonpath --template='{.items[0].metadata.name}')
$ kubectl logs $POD_NAME -n microcalc
Requirements: docker, docker-compose
Commands: $ docker-compose up
The application will be accessible at:
- Parser service: http://localhost:8080
- GET /api/v1/status
- POST /api/v1/calculate
Run acceptance tests:
$ docker-compose -f docker-compose.yml -f docker-compose.ci.yml run --rm robot
- Parser service API
POST /api/v1/calculate HTTP/1.1
Content-Type: application/json
[...]
{
"input": "1+1"
}
HTTP/1.1 200 OK
content-type: application/json
[...]
{
"operands": [
1,
1
],
"origins": [
{
"result": 1,
"service": "name: parser, version: v1"
},
{
"result": 1,
"service": "name: parser, version: v1"
}
],
"result": 2,
"service": "name: add, version: v1"
}