36 Commits

Author SHA1 Message Date
f537fa581d Update testing env 2023-06-25 02:11:09 +02:00
9ae0a14cf0 Update testing env 2023-06-25 02:01:28 +02:00
538ee5b1c9 Update testing env 2023-06-25 01:58:12 +02:00
7deeecdb8b Update testing env 2023-06-25 01:56:55 +02:00
4ec00f2c3a Update testign env 2023-06-25 00:55:25 +02:00
d018ce7f0a Merge branch 'develop' into testing 2023-06-25 00:52:27 +02:00
6784028010 Update mikr.us env 2023-06-24 20:02:38 +02:00
a5cc8fd17e Update mikr.us env 2023-06-24 19:59:55 +02:00
faabe6ced7 Update mikr.us env 2023-06-24 19:55:55 +02:00
b29974e0ac Update mikr.us env 2023-06-24 19:55:37 +02:00
d8fa19d8ef Update mikr.us env 2023-06-24 19:38:36 +02:00
d0d6cc4612 Update mikr.us env 2023-06-24 19:26:38 +02:00
9e83f0f8d0 Update mikr.us env 2023-06-24 19:24:21 +02:00
4708096cb6 Update mikr.us env 2023-06-24 19:23:20 +02:00
c0a8a7aef1 Update mikr.us env 2023-06-24 19:22:03 +02:00
d118557e24 Update mikr.us env 2023-06-24 19:16:28 +02:00
2fc0c778dd Update mikr.us env 2023-06-24 18:54:00 +02:00
ebd6dcb5b4 Update mikr.us env 2023-06-24 18:50:09 +02:00
2a6f8691bb Update mikr.us env 2023-06-24 18:43:38 +02:00
29d4210228 Update mikr.us env 2023-06-24 18:42:19 +02:00
bbfb6e86f0 Update mikr.us env 2023-06-24 18:38:24 +02:00
3e13ce7ec1 Update mikr.us env 2023-06-24 18:35:16 +02:00
c1d56629f7 Update mikr.us env 2023-06-24 18:32:57 +02:00
1c1c2029d2 Update mikr.us env 2023-06-24 18:17:19 +02:00
db87d52012 Update mikr.us env 2023-06-24 17:54:28 +02:00
3e4a672e49 Update mikr.us env 2023-06-24 17:53:04 +02:00
b3f29f6de9 Update mikr.us env 2023-06-24 17:51:42 +02:00
40342ef3c8 Update mikr.us env 2023-06-24 17:50:38 +02:00
c2e907cee8 Update mikr.us env 2023-06-24 17:48:57 +02:00
f739036c44 Update mikr.us env 2023-06-24 17:47:44 +02:00
4120d789ff Update mikr.us env 2023-06-24 17:46:43 +02:00
e183d58f71 Update mikr.us env 2023-06-24 17:45:07 +02:00
583cfa7499 Update mikr.us env 2023-06-24 17:19:32 +02:00
d5390f35b2 dev.local env for MIKR.US test deploy 2023-06-24 16:38:06 +02:00
PB
09509d224f dev.local env for MIKR.US test deployt 2023-06-24 14:37:30 +00:00
d98cb70c02 Added mapping between host and consul dns server 2023-06-24 16:08:15 +02:00
25 changed files with 196 additions and 1240 deletions

View File

@@ -1,7 +1,7 @@
DEPLOY_DIR := ./deploy DEPLOY_DIR := ./deploy
up: up:
- sh ${DEPLOY_DIR}/start-docker.sh - sh ${DEPLOY_DIR}/start-stack.sh
down: down:
- docker stack rm egommerce - docker stack rm egommerce

View File

@@ -2,7 +2,7 @@
## RUNNING ## RUNNING
# $ make up # $ sh deploy/start-stack.sh
## MAINTENANCE ## MAINTENANCE

View File

@@ -1,4 +1,4 @@
API_GATEWAY_PORT=48443 API_GATEWAY_PORT=40056
API_GATEWAY_UI_PORT=48444 API_GATEWAY_UI_PORT=40057
API_REGISTRY_UI_PORT=48445 API_REGISTRY_UI_PORT=40058
API_EVENTBUS_UI_PORT=48446 API_EVENTBUS_UI_PORT=40059

Binary file not shown.

View File

@@ -1,57 +0,0 @@
package main
import (
"log"
"net"
"net/http"
"os"
"strings"
)
func main() {
addr, port := env("API_REGISTRY_ADDR", "api-registry"), env("API_REGISTRY_PORT", "8501")
regUrl := "https://" + addr + ":" + port + "/v1/agent/service/register?replace-existing-checks=true"
regData, err := os.ReadFile("/.app.config")
if err != nil {
log.Fatal(err)
}
ip := getIP()
strRegData := string(regData)
strRegData = strings.Replace(strRegData, "__IP__", ip, -1)
req, err := http.NewRequest(http.MethodPut, regUrl, strings.NewReader(strRegData))
if err != nil {
log.Fatal(err)
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
log.Printf(err.Error())
log.Fatal(err)
}
var respBody []byte
resp.Body.Read(respBody)
log.Printf("Successfully registered")
}
func env(name, def string) string {
val := os.Getenv(name)
if len(val) == 0 {
return def
}
return val
}
func getIP() string {
host, _ := os.Hostname()
ips, _ := net.LookupIP(host)
for _, ip := range ips {
return ip.String()
}
return host
}

View File

@@ -1,9 +0,0 @@
#!/usr/bin/env sh
# modify /etc/resolv.conf
registryIP=$(nslookup -type=A api-registry. | awk '/^Name:/ {c=2;N=$2} !--c {print N,$2}' | awk '{printf "%s", $2}')
resolvFile=$(cat /etc/resolv.conf)
echo -e "nameserver $registryIP" >>/etc/resolv.conf
# echo "$registryIP registry.service.ego.io" >> /etc/hosts # Add consul host with static IP (consul register itself as 127.0.0.1)
# nslookup api-registry

View File

@@ -1,3 +0,0 @@
#!/bin/sh
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o deploy/bin/register-service deploy/bin/register-service.go

View File

