Skip to content

Commit

Permalink
Added sections to run in K8s
Browse files Browse the repository at this point in the history
  • Loading branch information
camba1 committed Dec 26, 2020
1 parent 93316e3 commit e52d2a7
Show file tree
Hide file tree
Showing 2 changed files with 249 additions and 112 deletions.
275 changes: 168 additions & 107 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,32 +1,180 @@

#DockerHub
# Micro

# start micro server
microserve:
micro server

# Login to micro server
micrologin:
micro login --username admin --password micro

# -------------------------------------------------------------------------------------

# Running Micro as a container

## Start micro container, databases and broker. Finally login to micro in the container
microserveup:
docker-compose up -d microserver
docker-compose up -d pgdb timescaledb redis arangodb nats
sleep 20s
docker exec microservercont make micrologin

## Start the whole application running in Docker
microup:
docker-compose up -d microserver
docker-compose up -d pgdb timescaledb redis arangodb nats
sleep 20s
docker exec microservercont make micrologin
docker exec microservercont make microstartsrvs
docker-compose up web

## Stop application running in Docker
microdown:
docker-compose down

# -------------------------------------------------------------------------------------

# Running Micro in K8s

## Run the whole application in Kubernetes, micro helm chart must already be installed
microk8sup:
kubectl apply -f cicd/K8s/dbsAndBroker -n micro
make micrologin
#make microstartK8s
make microstartsrvs
kubectl apply -f cicd/K8s/ingress -n micro
kubectl apply -f cicd/K8s/web -n micro

## Stop the application running in K8s
microK8sdown:
make microkillsrvs
kubectl delete -f cicd/K8s/dbsAndBroker -n micro
kubectl delete -f cicd/K8s/ingress -n micro
kubectl delete -f cicd/K8s/web -n micro

# K8 Misc
kapplyingress:
kubectl apply -f cicd/K8s/ingress -n micro
kapplyweb:
kubectl apply -f cicd/K8s/web -n micro
kdelete:
kubectl delete -f $FOLDER -n micro

# -------------------------------------------------------------------------------------

# Run the whole application locally, micro server must already be running locally
microlocalup:
#micro server
docker-compose up -d pgdb timescaledb redis arangodb nats
sleep 20s
make micrologin
make microstartsrvslocal
docker-compose up web

microlocaldown:
make microkillsrvs
docker-compose down

# -------------------------------------------------------------------------------------

# Start individual services running in Docker or Kubernetes

## Start user service
microusersrv:
micro run --env_vars 'POSTGRES_CONNECT=postgresql://postgres:TestDB@home2@pgdb/appuser,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false' --name user user/server

## Start audit service
microauditsrv:
micro run --env_vars 'DB_CONNECT=postgresql://postgres:TestDB@home2@timescaledb/postgres,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats' --name audit audit/server

## Start product service
microproductsrv:
micro run --env_vars 'DB_ADDRESS=arangodb:8529,DB_USER=productUser,DB_PASS=TestDB@home2,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false' --name product product/server

## Start customer service
microcustomersrv:
micro run --env_vars 'DB_ADDRESS=arangodb:8529,DB_USER=customerUser,DB_PASS=TestDB@home2,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false' --name customer customer/server

## Start promotion service
micropromotionsrv:
micro run --env_vars 'POSTGRES_CONNECT=postgresql://postgres:TestDB@home2@pgdb/postgres,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false,MICRO_STORE=redis,MICRO_STORE_ADDRESS=redis://:TestDB@home2@redis:6379' --name promotion promotion/server

# -------------------------------------------------------------------------------------

# Start all services at once in Docker or K8s
microstartsrvs:
micro run --env_vars 'POSTGRES_CONNECT=postgresql://postgres:TestDB@home2@pgdb/appuser,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false' --name user user/server
sleep 12s
micro run --env_vars 'DB_CONNECT=postgresql://postgres:TestDB@home2@timescaledb/postgres,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats' --name audit audit/server
sleep 12s
micro run --env_vars 'DB_ADDRESS=arangodb:8529,DB_USER=productUser,DB_PASS=TestDB@home2,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false' --name product product/server
sleep 12s
micro run --env_vars 'DB_ADDRESS=arangodb:8529,DB_USER=customerUser,DB_PASS=TestDB@home2,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false' --name customer customer/server
sleep 12s
micro run --env_vars 'POSTGRES_CONNECT=postgresql://postgres:TestDB@home2@pgdb/postgres,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false,MICRO_STORE=redis,MICRO_STORE_ADDRESS=redis://:TestDB@home2@redis:6379' --name promotion promotion/server

