# Clone the repo and submodules:
git clone git@github.com:Oak10/pd-root.git --recurse-submodules
# update submodules (master branch)
git submodule foreach 'git fetch && git checkout master && git pull'
docker-compose up -d
- create realm (demo-real), users (angular-demo, spring-boot-demo), and roles (ROLE_APP for all users) at keycloak
- update token generated in keycloak (spring services - KEYCLOAK_CREDENTIALS_SECRET) || OR || upload realm in keycloak UI (files in keycloak dir)
- Configure smtp (use google) and update variables (mail service)
# base:
http://{service}.{environment}.pd.com
# Exp (access keycloak):
http://keycloak.dev.pd.com/
# Exp (dev env - test (recommendation -> kafka -> mailservice -> mail)):
http://recommendation.dev.pd.com/kafka/produce
# Exp (localhost)
http://localhost:8081/kafka/produce
#EXP (allmoviesservice)
http://localhost:8090/v1/search/movie?movieName=Jack+Reacher
docker build -t claudiooak/keycloak:21.1 -f DockerfileKeycloak .
docker build -t claudiooak/mailservice:0.0.1 -f Dockerfile .
docker push claudiooak/mailservice:0.0.1
docker build -t claudiooak/recommendationservice:0.0.1 -f Dockerfile .
docker push claudiooak/recommendationservice:0.0.1
docker build -t claudiooak/moviesstorageservice:0.0.1 -f Dockerfile .
docker push claudiooak/moviesstorageservice:0.0.1
docker build -t claudiooak/frontendpd:0.0.2 -f Dockerfile .
docker push claudiooak/frontendpd:0.0.2
docker build -t claudiooak/allmoviesservice:0.0.1 -f Dockerfile .
docker push claudiooak/allmoviesservice:0.0.1
docker stack deploy -c swarm-traefik.yml traefik
docker stack rm traefik
CI_COMMIT_REF_SLUG=22 docker stack deploy -c helloworld.yml helloworld22
#remove service:
# docker service rm prd_moviesstorage-service
ansible-galaxy collection install community.docker
# (destination host)
pip install jsondiff
# (playbook) docker network create --driver=overlay --attachable traefik
# Install Traefik (Only once for all swarm stacks deployed - production exp):
ansible-playbook -i inventory/prod/hosts.yml --diff --extra-vars "force_restart=true" playbooks/traefik-swarm.yml
# Install Jaeger, Postgres, Kafka, and Keycloak ("once" for each stack - production exp)
ansible-playbook -i inventory/prod/hosts.yml --diff playbooks/infra-swarm.yml
ansible-playbook -i pd-ansible/inventory/dev/hosts.yml --diff pd-ansible/playbooks/traefik-swarm.yml
ansible-playbook -i pd-ansible/inventory/dev/hosts.yml --diff pd-ansible/playbooks/infra-swarm.yml
ansible-playbook -i pd-ansible/inventory/dev/hosts.yml --diff pd-ansible/playbooks/mailservice-swarm.yml
ansible-playbook -i pd-ansible/inventory/dev/hosts.yml --diff pd-ansible/playbooks/recommendationservice-swarm.yml
ansible-playbook -i pd-ansible/inventory/dev/hosts.yml --diff pd-ansible/playbooks/moviesstorageservice-swarm.yml
ansible-playbook -i pd-ansible/inventory/dev/hosts.yml --diff pd-ansible/playbooks/frontendpd-swarm.yml
ansible-playbook -i pd-ansible/inventory/dev/hosts.yml --diff pd-ansible/playbooks/allmoviesservice-swarm.yml
Login to Gmail
-> Manage your Google Account
-> Security
-> Search on google account "Palavras-passe de apps" || "App Passwords"
-> Select app with a custom name
-> Click on Generate