@@ -1,179 +0,0 @@
version: "3.9"
services:
api-registry:
env_file: ../.env.local
environment:
- CONSUL_HTTP_TOKEN=784746ec-0d5d-fb12-1a79-95f912dcaabd
- VAULT_TOKEN=hvs.cJE9Qr4PIafDGy0wdx2GoxOb # ROOT TOKEN
# - VAULT_TOKEN=hvs.CAESICxuTO_JieCbpMoZ4_qOPIohxSKim_4V8t11JLg93RtKGh4KHGh2cy5VUUFqUm5CdTQ3V3hMQ3BHSDB4dThNZHE
volumes:
- ../certs/api-registry/registry.local.crt:/etc/certs/registry.local.crt:ro
# - ../certs/ca/vault-root.pem:/usr/local/share/ca-certificates/vaultCA.pem:ro
api-gateway:
env_file: ../.env.local
environment:
- CONSUL_HTTP_TOKEN=784746ec-0d5d-fb12-1a79-95f912dcaabd
- VAULT_TOKEN=hvs.cJE9Qr4PIafDGy0wdx2GoxOb # ROOT TOKEN
# - VAULT_TOKEN=hvs.CAESICxuTO_JieCbpMoZ4_qOPIohxSKim_4V8t11JLg93RtKGh4KHGh2cy5VUUFqUm5CdTQ3V3hMQ3BHSDB4dThNZHE
volumes:
- ../certs/api-gateway/gateway.local.crt:/etc/certs/gateway.local.crt:ro
# - ../certs/ca/vault-root.pem:/usr/local/share/ca-certificates/vaultCA.pem:ro
api-vault:
env_file: ../.env.local
# command: ["vault", "server", "-dev", "-dev-tls", "-dev-listen-address=0.0.0.0:8200", "-dev-root-token-id=dev-vault-token"]
environment:
- CONSUL_HTTP_TOKEN=784746ec-0d5d-fb12-1a79-95f912dcaabd
- VAULT_TOKEN=hvs.G7oo532tREW4MTdWTgq03GtA # ROOT TOKEN
# - VAULT_TOKEN=hvs.CAESICxuTO_JieCbpMoZ4_qOPIohxSKim_4V8t11JLg93RtKGh4KHGh2cy5VUUFqUm5CdTQ3V3hMQ3BHSDB4dThNZHE
volumes:
- ../certs/api-vault/vault.local.crt:/etc/certs/vault.crt:ro
# - ../certs/ca/vault-root.pem:/usr/local/share/ca-certificates/vaultCA.pem:ro
ports:
- 48250:8200
api-eventbus:
env_file: ../.env.local
volumes:
- ../certs/api-eventbus/eventbus.local.crt:/etc/certs/eventbus.local.crt:ro
# - ../certs/api-eventbus/eventbus.key:/etc/certs/eventbus.local.key:ro
labels:
- traefik.tcp.routers.eventbus.rule=HostSNI(`esb.service.ego.io`)
ports:
- 48200:15672
- 48201:5672
api-cache:
env_file: ../.env.local
command: ["redis-server", "/etc/redis.conf", "--requirepass", "12345678"]
ports:
- 48300:6379
api-logger:
env_file: ../.env.local
ports:
- 48400:24224
# api-prometheus:
# ports:
# - 9090:9090
# api-grafana:
# ports:
# - 3000:3000
db-postgres:
env_file: ../.env.local
ports:
- 48500:5432
# db-mongo:
# env_file: ../.env.local
# environment:
# - APP_DOMAIN=mongodb.egommerce.local # FIXME
# ports:
# - 48600:27017
identity-svc:
deploy:
mode: replicated
replicas: 0
env_file: ../.env.local
environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
# - EVENTBUS_URL=amqp://guest:guest@esb.service.ego.io:5672
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
ports:
- 48780:443
catalog-svc:
deploy:
mode: replicated
replicas: 1
env_file: ../.env.local
environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
ports:
- 48781:443
basket-svc:
deploy:
mode: replicated
replicas: 0
env_file: ../.env.local
environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
ports:
- 48782:443
order-svc:
deploy:
mode: replicated
replicas: 0
env_file: ../.env.local
environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
ports:
- 48783:443
pricing-svc:
deploy:
mode: replicated
replicas: 0
env_file: ../.env.local
environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
ports:
- 48784:443
# Workers (EventBus)
basket-worker:
deploy:
mode: replicated
replicas: 0
env_file: ../.env.local
environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
catalog-worker:
deploy:
mode: replicated
replicas: 0
env_file: ../.env.local
environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
pricing-worker:
deploy:
mode: replicated
replicas: 0
env_file: ../.env.local
environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
order-worker:
deploy:
mode: replicated
replicas: 0
env_file: ../.env.local
environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672

View File

@@ -1,129 +0,0 @@
version: "3.9"
services:
api-registry:
image: git.pbiernat.io/egommerce/api-registry:dev
environment:
- APP_DOMAIN=registry.service.ego.io
- VAULT_ADDR=https://api-vault:8200
- VAULT_API_ADDR=https://api-vault:8200
# - ENVOY_VERSION_STRING=1.26.3
ports:
- 48100:8501
api-gateway:
image: git.pbiernat.io/egommerce/api-registry:dev
environment:
- APP_DOMAIN=gw.service.ego.io
# - VAULT_ADDR=https://api-vault:8200
# - VAULT_API_ADDR=https://api-vault:8200
# - ENVOY_VERSION_STRING=1.26.3
ports:
- 48101:8501
- 48443:8443 # consul & envoy api gateway port
api-vault:
image: git.pbiernat.io/egommerce/api-vault:dev
environment:
- APP_DOMAIN=vault.service.ego.io
- CONSUL_HTTP_ADDR=https://api-registry:8501
api-eventbus:
image: git.pbiernat.io/egommerce/api-eventbus:dev
environment:
- APP_DOMAIN=esb.service.ego.io
# - RABBITMQ_NODENAME=api-eventbus
# - RABBITMQ_USE_LONGNAME=true
# - RABBITMQ_DEFAULT_USER = admin
# - RABBITMQ_DEFAULT_PASS = passw123
api-cache:
image: git.pbiernat.io/egommerce/api-cache:dev
environment:
- APP_DOMAIN=cache.service.ego.io
- PASSWORD=12345678
api-logger:
image: git.pbiernat.io/egommerce/api-logger:dev
environment:
- APP_DOMAIN=logger.service.ego.io
# api-prometheus:
# image: prom/prometheus:latest # FIXME: create private image(prod/dev)...
# environment:
# - APP_DOMAIN=prometheus.service.ego.io
# api-grafana:
# image: grafana/grafana-oss:latest # FIXME: create private image(prod/dev)...
# environment:
# - APP_DOMAIN=grafana.service.ego.io
db-postgres:
image: git.pbiernat.io/egommerce/db-postgres:dev
environment:
- APP_DOMAIN=postgresdb.service.ego.io
- POSTGRESQL_PASSWORD=12345678
# db-mongo:
# environment:
# - MONGO_INITDB_ROOT_PASSWORD=12345678
# API micro-services
identity-svc:
image: git.pbiernat.io/egommerce/identity-svc:dev
environment:
# - SERVER_ADDR=basket.service.ego.io
- APP_DOMAIN=identity.service.ego.io
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
catalog-svc:
image: git.pbiernat.io/egommerce/catalog-svc:dev
environment:
# - REGISTRY_USE_DOMAIN_OVER_IP=false
- APP_DOMAIN=catalog.service.ego.io
- AUTH_HANDLER_URL=https://identity.service.ego.io/api/v1/traefik
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
basket-svc:
image: git.pbiernat.io/egommerce/basket-svc:dev
environment:
- APP_DOMAIN=basket.service.ego.io
- AUTH_HANDLER_URL=https://identity.service.ego.io/api/v1/traefik
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
order-svc:
image: git.pbiernat.io/egommerce/order-svc:dev
environment:
- APP_DOMAIN=order.service.ego.io
- AUTH_HANDLER_URL=https://identity.service.ego.io/api/v1/traefik
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
# volumes:
# - ../etc/resolv.conf:/etc/resolv.conf
pricing-svc:
image: git.pbiernat.io/egommerce/pricing-svc:dev
environment:
- APP_DOMAIN=pricing.service.ego.io
- AUTH_HANDLER_URL=https://identity.service.ego.io/api/v1/traefik
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
# Workers (Eventbus)
basket-worker:
image: git.pbiernat.io/egommerce/basket-worker:dev
environment:
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
catalog-worker:
image: git.pbiernat.io/egommerce/catalog-worker:dev
environment:
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
pricing-worker:
image: git.pbiernat.io/egommerce/pricing-worker:dev
environment:
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
order-worker:
image: git.pbiernat.io/egommerce/order-worker:dev
environment:
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017