# -------------------------------------------------------------------------------------

# Delete all services
microkillsrvs:
micro kill user
micro kill audit
micro kill product
micro kill customer
micro kill promotion

# -------------------------------------------------------------------------------------

# Delete all service test clients
microkillclis:
micro kill usercli
micro kill productcli
micro kill customercli
micro kill promotioncli

# -------------------------------------------------------------------------------------

# Start all the services running locally
microstartsrvslocal:
micro run --env_vars 'POSTGRES_CONNECT=postgresql://postgres:TestDB@home2@localhost/appuser?application_name=userSrv,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@localhost,DISABLE_AUDIT_RECORDS=false' --name user user/server
micro run --env_vars 'DB_CONNECT=postgresql://postgres:TestDB@home2@localhost:5433/postgres?application_name=auditSrv,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@localhost' --name audit audit/server
micro run --env_vars 'DB_ADDRESS=localhost:8529,DB_USER=productUser,DB_PASS=TestDB@home2,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@localhost,DISABLE_AUDIT_RECORDS=false' --name product product/server
micro run --env_vars 'DB_ADDRESS=localhost:8529,DB_USER=customerUser,DB_PASS=TestDB@home2,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@localhost,DISABLE_AUDIT_RECORDS=false' --name customer customer/server
micro run --env_vars 'POSTGRES_CONNECT=postgresql://postgres:TestDB@home2@localhost/postgres?application_name=promotionSrv,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@localhost,DISABLE_AUDIT_RECORDS=false,MICRO_STORE=redis,MICRO_STORE_ADDRESS=redis://:TestDB@home2@localhost:6379' --name promotion promotion/server


# DockerHub build and push images
hubpush:
docker build -t $$SERVICE -f $$FOLDER/Dockerfile .
docker tag $$SERVICE bolbeck/goTempM_$$SERVICE
docker push bolbeck/goTempM_$$SERVICE
docker tag $$SERVICE bolbeck/gotempm_$$SERVICE
docker push bolbeck/gotempm_$$SERVICE

hubpushcontext:
docker build -t $$SERVICE -f ./$$FOLDER/Dockerfile ./$$FOLDER
docker tag $$SERVICE bolbeck/goTempM_$$SERVICE
docker push bolbeck/goTempM_$$SERVICE

docker tag $$SERVICE bolbeck/gotempm_$$SERVICE
docker push bolbeck/gotempm_$$SERVICE

# -------------------------------------------------------------------------------------
# Web App

# Directly (dev)
## Start directly (dev)
runweb:
npm run dev

# Docker
## Docker
docbuildweb:
docker build -t goTempMweb -f ./web/Dockerfile ./web
docrunweb:
docker run -p 3000:3000 --name goTempMwebcont goTempMweb

#Docker-compose
## Docker-compose
composeupweb:
docker-compose up web


# -------------------------------------------------------------------------------------

# Compile proto files
genpromotionproto:
protoc --proto_path=$$GOPATH/src:. --micro_out=source_relative:.. --go_out=. --go_opt=paths=source_relative promotion/proto/promotion.proto
Expand All @@ -39,108 +187,21 @@ genproductproto:
genstandardFieldsproto:
protoc --proto_path=$$GOPATH/src:. --micro_out=source_relative:.. --go_out=. --go_opt=paths=source_relative globalProtos/standardFields.proto

# Call service through the micro gateway
# -------------------------------------------------------------------------------------

# Curl services

## Services running locally
promoviaapigateway:
curl --location --request POST 'http://localhost:8080/goTempM.api.promotion/promotionSrv/getPromotions' \
curl --location --request POST 'http://localhost:8080/promotion/promotionSrv/getPromotions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyIjp7ImlkIjoyMzQzNzI1MzkxMjkxNjE4MzA1LCJjb21wYW55IjoiRHVjayBJbmMuIn0sImV4cCI6MTU5NzMzNTMzNywiaWF0IjoxNTk3MjQ4OTM3LCJpc3MiOiJnb1RlbXAudXNlcnNydiJ9.QWAvvoXQHv_Cf48PTrjK9uRvrdEblNvFOxQWjNcX79U' \
--data-raw '{"name":"Promo1", "customerId": "ducksrus"}'

