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