View File

@@ -1,142 +0,0 @@
version: "3.9"
services:
api-registry:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/api-registry:prod
environment:
- APP_DOMAIN=registry.service.ego.io
api-gateway:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/api-registry:prod
environment:
- APP_DOMAIN=gw.service.ego.io
api-vault:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/api-vault:prod
command: ["vault", "server", "-config=/vault/config/server.hcl"]
environment:
- APP_DOMAIN=vault.service.ego.io
- VAULT_API_ADDR=https://localhost:8200
- VAULT_ADDR=https://localhost:8200
api-eventbus:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/api-eventbus:prod
environment:
- APP_DOMAIN=esb.service.ego.io
api-cache:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/api-cache:prod
environment:
- APP_DOMAIN=cache.service.ego.io
api-logger:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/api-logger:prod
environment:
- APP_DOMAIN=logger.service.ego.io
# api-prometheus:
# image: prom/prometheus:prod # FIXME: create private image(prod/dev)...
# user: root
# environment:
# - APP_NAME=api-prometheus
# api-grafana:
# image: grafana/grafana-oss:prod # FIXME: create private image(prod/dev)...
# environment:
# - APP_NAME=api-grafana
db-postgres:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/db-postgres:prod
environment:
- APP_DOMAIN=postgresdb.service.ego.io
- POSTGRESQL_USERNAME=egommerce
- POSTGRESQL_DATABASE=egommerce
# db-mongo:
# env_file: ../.env.prod
# environment:
# - APP_NAME=db-mongo
# - APP_DOMAIN=mongo-db.service.ego.io
# - MONGO_INITDB_ROOT_USERNAME=mongodb
# API micro-services
identity-svc:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/identity-svc:prod
environment:
- APP_DOMAIN=identity.service.ego.io
- APP_PATH_PREFIX=/identity
- DATABASE_URL=postgres://postgres:12345678@postgresdb.service.ego.io:5432/egommerce
- EVENTBUS_URL=amqp://guest:guest@esb.service.ego.io:5672
catalog-svc:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/catalog-svc:prod
environment:
- APP_DOMAIN=catalog.service.ego.io
- APP_PATH_PREFIX=/catalog
- DATABASE_URL=postgres://postgres:12345678@postgresdb.service.ego.io:5432/egommerce
- EVENTBUS_URL=amqp://guest:guest@esb.service.ego.io:5672
basket-svc:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/basket-svc:prod
environment:
- APP_DOMAIN=basket.service.ego.io
- APP_PATH_PREFIX=/basket
- DATABASE_URL=postgres://postgres:12345678@postgresdb.service.ego.io:5432/egommerce
- EVENTBUS_URL=amqp://guest:guest@esb.service.ego.io:5672
pricing-svc:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/pricing-svc:prod
environment:
- APP_DOMAIN=pricing.service.ego.io
- APP_PATH_PREFIX=/pricing
- DATABASE_URL=postgres://postgres:12345678@postgresdb.service.ego.io:5432/egommerce
- EVENTBUS_URL=amqp://guest:guest@esb.service.ego.io:5672
order-svc:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/order-svc:prod
environment:
- APP_DOMAIN=order.service.ego.io
- APP_PATH_PREFIX=/order
- DATABASE_URL=postgres://postgres:12345678@postgresdb.service.ego.io:5432/egommerce
- EVENTBUS_URL=amqp://guest:guest@esb.service.ego.io:5672
# Workers (Eventbus)
basket-worker:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/basket-worker:prod
environment:
- DATABASE_URL=postgres://postgres:12345678@postgresdb.service.ego.io:5432/egommerce
- EVENTBUS_URL=amqp://guest:guest@esb.service.ego.io:5672
catalog-worker:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/catalog-worker:prod
environment:
- DATABASE_URL=postgres://postgres:12345678@postgresdb.service.ego.io:5432/egommerce
- EVENTBUS_URL=amqp://guest:guest@esb.service.ego.io:5672
pricing-worker:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/pricing-worker:prod
environment:
- DATABASE_URL=postgres://postgres:12345678@postgresdb.service.ego.io:5432/egommerce
- EVENTBUS_URL=amqp://guest:guest@esb.service.ego.io:5672
order-worker:
env_file: ../.env.prod
image: git.pbiernat.io/egommerce/order-worker:prod
environment:
- DATABASE_URL=postgres://postgres:12345678@postgresdb.service.ego.io:5432/egommerce
- EVENTBUS_URL=amqp://guest:guest@esb.service.ego.io:5672

View File

