diff --git a/api-mocks/projects/1.json b/api-mocks/projects/1.json new file mode 100644 index 0000000..fa39231 --- /dev/null +++ b/api-mocks/projects/1.json @@ -0,0 +1,4 @@ +{ + "owner": 1, + "name": "Simple project" +} \ No newline at end of file diff --git a/api-mocks/users/1.json b/api-mocks/users/1.json new file mode 100644 index 0000000..46d9932 --- /dev/null +++ b/api-mocks/users/1.json @@ -0,0 +1,4 @@ +{ + "id": 1, + "username": "test" +} \ No newline at end of file diff --git a/api-mocks/users/2.json b/api-mocks/users/2.json new file mode 100644 index 0000000..ed9e2a5 --- /dev/null +++ b/api-mocks/users/2.json @@ -0,0 +1,4 @@ +{ + "id": 2, + "username": "test2" +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..53ac580 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,28 @@ +version: "3.8" +services: + + jaeger: + image: jaegertracing/all-in-one:latest + ports: + - "16686:16686" + - "14268:14268" + + api: + image: paramah/lwan + volumes: + - ./api-mocks:/opt/lwan/wwwroot + ports: + - "8000:8080" + + kraken: + image: devopsfaith/krakend:config-watcher + volumes: + - ./krakend:/etc/krakend + ports: + - "1234:1234" + - "8080:8080" + - "8091:8091" + depends_on: + - api + - jaeger + diff --git a/krakend/krakend.json b/krakend/krakend.json new file mode 100644 index 0000000..71963a8 --- /dev/null +++ b/krakend/krakend.json @@ -0,0 +1,78 @@ +{ + "version": 2, + "timeout": "3000ms", + "cache_ttl": "300s", + "host": [ + "http://api:8080" + ], + "extra_config": { + "github_com/devopsfaith/krakend-metrics": { + "listen_address": ":8091" + }, + "github_com/devopsfaith/krakend-gologging": { + "level": "DEBUG", + "prefix": "[KRAKEND]", + "syslog": false, + "stdout": true + }, + "github_com/devopsfaith/krakend-opencensus": { + "sample_rate": 100, + "reporting_period": 1, + "exporters": { + "jaeger": { + "endpoint": "http://jaeger:14268", + "service_name": "krakend" + } + } + }, + "github_com/devopsfaith/krakend-cors": { + "allow_origins": [ + "http://localhost:8000" + ], + "allow_methods": [ + "POST", + "GET" + ], + "allow_headers": [ + "Origin", + "Authorization", + "Content-Type" + ], + "expose_headers": [ + "Content-Length" + ], + "max_age": "12h" + } + }, + "endpoints":[ + { + "endpoint": "/sequential/{id}", + "backend": [ + { + "url_pattern": "/users/{id}.json", + "whitelist": [ + "id", + "username" + ], + "extra_config": {}, + "encoding": "json", + "blacklist": [ + "id" + ] + }, + { + "url_pattern": "/projects/{resp0_id}.json", + "whitelist": [ + "name" + ], + "group": "projects" + } + ], + "extra_config": { + "github.com/devopsfaith/krakend/proxy": { + "sequential": true + } + } + } + ] +}