# Call service using the micro gateway running behind the ingress in K8s
#authviaapigateway:
# curl --location --request POST 'http://goTempM.tst/goTempM.api.user/userSrv/auth' \
# --header 'Content-Type: application/json' \
# --data-raw '{"pwd":"1234","email":"[email protected]"}'

# K8s
#
#startkub:
# kubectl apply -f cicd/K8s/services
# kubectl apply -f cicd/K8s/web
# kubectl apply -f cicd/K8s/ingress
#stopkub:
# kubectl delete -f cicd/K8s/ingress
# kubectl delete -f cicd/K8s/web
# kubectl delete -f cicd/K8s/services


#kapplyingress:
# kubectl apply -f cicd/K8s/ingress
#kapplyservices:
# kubectl apply -f cicd/K8s/services
#kapplyclients:
# kubectl apply -f cicd/K8s/clients
#kapplyweb:
# kubectl apply -f cicd/K8s/web
#kdelete:
# kubectl delete -f $FOLDER
#
#kstartSubset:
# kubectl apply $(ls cicd/K8s/services/audit*.yaml | awk ' { print " -f " $1 } ')


# Misc

#encode:
# echo -n 'data' | base64
#decode:
# echo -n ZGF0YQ== | base64 -d

# Micro

# start micro server
microserve:
micro server

# Login to micro server
micrologin:
micro login --username admin --password micro

# Start micro container, databases and broker. Finally login to micro in the container
microserveup:
docker-compose up -d microserver
docker-compose up -d pgdb timescaledb redis arangodb nats
sleep 20s
docker exec microservercont make micrologin

# Start user service
microusersrv:
micro run --env_vars POSTGRES_CONNECT=postgresql://postgres:TestDB@home2@pgdb/appuser?application_name=userSrv,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false --name usersrv user/server
# Call service using running behind the ingress in K8s
authviaapigateway:
curl --location --request POST 'http://goTempM.tst/user/userSrv/auth' \
--header 'Content-Type: application/json' \
--data-raw '{"pwd":"1234","email":"[email protected]"}'

# Start audit service
microauditsrv:
micro run --env_vars DB_CONNECT=postgresql://postgres:TestDB@home2@timescaledb/postgres?application_name=auditSrv,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@localhost --name auditsrv audit/server

# Start product service
microproductsrv:
micro run --env_vars DB_ADDRESS=arangodb:8529,DB_USER=productUser,DB_PASS=TestDB@home2,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false --name productsrv product/server

# Start customer service
microcustomersrv:
micro run --env_vars DB_ADDRESS=arangodb:8529,DB_USER=customerUser,DB_PASS=TestDB@home2,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false --name customersrv customer/server

# Start promotion service
micropromotionsrv:
micro run --env_vars POSTGRES_CONNECT=postgresql://postgres:TestDB@home2@pgdb/postgres?application_name=promotionSrv,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false,MICRO_STORE=redis,MICRO_STORE_ADDRESS=redis://:TestDB@home2@redis:6379 --name promotionsrv promotion/server

# Start all services at once
microstartsrvs:
micro run --env_vars POSTGRES_CONNECT=postgresql://postgres:TestDB@home2@pgdb/appuser?application_name=userSrv,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false --name usersrv user/server
sleep 12s
micro run --env_vars DB_CONNECT=postgresql://postgres:TestDB@home2@timescaledb/postgres?application_name=auditSrv,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@localhost --name auditsrv audit/server
sleep 12s
micro run --env_vars DB_ADDRESS=arangodb:8529,DB_USER=productUser,DB_PASS=TestDB@home2,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false --name productsrv product/server
sleep 12s
micro run --env_vars DB_ADDRESS=arangodb:8529,DB_USER=customerUser,DB_PASS=TestDB@home2,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false --name customersrv customer/server
sleep 12s
micro run --env_vars POSTGRES_CONNECT=postgresql://postgres:TestDB@home2@pgdb/postgres?application_name=promotionSrv,MICRO_BROKER=nats,MICRO_BROKER_ADDRESS=natsUser:TestDB@home2@nats,DISABLE_AUDIT_RECORDS=false,MICRO_STORE=redis,MICRO_STORE_ADDRESS=redis://:TestDB@home2@redis:6379 --name promotionsrv promotion/server

# Start the whole application running in containers
microup:
docker-compose up -d microserver
docker-compose up -d pgdb timescaledb redis arangodb nats
sleep 20s
docker exec microservercont make micrologin
docker exec microservercont make microstartsrvs
docker-compose up web

Loading

0 comments on commit e52d2a7

Please sign in to comment.