- maven
- java 11
- mysql/mariadb
- curl (or similar)
- jq (to a best view of results)
- docker
- minikube (or similar)
- create database db_todolist
- create table task( id int auto_increment primary key, task_name varchar(50), task_status tinyint, task_description varchar(256), task_init_date date, task_final_date date) default charset=utf8;
- database must be running = adjuste your database connection on src/main/resorces/applicaiton.properties
- mvn clean package
- java -jar target/agenda-1.0.0.jar
- task_status: pending or completed
- POST (insert)
- curl -H 'Content-Type: application/json' -d '{"task_name":"task1","task_status":"pending","task_description":"task1 desc","task_init_date":"yyyy-mm-dd","task_final_date":null}' -X POST http://127.0.0.1:25000/v0/to-do/ | jq
- GET (query)
- curl -H 'Content-Type: application/json' -X GET http://127.0.0.1:25000/v0/to-do/ | jq
- curl -H 'Content-Type: application/json' -X GET http://127.0.0.1:25000/v0/to-do/ID | jq
- PUT (update)
- curl -H 'Content-Type: application/json' -d '{"id":"ID","task_name":"task1","task_status":"pending","task_description":"task1 desc","task_init_date":"yyyy-mm-dd","task_final_date":null}' -X PUT http://127.0.0.1:25000/v0/to-do/ID | jq
- DELETE
- curl -H 'Content-Type: application/json' -X DELETE http://127.0.0.1:25000/v0/to-do/ID
- build application imagem container (image exists on docker.io):
- docker image build -f Dockerfile -t andreibr/todolist:1.0 .
- create "cluster" swarm and deploy stack solution:
- docker swarm init
- docker service deploy -c docker-compose.yml todoCluster
- docker service ls
- with minikube or similar, execute:
-
kubectl create -f kubernetes/db/permissoes.yaml
-
kubectl create -f kubernetes/db/statefulset.yaml
-
kubectl create -f kubernetes/db/servico-banco.yaml
-
kubectl create -f kubernetes/app/deployment.yaml
-
kubectl create -f kubernetes/app/servico-aplicacao.yaml
-
minikube service servico-aplicacao --url (use this value as addrees on your tests)
-
- Services:
- /actuator
- /actuator/metrics
- /actuator/metrics/"some metric"
- /actuator/health
- /actuator/info
- /actuator/prometheus
- port 4000: glowroot apm (https://glowroot.org/)