@@ -1,479 +0,0 @@
version: "3.9"
services:
api-registry:
image: git.pbiernat.io/egommerce/api-registry:latest
command: [
"consul",
"agent",
"-config-file=/consul/config/server.hcl",
# "-config-dir=/consul/config",
"-node=registry",
"-bootstrap-expect=1"
]
environment:
- APP_DOMAIN
- APP_NAME=api-registry
- CONSUL_HTTP_ADDR=127.0.0.1:8501
- CONSUL_HTTP_SSL=true
- CONSUL_CACERT=/usr/share/pki/ca-trust-source/anchors/internalCA.crt
- CONSUL_CLIENT_CERT=/etc/certs/registry.crt
- CONSUL_CLIENT_KEY=/etc/certs/registry.key
volumes:
- registry_data:/consul/data
- ../certs/api-registry/registry.internal.crt:/etc/certs/registry.crt:ro
- ../certs/api-registry/registry.key:/etc/certs/registry.key:ro
- ../certs/ca/internalCA.crt:/usr/share/pki/ca-trust-source/anchors/internalCA.crt:ro
# - ../bin/register-service:/bin/register-service
# - ../bin/update-resolv.sh:/bin/update-resolv
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
api-gateway: # consul client running as api-gateway
image: git.pbiernat.io/egommerce/api-registry:latest
command: [
"consul",
"agent",
"-config-file=/consul/config/gateway.hcl",
# "-config-file=/consul/config/gateway-config.hcl",
# "-config-file=/consul/config/gateway-routes.hcl",
# "-config-dir=/consul/config",
"-node=gateway",
"-retry-join=api-registry"
]
environment:
- APP_DOMAIN
- APP_NAME=api-gateway
- CONSUL_HTTP_ADDR=127.0.0.1:8501
- CONSUL_HTTP_SSL=true
- CONSUL_CACERT=/usr/share/pki/ca-trust-source/anchors/internalCA.crt
- CONSUL_CLIENT_CERT=/etc/certs/gateway.crt
- CONSUL_CLIENT_KEY=/etc/certs/gateway.key
volumes:
- gateway_data:/consul/data
- ../certs/api-gateway/gateway.internal.crt:/etc/certs/gateway.crt:ro
- ../certs/api-gateway/gateway.key:/etc/certs/gateway.key:ro
- ../certs/catalog-svc/catalog-svc.crt:/etc/certs/catalog.crt:ro
- ../certs/catalog-svc/catalog-svc.key:/etc/certs/catalog.key:ro
- ../certs/ca/internalCA.crt:/usr/share/pki/ca-trust-source/anchors/internalCA.crt:ro
# - ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
api-vault:
image: git.pbiernat.io/egommerce/api-vault:latest
command: ["vault", "server", "-config=/vault/config/server.hcl"]
environment:
- APP_DOMAIN
- APP_NAME=api-vault
- API_REGISTRY_ADDR=api-registry
volumes:
- vault_data:/vault/data
- ../certs/api-vault/vault.internal.crt:/etc/certs/vault.crt:ro
- ../certs/api-vault/vault.key:/etc/certs/vault.key:ro
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
cap_add:
- IPC_LOCK
networks:
- egommerce-network
# cap_add:
# - IPC_LOCK
api-eventbus:
image: git.pbiernat.io/egommerce/api-eventbus:latest
environment:
# - RABBITMQ_NODENAME=api-eventbus
- RABBITMQ_ERLANG_COOKIE=rabbitmq
- APP_DOMAIN
- APP_NAME=api-eventbus
- API_REGISTRY_ADDR=api-registry
volumes:
- eventbus_data:/var/lib/rabbitmq
- eventbus_logs:/var/log/rabbitmq
- ../certs/api-eventbus/eventbus.internal.crt:/etc/certs/eventbus.crt:ro
- ../certs/api-eventbus/eventbus.key:/etc/certs/eventbus.key:ro
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
api-cache:
image: git.pbiernat.io/egommerce/api-cache:latest
environment:
- APP_DOMAIN
- APP_NAME=api-cache
- API_REGISTRY_ADDR=api-registry
volumes:
# - ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
api-logger:
image: git.pbiernat.io/egommerce/api-logger:latest
environment:
- APP_DOMAIN
- APP_NAME=api-logger
- API_REGISTRY_ADDR=api-registry
volumes:
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
# api-prometheus:
# image: prom/prometheus:latest # FIXME: create private image(prod/dev)...
# user: root
# environment:
# - APP_DOMAIN
# - APP_NAME=api-prometheus
# - API_REGISTRY_ADDR=api-registry
# volumes:
# - ../etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
# - ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
# - ../bin/register-service:/bin/register-service
# - ../bin/update-resolv.sh:/bin/update-resolv
# - /var/run/docker.sock:/var/run/docker.sock
# depends_on:
# - api-registry
# networks:
# - egommerce-network
# api-grafana:
# image: grafana/grafana-oss:latest # FIXME: create private image(prod/dev)...
# environment:
# - APP_DOMAIN
# - APP_NAME=api-grafana
# - API_REGISTRY_ADDR=api-registry
# volumes:
# - grafana-db:/var/lib/grafana
# - ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
# - ../bin/update-resolv.sh:/bin/update-resolv
# - ../bin/register-service:/bin/register-service
# depends_on:
# - api-registry
# networks:
# - egommerce-network
db-postgres:
image: git.pbiernat.io/egommerce/db-postgres:latest
environment:
- APP_DOMAIN
- APP_NAME=db-postgres
- API_REGISTRY_ADDR=api-registry
- POSTGRESQL_USERNAME=postgres
- POSTGRESQL_DATABASE=postgres
- POSTGRESQL_PASSWORD=H5Gd7^37*Hka*a72
volumes:
- postgres_data:/var/lib/postgresql/data
# - ./db_migrations/init/:/docker-entrypoint-initdb.d/
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
# db-mongo:
# image: mongo:5.0.14
# environment:
# - APP_DOMAIN
# - APP_NAME=mongo-db
# - API_REGISTRY_ADDR=api-registry
# - MONGO_INITDB_ROOT_USERNAME=mongodb
# - MONGO_INITDB_ROOT_PASSWORD
# volumes:
# - mongodb_data:/data/db
# - ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
# - ../bin/register-service:/bin/register-service
# - ../bin/update-resolv.sh:/bin/update-resolv
# depends_on:
# - api-registry
# deploy:
# mode: replicated
# replicas: 1
# extra_hosts:
# - "host.docker.internal:host-gateway"
# networks:
# - egommerce-network
# API micro-services
identity-svc:
image: git.pbiernat.io/egommerce/identity-svc:latest
environment:
- APP_NAME=identity-svc
- APP_PATH_PREFIX=/identity
- API_REGISTRY_ADDR=api-gateway
- APP_DOMAIN
- APP_KV_NAMESPACE
- DATABASE_URL
- MONGODB_URL
- EVENTBUS_URL
volumes:
- ../certs/identity-svc/identity-svc.crt:/certs/client.crt:ro
- ../certs/identity-svc/identity-svc.key:/certs/client.key:ro
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../db_migrations/identity-svc:/migrations
- ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
catalog-svc:
image: git.pbiernat.io/egommerce/catalog-svc:latest
environment:
- APP_NAME=catalog-svc
- APP_PATH_PREFIX=/catalog
- API_REGISTRY_ADDR=api-gateway
- APP_DOMAIN
- APP_KV_NAMESPACE
- AUTH_HANDLER_URL
- DATABASE_URL
- MONGODB_URL
- EVENTBUS_URL
volumes:
- ../certs/catalog-svc/catalog-svc.crt:/certs/client.crt:ro
- ../certs/catalog-svc/catalog-svc.key:/certs/client.key:ro
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../db_migrations/catalog-svc:/migrations
- ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
basket-svc:
image: git.pbiernat.io/egommerce/basket-svc:latest
environment:
- APP_NAME=basket-svc
- APP_PATH_PREFIX=/basket
- API_REGISTRY_ADDR=api-gateway
- APP_DOMAIN
- APP_KV_NAMESPACE
- AUTH_HANDLER_URL
- DATABASE_URL
- MONGODB_URL
- EVENTBUS_URL
volumes:
- ../certs/basket-svc/basket-svc.crt:/certs/client.crt:ro
- ../certs/basket-svc/basket-svc.key:/certs/client.key:ro
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../db_migrations/basket-svc:/migrations
- ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
order-svc:
image: git.pbiernat.io/egommerce/order-svc:latest
environment:
- APP_NAME=order-svc
- APP_PATH_PREFIX=/order
- API_REGISTRY_ADDR=api-gateway
- APP_DOMAIN
- APP_KV_NAMESPACE
- AUTH_HANDLER_URL
- DATABASE_URL
- MONGODB_URL
- EVENTBUS_URL
volumes:
- ../certs/order-svc/order-svc.crt:/certs/client.crt:ro
- ../certs/order-svc/order-svc.key:/certs/client.key:ro
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../db_migrations/order-svc:/migrations
- ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
pricing-svc:
image: git.pbiernat.io/egommerce/pricing-svc:latest
environment:
- APP_NAME=pricing-svc
- APP_PATH_PREFIX=/pricing
- API_REGISTRY_ADDR=api-gateway
- APP_DOMAIN
- APP_KV_NAMESPACE
- AUTH_HANDLER_URL
- DATABASE_URL
- MONGODB_URL
- EVENTBUS_URL
volumes:
- ../certs/pricing-svc/pricing-svc.crt:/certs/client.crt:ro
- ../certs/pricing-svc/pricing-svc.key:/certs/client.key:ro
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../db_migrations/pricing-svc:/migrations
- ../bin/register-service:/bin/register-service
- ../bin/update-resolv.sh:/bin/update-resolv
depends_on:
- api-registry
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
# Workers (Eventbus)
basket-worker:
image: git.pbiernat.io/egommerce/basket-worker:latest
environment:
- APP_NAME=basket-worker
- APP_KV_NAMESPACE
- DATABASE_URL
- MONGODB_URL
- EVENTBUS_URL
volumes:
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../bin/update-resolv.sh:/bin/update-resolv
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
catalog-worker:
image: git.pbiernat.io/egommerce/catalog-worker:latest
environment:
- APP_NAME=catalog-worker
- DATABASE_URL
- MONGODB_URL
- EVENTBUS_URL
volumes:
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../bin/update-resolv.sh:/bin/update-resolv
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
pricing-worker:
image: git.pbiernat.io/egommerce/pricing-worker:latest
environment:
- APP_NAME=pricing-worker
- DATABASE_URL
- MONGODB_URL
- EVENTBUS_URL
volumes:
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../bin/update-resolv.sh:/bin/update-resolv
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
order-worker:
image: git.pbiernat.io/egommerce/order-worker:latest
environment:
- APP_NAME=order-worker
- DATABASE_URL
- MONGODB_URL
- EVENTBUS_URL
volumes:
- ../certs/ca/internalCA.crt:/usr/local/share/ca-certificates/internalCA.crt:ro
- ../bin/update-resolv.sh:/bin/update-resolv
deploy:
mode: replicated
replicas: 1
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- egommerce-network
volumes:
postgres_data: ~
mongodb_data: ~
registry_data: ~
gateway_data: ~
vault_data: ~
eventbus_data: ~
eventbus_logs: ~
# grafana-db: ~
networks:
# Infrastructure networks
egommerce-network:
driver: overlay

