Categorygithub.com/ZMS-DevOps/search-service
modulepackage
1.2.0
Repository: https://github.com/zms-devops/search-service.git
Documentation: pkg.go.dev

# README

Example

Turn on ingress

minikube addons enable ingress

Create and delete namespace:

kubectl create namespace backend
kubectl delete namespace backend

Sve kubernetes fajlove pokrenuti da dobijemo configmap, secret i mongo service i statefulSet

kubectl -n backend apply -f mongo-configmap.yml
kubectl -n backend apply -f mongo-secret.yml
kubectl -n backend apply -f search-configmap.yml 
kubectl -n backend apply -f mongo.yml
kubectl apply -f search-service.yml 

Get pods:

kubectl -n backend get pods
kubectl get pods

Testing load balancing and service:

kubectl -n backend run -it --rm  --image curlimages/curl:8.00.1 curl -- sh
kubectl run -it --rm  --image curlimages/curl:8.00.1 curl -- sh

Inside the container execute curl http://hotel:8083/hotels (hotel jer je to naziv servisa)

 curl http://search:8085/search/health
665337ede5acebe3a513149f
 curl http://search:8085/search/search/all
 
 curl --location 'http://search:8085/search/all' \
--header 'Content-Type: application/json' \
--data '{
    "location": "Location",
    "guest_number": 1,
    "start": "2024-05-15T00:00:00Z",
    "end": "2024-05-16T00:00:00Z",
    "min_price": 200.0,
    "max_price": 100000000.0
}'

 
 
 curl http://search:8085/search/search -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg" 
 
 curl http://hotel/hotel/accommodation/6643a56c9dea1760db469b7b
 curl http://hotel/hotel/accommodation/6646310540e378b4f5ac080e -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg"
 
 curl -X POST http://hotel/hotel/accommodation -d '{"name": "New Hotel"}' -H "Content-Type: application/json"
 curl -X POST http://hotel/hotel/accommodation -d '{"name": "Hotel Name", "location": "Location", "benefits": ["Benefit 1", "Benefit 2"], "photos": ["Photo URL 1", "Photo URL 2"], "guest_number": {"min": 1, "max": 2}, "default_price": {"price": 100.50, "type": "PerApartmentUnit"}}' -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg"
 
 curl -X PUT http://hotel/hotel/accommodation/ID -d '{"name": "Updated Hotel Name"}' -H "Content-Type: application/json"
 curl -X PUT http://hotel/hotel/accommodation/6643cacecd082bc7c053b3d5 -d '{"name": "Updated Hotel Name", "location": "Updated Location", "benefits": ["Benefit 1", "Benefit 2"], "photos": ["Photo URL 1", "Photo URL 2"], "guest_number": {"min": 1, "max": 2}, "default_price": {"price": 100.50, "type": "PerApartmentUnit"}}' -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg"

 curl -X DELETE http://hotel/hotel/accommodation/6643cacecd082bc7c053b3d5
 curl -X DELETE http://hotel/hotel/accommodation/6643cacecd082bc7c053b3d5 -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg"

Update price
curl -X PUT http://hotel/hotel/accommodation/price/6643a56c9dea1760db469b7b -d '{"date_range": {"start": "2024-05-15T00:00:00Z", "end": "2024-05-20T00:00:00Z"}, "price": 100.50, "type": "PerGuest"}' -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg"
curl -X PUT http://hotel/hotel/accommodation/price/66467094ea31a50a941a503d -d '{"price": 555.50, "type": "PerApartmentUnit"}' -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg"
curl -X PUT http://hotel/hotel/accommodation/price/66467094ea31a50a941a503d -d '{"price": 555.50, "type": "PerApartmentUnit"}' -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg"
curl -X PUT http://hotel/hotel/accommodation/price/66467094ea31a50a941a503e -d '{"price": 12555.50}' -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg"
curl -X PUT http://hotel/hotel/accommodation/price/66467094ea31a50a941a503e -d '{}' -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg"

eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0dTVBams0XzF5ZHI4SFREVk5MUFp1RVV5SERIS2ZmbDR4clNoYnZpbUxVIn0.eyJleHAiOjE3MTY0MDQxMDEsImlhdCI6MTcxNjQwMzgwMSwianRpIjoiZjAxNmI2ZmUtOTc3Yy00YTk1LTk2NDAtYTVkYTAwMjJjZGM3IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvSXN0aW8iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYzk0ZmFhNDItMGM3Ni00NWQzLWFhOTktMDhlODZhZjRmMjczIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiSXN0aW8iLCJzZXNzaW9uX3N0YXRlIjoiNDc5ZTQxYjUtYzgzZi00M2EwLTgxNmQtNjIzMjI0NGU0ZDliIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIvKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJhZG1pbiIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1pc3RpbyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsInNpZCI6IjQ3OWU0MWI1LWM4M2YtNDNhMC04MTZkLTYyMzIyNDRlNGQ5YiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTWlsYW4gQWpkZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJob3RlbC1hZG1pbiIsImdpdmVuX25hbWUiOiJNaWxhbiIsImZhbWlseV9uYW1lIjoiQWpkZXIiLCJlbWFpbCI6ImFqZGVyLm1pbGFuMjAwMEBnbWFpbC5jb20ifQ.VU_KMZ8txMfaD8NGx9x88ca-4-SRyofjBXkTqWn3X3sBPSwmog1udh4s-B3JTugWxmYnxLCeVszn_70wsWDGZyrksNqv1QZ-0rZVN_WDCd5w6PFxKTXXFJcjQ1L4yhGsdL-sk6h-Z4CccYqEZg_RVw39DAGDYt_JOWb_QU0G-IDDwrwXzhWdjhIewmx1RdZH37OKMN3HbFV35-GU2Usn7JlhodG6sUw_5zz2Llu94A9AbIQ8EDDTsHYNR2YVlnJm9L-Un0pxTkwmLd_dCrEFSXWjrWEfxtRo_Z6SaNzJTklLczU9uHlfP_NNzVv6QklxttgVsDfUQhjBdYODXM-iGg

Get JWT token for user

curl -X POST -d "client_id=Istio" -d "username=hotel-user" -d "password=test" -d "grant_type=password" "http://keycloak.default.svc.cluster.local:8080/realms/Istio/protocol/openid-connect/token"

Get JWT token for admin

 curl -X POST -d "client_id=Istio" -d "username=hotel-admin" -d "password=test" -d "grant_type=password" "http://keycloak.default.svc.cluster.local:8080/realms/Istio/protocol/openid-connect/token"

Ingress setup: Deploy ingress:

kubectl -n backend apply -f ingress.yml
kubectl -n backend describe ingress demo-ingress

Apply za ceo ili vise direktorijuma

kubectl apply -R -f k8s
kubectl apply -R -f istio

Ponisti prethodnu verziju i apply novu

kubectl replace --force -f ingress.yml
kubectl replace --force -f istio/authorizationPolicy.yaml
kubectl replace --force -f k8s/search-service.yml
kubectl replace --force -f k8s/search-configmap.yml

Keycloak

minikube addons enable ingress
kubectl create -f https://raw.githubusercontent.com/keycloak/keycloak-quickstarts/latest/kubernetes/keycloak.yaml
minikube tunnel

browser: localhost:8080 (username: admin, password: admin)

Create Istio realm
Create Istio client 
Create hotel-user , hotel-admin (password: test)

docker build -t devopszms2024/zms-devops-search-service:latest . docker push devopszms2024/zms-devops-search-service:latest kubectl -n backend replace --force -f k8s kubectl -n backend replace --force -f istio kubectl replace --force -f k8s/search-service.yml kubectl get pods -n backend -w

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author