Gránit Bank UAT telepítés
VA Gránit UAT telepítési útmutató
UAT vagy csak image eljuttatása a gránithoz, előfeltétele, hogy VPN-re csatlakoztál valaha és docker login (docker login harbor.miltonbank.local) működött.
Release scriptek létrehozása
Hozzuk létre gépünkön két scriptet.(pl.: genai_docker_pull_and_retag.sh, genai_docker_push.sh)
Script, ami lehúzza a szükséges imagekat és újra tag-eli:
#!/bin/sh
# Check if exactly one argument is provided
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <version_tag>"
exit 1
fi
# Assign the first argument to VERSION_TAG
VERSION_TAG="$1"
# Function to handle Docker pull and tag commands
pull_and_tag () {
echo "Starting to pull $1..."
docker pull $1
if [ $? -ne 0 ]; then
echo "Error pulling $1"
return 1
fi
echo "Successfully pulled $1"
echo "Starting to tag $1 as $2..."
docker tag $1 $2
if [ $? -ne 0 ]; then
echo "Error tagging $2"
return 1
fi
echo "Successfully tagged $2"
}
# Pull and tag each image individually
pull_and_tag registry.gitlab.com/gbsolutions/granit-bank/virtualis-asszisztens/backend/backend-service:$VERSION_TAG harbor.miltonbank.local/granitbot/backend-service:$VERSION_TAG
pull_and_tag registry.gitlab.com/gbsolutions/granit-bank/virtualis-asszisztens/backend/python-service:$VERSION_TAG harbor.miltonbank.local/granitbot/python-service:$VERSION_TAG
pull_and_tag registry.gitlab.com/gbsolutions/granit-bank/virtualis-asszisztens/backend/webcomponent-spa:$VERSION_TAG harbor.miltonbank.local/granitbot/webcomponent-service:$VERSION_TAG
Script, ami felpusholja a Gránitbank harborba a szükséges imagekat:
#!/bin/bash
# Ensure exactly one argument is provided
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <version_tag>"
exit 1
fi
# Assign the provided argument to VERSION_TAG
VERSION_TAG="$1"
# Function to log actions
log_msg() {
echo "$@"
}
# Push operations for each image
log_msg "Attempting to push images with tag $VERSION_TAG..."
docker push "harbor.miltonbank.local/granitbot/backend-service:$VERSION_TAG" || { echo "Failed to push backend-service"; exit 1; }
docker push "harbor.miltonbank.local/granitbot/python-service:$VERSION_TAG" || { echo "Failed to #push python-service"; exit 1; }
docker push "harbor.miltonbank.local/granitbot/webcomponent-service:$VERSION_TAG" || { echo "Failed to push webcomponent-service"; exit 1; }
log_msg "Successfully pushed all images with tag $VERSION_TAG."
Környezet struktúrája:
Root-ba hozzánk tartozik a /granitbot/UAT mappa. Ezen belül vannak definiálva a podokhoz tartozó configok. (Pl.: backend-service, python-service, client-service) Telepítéshez általában config fájlt említenék meg. Az egyik a deployment.yml, ha új verziót szeretnénk kirakni, itt kell átírni podonként a verziót. A másik a configmap.yml, itt módosítunk vagy adunk hozzá új configokat. BÁRMILYEN PARANCSOT HAJTASZ VÉGRE, A NAMESPACET ADJUK MEG! (pl.: k get po -n granitbot )
Release átadása:
- Gránit VPN-en, parancssorban kell futtatni egy login-t (docker login harbor.miltonbank.local).
- Utána a push scripet futtatni. (ez eltarthat egy darabig, nagyon lassú) UAT elérések: Bot: https://granitbot-client-uat.tanzu.miltonbank.local/chat Gránit oldal: https://granitweb-uat.miltonbank.local/lakossag/hitelek/ (csak a hitelek oldalon érhető el)
Config módosítás:
- Ssh a szerverre (ssh config lejjebb)
Host granitUatTanzu
HostName 192.168.66.251
User vt
Port 1200
IdentityFile
- source .bashrc
- megfelelő configok átírása/felvétele
- config érvényesítése (pl.: k apply -n granitbot -f granitbot/UAT/backend-service/configmap.yaml)
- k get po -n granitbot (podok listázása)
- amelyik podnál történt módosítás, azt a podot kell törölni (pl.: k delete -n granitbot po backend-service-576b8fdd74-mm65g) a. korábban listáztuk a podokat, ott van az azonosítója azt kell megadni a parancsba b. van deployment érvényben, így ha töröljük, akkor létrehoz magának egy másik podot a deployment.yml alapján
- Visszacsekkolni, hogy működik-e az app
Telepítés:
- Ssh a szerverre (192.168.66.251)
- source .bashrc
- megfelelő deployment.yml átírása/felvétele
- deployment érvényesítése (k apply -n granitbot -f granitbot/UAT/backend-service/deployment.yaml) a. FONTOS! Ha érvényesíted, akkor elkezdi elindítani az új podot, a jelenlegit pedig leállítja. b. Ha szeretnél configot is felvenni, akkor ez előtt kell megtenni.
- Watch „kubectl get po -n granitbot” (2 másodpercenként frissíti a parancsot, itt látjuk, hogy indulnak-e a podok)
- Visszacsekkolni, hogy működik-e az app a. Ha sokáig nem áll le a régi pod akkor töröljük, mert az új addig nem indul, amíg a régi nem állt le. (pl.: k delete -n granitbot po backend-service-576b8fdd74-mm65g)
Hasznos parancsok:
- Pod listázás: k get po -n
- Pod listázás, részletesebb: k get deployments -n
-o wide - Config/deployment érvényesítés: k apply -n
-f - Pod törlés (restart): k delete -n
po - Pod log nézése: k logs
-n - Pod log nézése több konténer esetén: k logs -f
-n - Pod információ lekérése: k describe -n
- Pod-ba belépés: k exec -n
-it – bash