View File

@@ -5,30 +5,36 @@ services:
env_file: .env.local env_file: .env.local
environment: environment:
- APP_DOMAIN=egommerce.local - APP_DOMAIN=egommerce.local
# - APP_PORT=48443 # - APP_PORT=40056
ports: ports:
- 48443:443 - '40056:443'
- 48444:8080 - '40057:8080'
# - 5672:5672 - '5672:5672'
api-registry: api-registry:
command: ["-ui-content-path=/registry"] command: ["-ui-content-path=/registry", "-log-level=DEBUG"]
env_file: .env.local
environment: environment:
- APP_DOMAIN=registry.egommerce.local - APP_DOMAIN=registry.egommerce.local
# - APP_PORT=48445 # - APP_PORT=40058
ports: ports:
- 48445:8500 - '8300:8300'
- 8600:8600/udp - '40058:8500'
- '8600:8600/udp'
api-eventbus: api-eventbus:
env_file: .env.local env_file: .env.local
environment: environment:
- APP_DOMAIN=eventbus.egommerce.local - APP_DOMAIN=eventbus.egommerce.local
# - APP_PORT=48446 # - APP_PORT=40059
labels:
- traefik.enable=true
- traefik.tcp.routers.eventbus.rule=HostSNI(`*`)
- traefik.tcp.routers.eventbus.entrypoints=rabbitmq
- traefik.tcp.routers.eventbus.service=eventbus
- traefik.tcp.services.eventbus.loadbalancer.server.port=5672
ports: ports:
- 48446:8084 - '40059:8084'
- 15672:15672 - '15672:15672'
api-cache: api-cache:
env_file: .env.local env_file: .env.local

View File

