Kihagyás

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:

  1. Gránit VPN-en, parancssorban kell futtatni egy login-t (docker login harbor.miltonbank.local).
  2. 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:

  1. Ssh a szerverre (ssh config lejjebb) Host granitUatTanzu HostName 192.168.66.251 User vt Port 1200 IdentityFile
  2. source .bashrc
  3. megfelelő configok átírása/felvétele
  4. config érvényesítése (pl.: k apply -n granitbot -f granitbot/UAT/backend-service/configmap.yaml)
  5. k get po -n granitbot (podok listázása)
  6. 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
  7. Visszacsekkolni, hogy működik-e az app

Telepítés:

  1. Ssh a szerverre (192.168.66.251)
  2. source .bashrc
  3. megfelelő deployment.yml átírása/felvétele
  4. 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.
  5. Watch „kubectl get po -n granitbot” (2 másodpercenként frissíti a parancsot, itt látjuk, hogy indulnak-e a podok)
  6. 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