@@ -2,14 +2,12 @@ version: "3.9"
services: services:
api-gateway: api-gateway:
image: git.ego.cloudns.be/egommerce/api-gateway:dev image: git.pbiernat.dev/egommerce/api-gateway:dev
environment: environment:
- APP_DOMAIN=api-gateway - APP_DOMAIN=api-gateway
volumes:
- ./certs/api-gateway:/etc/traefik/certs
api-registry: api-registry:
image: git.ego.cloudns.be/egommerce/api-registry:dev image: git.pbiernat.dev/egommerce/api-registry:dev
environment: environment:
- APP_DOMAIN=api-registry - APP_DOMAIN=api-registry
- CONSUL_HTTP_TOKEN=devop - CONSUL_HTTP_TOKEN=devop
@@ -17,7 +15,7 @@ services:
- ./certs/api-registry:/consul/data/certs - ./certs/api-registry:/consul/data/certs
api-eventbus: api-eventbus:
image: git.ego.cloudns.be/egommerce/api-eventbus:dev image: git.pbiernat.dev/egommerce/api-eventbus:dev
environment: environment:
- APP_DOMAIN=api-eventbus - APP_DOMAIN=api-eventbus
# - RABBITMQ_NODENAME=api-eventbus # - RABBITMQ_NODENAME=api-eventbus
@@ -26,12 +24,12 @@ services:
# - RABBITMQ_DEFAULT_PASS = passw123 # - RABBITMQ_DEFAULT_PASS = passw123
api-cache: api-cache:
image: git.ego.cloudns.be/egommerce/api-cache:dev image: git.pbiernat.dev/egommerce/api-cache:dev
environment: environment:
- PASSWORD=12345678 - PASSWORD=12345678
api-logger: api-logger:
image: git.ego.cloudns.be/egommerce/api-logger:dev image: git.pbiernat.dev/egommerce/api-logger:dev
environment: environment:
- APP_DOMAIN=api-logger - APP_DOMAIN=api-logger
@@ -57,7 +55,7 @@ services:
# API micro-services # API micro-services
identity-svc: identity-svc:
image: git.ego.cloudns.be/egommerce/identity-svc:dev image: git.pbiernat.dev/egommerce/identity-svc:dev
environment: environment:
- APP_DOMAIN=identity-svc - APP_DOMAIN=identity-svc
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce - DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
@@ -67,7 +65,7 @@ services:
- ./certs/api-gateway:/certs - ./certs/api-gateway:/certs
basket-svc: basket-svc:
image: git.ego.cloudns.be/egommerce/basket-svc:dev image: git.pbiernat.dev/egommerce/basket-svc:dev
environment: environment:
- APP_DOMAIN=basket-svc - APP_DOMAIN=basket-svc
- AUTH_HANDLER_URL=http://identity-svc/api/v1/traefik - AUTH_HANDLER_URL=http://identity-svc/api/v1/traefik
@@ -78,7 +76,7 @@ services:
- ./certs/api-gateway:/certs - ./certs/api-gateway:/certs
catalog-svc: catalog-svc:
image: git.ego.cloudns.be/egommerce/catalog-svc:dev image: git.pbiernat.dev/egommerce/catalog-svc:dev
environment: environment:
- APP_DOMAIN=catalog-svc - APP_DOMAIN=catalog-svc
- AUTH_HANDLER_URL=http://identity-svc/api/v1/traefik - AUTH_HANDLER_URL=http://identity-svc/api/v1/traefik
@@ -89,7 +87,7 @@ services:
- ./certs/api-gateway:/certs - ./certs/api-gateway:/certs
pricing-svc: pricing-svc:
image: git.ego.cloudns.be/egommerce/pricing-svc:dev image: git.pbiernat.dev/egommerce/pricing-svc:dev
environment: environment:
- APP_DOMAIN=pricing-svc - APP_DOMAIN=pricing-svc
- AUTH_HANDLER_URL=http://identity-svc/api/v1/traefik - AUTH_HANDLER_URL=http://identity-svc/api/v1/traefik
@@ -100,7 +98,7 @@ services:
- ./certs/api-gateway:/certs - ./certs/api-gateway:/certs
order-svc: order-svc:
image: git.ego.cloudns.be/egommerce/order-svc:dev image: git.pbiernat.dev/egommerce/order-svc:dev
environment: environment:
- APP_DOMAIN=order-svc - APP_DOMAIN=order-svc
- AUTH_HANDLER_URL=http://identity-svc/api/v1/traefik - AUTH_HANDLER_URL=http://identity-svc/api/v1/traefik
@@ -112,28 +110,28 @@ services:
# Workers (Eventbus) # Workers (Eventbus)
basket-worker: basket-worker:
image: git.ego.cloudns.be/egommerce/basket-worker:dev image: git.pbiernat.dev/egommerce/basket-worker:dev
environment: environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce - DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017 - MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672 - EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
catalog-worker: catalog-worker:
image: git.ego.cloudns.be/egommerce/catalog-worker:dev image: git.pbiernat.dev/egommerce/catalog-worker:dev
environment: environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce - DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017 - MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672 - EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
pricing-worker: pricing-worker:
image: git.ego.cloudns.be/egommerce/pricing-worker:dev image: git.pbiernat.dev/egommerce/pricing-worker:dev
environment: environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce - DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017 - MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017
- EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672 - EVENTBUS_URL=amqp://guest:guest@api-eventbus:5672
order-worker: order-worker:
image: git.ego.cloudns.be/egommerce/order-worker:dev image: git.pbiernat.dev/egommerce/order-worker:dev
environment: environment:
- DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce - DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
- MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017 - MONGODB_URL=mongodb://mongodb:12345678@mongo-db:27017

View File

@@ -2,7 +2,7 @@ version: "3.9"
services: services:
api-gateway: api-gateway:
image: git.ego.cloudns.be/egommerce/api-gateway:latest image: git.pbiernat.dev/egommerce/api-gateway:latest
# command: # command:
# - '--providers.consulcatalog.refreshinterval=5s' # - '--providers.consulcatalog.refreshinterval=5s'
# FIXME ^^ only on config option: static/env/cli must be selected # FIXME ^^ only on config option: static/env/cli must be selected
@@ -19,7 +19,7 @@ services:
- api-logger-network - api-logger-network
api-registry: api-registry:
image: git.ego.cloudns.be/egommerce/api-registry:latest image: git.pbiernat.dev/egommerce/api-registry:latest
environment: environment:
- APP_NAME=api-registry - APP_NAME=api-registry
- APP_DOMAIN - APP_DOMAIN
@@ -32,7 +32,7 @@ services:
- api-logger-network - api-logger-network
api-eventbus: api-eventbus:
image: git.ego.cloudns.be/egommerce/api-eventbus:latest image: git.pbiernat.dev/egommerce/api-eventbus:latest
environment: environment:
# - RABBITMQ_NODENAME=api-eventbus # - RABBITMQ_NODENAME=api-eventbus
- RABBITMQ_ERLANG_COOKIE=rabbitmq - RABBITMQ_ERLANG_COOKIE=rabbitmq
@@ -48,7 +48,7 @@ services:
- api-logger-network - api-logger-network
api-cache: api-cache:
image: git.ego.cloudns.be/egommerce/api-cache:latest image: git.pbiernat.dev/egommerce/api-cache:latest
environment: environment:
- APP_NAME=api-cache - APP_NAME=api-cache
networks: networks:
@@ -56,7 +56,7 @@ services:
- api-logger-network - api-logger-network
api-logger: api-logger:
image: git.ego.cloudns.be/egommerce/api-logger:latest image: git.pbiernat.dev/egommerce/api-logger:latest
environment: environment:
- APP_NAME=api-logger - APP_NAME=api-logger
- APP_DOMAIN - APP_DOMAIN
@@ -129,7 +129,7 @@ services:
# API micro-services # API micro-services
identity-svc: identity-svc:
image: git.ego.cloudns.be/egommerce/identity-svc:latest image: git.pbiernat.dev/egommerce/identity-svc:latest
environment: environment:
- APP_NAME=identity-svc - APP_NAME=identity-svc
- APP_PATH_PREFIX=/identity - APP_PATH_PREFIX=/identity
@@ -150,7 +150,7 @@ services:
- mongodb-db-network - mongodb-db-network
basket-svc: basket-svc:
image: git.ego.cloudns.be/egommerce/basket-svc:latest image: git.pbiernat.dev/egommerce/basket-svc:latest
environment: environment:
- APP_NAME=basket-svc - APP_NAME=basket-svc
- APP_PATH_PREFIX=/basket - APP_PATH_PREFIX=/basket
@@ -174,7 +174,7 @@ services:
- mongodb-db-network - mongodb-db-network
catalog-svc: catalog-svc:
image: git.ego.cloudns.be/egommerce/catalog-svc:latest image: git.pbiernat.dev/egommerce/catalog-svc:latest
environment: environment:
- APP_NAME=catalog-svc - APP_NAME=catalog-svc
- APP_PATH_PREFIX=/catalog - APP_PATH_PREFIX=/catalog
@@ -196,7 +196,7 @@ services:
- mongodb-db-network - mongodb-db-network
pricing-svc: pricing-svc:
image: git.ego.cloudns.be/egommerce/pricing-svc:latest image: git.pbiernat.dev/egommerce/pricing-svc:latest
environment: environment:
- APP_NAME=pricing-svc - APP_NAME=pricing-svc
- APP_PATH_PREFIX=/pricing - APP_PATH_PREFIX=/pricing
@@ -218,7 +218,7 @@ services:
- mongodb-db-network - mongodb-db-network
order-svc: order-svc:
image: git.ego.cloudns.be/egommerce/order-svc:latest image: git.pbiernat.dev/egommerce/order-svc:latest
environment: environment:
- APP_NAME=order-svc - APP_NAME=order-svc
- APP_PATH_PREFIX=/order - APP_PATH_PREFIX=/order
@@ -241,7 +241,7 @@ services:
# Workers (Eventbus) # Workers (Eventbus)
basket-worker: basket-worker:
image: git.ego.cloudns.be/egommerce/basket-worker:latest image: git.pbiernat.dev/egommerce/basket-worker:latest
environment: environment:
- APP_NAME=basket-worker - APP_NAME=basket-worker
- APP_KV_NAMESPACE - APP_KV_NAMESPACE
@@ -259,7 +259,7 @@ services:
- mongodb-db-network - mongodb-db-network
catalog-worker: catalog-worker:
image: git.ego.cloudns.be/egommerce/catalog-worker:latest image: git.pbiernat.dev/egommerce/catalog-worker:latest
environment: environment:
- APP_NAME=catalog-worker - APP_NAME=catalog-worker
- DATABASE_URL - DATABASE_URL
@@ -275,7 +275,7 @@ services:
- mongodb-db-network - mongodb-db-network
pricing-worker: pricing-worker:
image: git.ego.cloudns.be/egommerce/pricing-worker:latest image: git.pbiernat.dev/egommerce/pricing-worker:latest
environment: environment:
- APP_NAME=pricing-worker - APP_NAME=pricing-worker
- DATABASE_URL - DATABASE_URL
@@ -291,7 +291,7 @@ services:
- mongodb-db-network - mongodb-db-network
order-worker: order-worker:
image: git.ego.cloudns.be/egommerce/order-worker:latest image: git.pbiernat.dev/egommerce/order-worker:latest
environment: environment:
- APP_NAME=order-worker - APP_NAME=order-worker
- DATABASE_URL - DATABASE_URL

View File

@@ -1,48 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: api-registry
labels:
app.kubernetes.io/name: api-registry
spec:
containers:
- name: api-registry
image: git.pbiernat.io/egommerce/api-registry:dev
resources:
limits:
cpu: "1"
memory: 512M
ports:
- containerPort: 8501
name: api-registry-ui
---
apiVersion: v1
kind: Service
metadata:
name: api-registry
spec:
selector:
app.kubernetes.io/name: api-registry
ports:
- name: api-registry-ui
protocol: TCP
port: 8501
targetPort: api-registry-ui
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-registry
spec:
replicas: 1
selector:
matchLabels:
app: api-registry
template:
metadata:
labels:
app: api-registry
spec:
containers:
- name: api-registry
image: git.pbiernat.io/egommerce/api-registry:dev

View File

@@ -1,28 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: api-registry
labels:
app.kubernetes.io/name: api-registry
spec:
containers:
- name: api-registry
image: git.pbiernat.io/egommerce/api-registry:prod
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-registry
spec:
replicas: 1
selector:
matchLabels:
app: api-registry
template:
metadata:
labels:
app: api-registry
spec:
containers:
- name: api-registry
image: git.pbiernat.io/egommerce/api-registry:prod

View File

@@ -1,78 +0,0 @@
# kind: Namespace
# apiVersion: v1
# metadata:
# name: egommerce
# labels:
# name: egommerce
# ---
apiVersion: v1
kind: Secret
metadata:
name: docker-credentials
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSJnaXQucGJpZXJuYXQuaW8iOiB7CgkJCSJhdXRoIjogImEyVmxaRzl6YmpwWGIyeHVaVFZQY0hKdlozSmhiVzkzWVc1cFpVQT0iCgkJfSwKCQkiaHR0cHM6Ly9pbmRleC5kb2NrZXIuaW8vdjEvIjogewoJCQkiYXV0aCI6ICJhMlZsWkc5emJqcGtiMk5yWlhKdmQyVTFiMkp5WVhwNSIKCQl9Cgl9Cn0=
type: kubernetes.io/dockerconfigjson
---
# apiVersion: v1
# kind: Pod
# metadata:
# name: api-registry
# labels:
# app.kubernetes.io/name: api-registry
# spec:
# hostNetwork: true
# containers:
# - name: api-registry
# image: git.pbiernat.dev/egommerce/api-registry:dev
# resources:
# limits:
# cpu: "1"
# memory: 512M
# ports:
# - containerPort: 8501
# name: api-registry-ui
# ---
apiVersion: v1
kind: Service
metadata:
name: api-registry
spec:
selector:
app.kubernetes.io/name: api-registry
ports:
- name: api-registry-ui
protocol: TCP
port: 8501
targetPort: api-registry-ui
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-registry
spec:
replicas: 1
selector:
matchLabels:
app: api-registry
template:
metadata:
labels:
app: api-registry
spec:
hostNetwork: true
hostAliases:
- ip: "127.0.0.1"
hostnames:
- "git.pbiernat.io"
dnsPolicy: ClusterFirstWithHostNet
restartPolicy: Always
containers:
- name: api-registry
image: git.pbiernat.dev/egommerce/api-registry:dev
resources:
limits:
cpu: "1"
memory: 512M
ports:
- containerPort: 53
- containerPort: 8501

View File

@@ -0,0 +1,111 @@
upstream egommerce-api-gw {
server 127.0.0.1:40056;
}
upstream egommerce-api-gw-dashboard {
server 127.0.0.1:40057;
}
upstream egommerce-api-registry-ui {
server 127.0.0.1:40058;
}
upstream egommerce-api-eventbus-mngmt {
server 127.0.0.1:40059;
}
server {
listen [2a01:4f9:3a:2910::271]:20271 ssl;
ssl_certificate /home/keedosn/egommerce/deploy/certs/api-gateway/gateway.cert;
ssl_certificate_key /home/keedosn/egommerce/deploy/certs/api-gateway/gateway.key;
server_name keshop.bieda.it;
# Traefik redirects
location /dashboard {
if ($http_referer ~ (/gateway)) {
proxy_pass http://egommerce-api-gw-dashboard;
}
}
location /api {
if ($http_referer ~ (/gateway)) {
proxy_pass http://egommerce-api-gw-dashboard;
}
}
location /gateway/ {
proxy_pass http://egommerce-api-gw-dashboard/dashboard/;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 0;
}
# Consul redirects
location /ui {
if ($http_referer ~ (/registry)) {
proxy_pass http://egommerce-api-registry-ui;
}
}
location /v1 {
if ($http_referer ~ (/registry)) {
proxy_pass http://egommerce-api-registry-ui;
}
}
location /registry {
proxy_pass http://egommerce-api-registry-ui;
proxy_http_version 1.1;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 0;
}
# RabbitMQ Mngmt redirects
location /eventbus {
return 302 /eventbus/;
}
location ~* /eventbus/api/(.*?)/(.*) {
proxy_pass http://egommerce-api-eventbus-mngmt/api/$1/%2F/$2?$query_string;
proxy_http_version 1.1;
proxy_buffering off;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~* /eventbus/(.*) {
rewrite ^/eventbus/(.*)$ /$1 break;
proxy_pass http://egommerce-api-eventbus-mngmt;
proxy_http_version 1.1;
proxy_buffering off;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Pass all requests to the API Gateway
location / {
proxy_pass https://egommerce-api-gw;
proxy_http_version 1.1;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 0;
}
error_log /var/log/nginx/keshop.bieda.it-error.log;
access_log /var/log/nginx/keshop.bieda.it-access.log combined;
}

View File

@@ -58,6 +58,7 @@ server {
location /registry { location /registry {
proxy_pass http://egommerce-api-registry-ui; proxy_pass http://egommerce-api-registry-ui;
proxy_http_version 1.1;
proxy_pass_header Server; proxy_pass_header Server;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
@@ -73,6 +74,7 @@ server {
} }
location ~* /eventbus/api/(.*?)/(.*) { location ~* /eventbus/api/(.*?)/(.*) {
proxy_pass http://egommerce-api-eventbus-mngmt/api/$1/%2F/$2?$query_string; proxy_pass http://egommerce-api-eventbus-mngmt/api/$1/%2F/$2?$query_string;
proxy_http_version 1.1;
proxy_buffering off; proxy_buffering off;
proxy_pass_header Server; proxy_pass_header Server;
proxy_set_header Host $host; proxy_set_header Host $host;
@@ -83,6 +85,7 @@ server {
location ~* /eventbus/(.*) { location ~* /eventbus/(.*) {
rewrite ^/eventbus/(.*)$ /$1 break; rewrite ^/eventbus/(.*)$ /$1 break;
proxy_pass http://egommerce-api-eventbus-mngmt; proxy_pass http://egommerce-api-eventbus-mngmt;
proxy_http_version 1.1;
proxy_buffering off; proxy_buffering off;
proxy_pass_header Server; proxy_pass_header Server;
proxy_set_header Host $host; proxy_set_header Host $host;
@@ -91,6 +94,18 @@ server {
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $scheme;
} }
# Pass all requests to the API Gateway
location / {
proxy_pass https://egommerce-api-gw;
proxy_http_version 1.1;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 0;
}
error_log /var/log/nginx/admin-egommerce.pbiernat.dev-error.log; error_log /var/log/nginx/admin-egommerce.pbiernat.dev-error.log;
access_log /var/log/nginx/admin-egommerce.pbiernat.dev-access.log combined; access_log /var/log/nginx/admin-egommerce.pbiernat.dev-access.log combined;
} }
@@ -102,17 +117,7 @@ server {
# #
# server_name egommerce.pbiernat.dev; # server_name egommerce.pbiernat.dev;
# #
# # Pass all requests to the API Gateway #
# location / {
# proxy_pass https://egommerce-api-gw;
# proxy_http_version 1.1;
# proxy_pass_header Server;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
# client_max_body_size 0;
# }
# #
# error_log /var/log/nginx/egommerce.pbiernat.dev-error.log; # error_log /var/log/nginx/egommerce.pbiernat.dev-error.log;
# access_log /var/log/nginx/egommerce.pbiernat.dev-access.log combined; # access_log /var/log/nginx/egommerce.pbiernat.dev-access.log combined;

View File

@@ -1,23 +1,23 @@
upstream egommerce-api-gw { upstream egommerce-api-gw {
server 127.0.0.1:48443; server 127.0.0.1:40056;
} }
upstream egommerce-api-gw-dashboard { upstream egommerce-api-gw-dashboard {
server 127.0.0.1:48444; server 127.0.0.1:40057;
} }
upstream egommerce-api-registry-ui { upstream egommerce-api-registry-ui {
server 127.0.0.1:48445; server 127.0.0.1:40058;
} }
upstream egommerce-api-eventbus-mngmt { upstream egommerce-api-eventbus-mngmt {
server 127.0.0.1:48446; server 127.0.0.1:40059;
} }
server { server {
listen 443 ssl; listen 443 ssl;
ssl_certificate /home/keedosn/workspace/golang/src/git.ego.cloudns.be/egommerce/stack/deploy/certs/api-gateway/localhost.cert; ssl_certificate /home/keedosn/workspace/golang/src/git.pbiernat.dev/egommerce/stack/deploy/certs/api-gateway/localhost.cert;
ssl_certificate_key /home/keedosn/workspace/golang/src/git.ego.cloudns.be/egommerce/stack/deploy/certs/api-gateway/localhost.key; ssl_certificate_key /home/keedosn/workspace/golang/src/git.pbiernat.dev/egommerce/stack/deploy/certs/api-gateway/localhost.key;
server_name egommerce.local; server_name egommerce.local;

View File

@@ -1,11 +0,0 @@
#!/bin/sh
# RUN IT FORM THE REPO ROOT DIR
echo "Starting egommerce docker stack..."
docker stack deploy --with-registry-auth --detach=false \
--compose-file deploy/docker/stack.yml \
--compose-file deploy/docker/stack.dev.yml \
--compose-file deploy/docker/stack.dev.local.yml \
egommerce
echo "Done."

View File

@@ -1,12 +0,0 @@
#!/bin/sh
# RUN IT FORM THE REPO ROOT DIR
echo "Starting egommerce k8s stack..."
kubectl apply -f deploy/k8s/stack.yml
# kubectl apply -f deploy/k8s/stack.prod.yml
# kubectl apply -f deploy/k8s/stack.dev.yml
# kubectl apply -f deploy/k8s/stack.dev.local.yml
echo "Done."

11
deploy/start-stack.sh Normal file
View File

@@ -0,0 +1,11 @@
#!/bin/sh
# RUN IT FORM THE REPO ROOT DIR
echo "Starting egommerce stack..."
docker stack deploy --with-registry-auth \
--compose-file deploy/egommerce-stack.yml \
--compose-file deploy/egommerce-stack.dev.yml \
--compose-file deploy/egommerce-stack.dev.local.yml \
egommerce
echo "Done."