Bachelor's Thesis

Kubernetes support for Quarkus QE Test Framework

Final Thesis 1.18 MB

Author of thesis: Georgii Troitskii

Acad. year: 2023/2024

Supervisor: doc. Mgr. Adam Rogalewicz, Ph.D.

Reviewer: Ing. Aleš Smrčka, Ph.D.

Abstract:

This thesis focuses on improving the open-source Quarkus QE Test Framework project, designated for testing applications built on the Quarkus framework. The goal is to add support for automated test execution on the Kubernetes platform. To achieve this goal, a Kubernetes cluster was installed in a virtual machine on the OpenStack platform. Integration between Jenkins and GitHub CI in the Quarkus QE Test Framework was set up using GitHub Pull Request Builder plugin for Jenkins. This integration allows Kubernetes to automatically run tests when creating Pull Requests on GitHub after entering a specific trigger phrase in the Pull Request. This solution enables fully automated test execution in Kubernetes as part of the GitHub CI pipeline, expanding the list of external platforms on which Quarkus QE team tests Quarkus applications.

Keywords:

Quarkus, Quarkus QE Test Framework, Java, Kubernetes, K8s, cluster, kubectl, Docker, GitHub, CI, Jenkins, GHPRB, GitHub Pull Request Builder, trigger, job, pipeline

Date of defence

11.06.2024

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm C.

Topics for thesis defence

  1. Co chybí k možnému nasazení Vašeho řešení?
  2. Dělal jste práci na poslední chvíli?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. RNDr. Pavel Smrž, Ph.D. (předseda)
Ing. Aleš Smrčka, Ph.D. (člen)
Ing. Zbyněk Křivka, Ph.D. (člen)
Ing. Jaroslav Rozman, Ph.D. (člen)
doc. Ing. Jan Kořenek, Ph.D. (člen)

Supervisor’s report
doc. Mgr. Adam Rogalewicz, Ph.D.

Pan M. Vavřík, technický vedoucí z RH hodnotí studenta následovně:


V Quarkus QE Test Frameworku ležel nefunkční mrtvý kód který Georgii analyzoval a správně určil nutné změny. Tyto změny nebyly technicky náročné, ale vyžadovaly schopnost rozumět kódu, debugovat Java aplikaci a psaní integračních testů. Georgii vytvořil skripty pro vytvoření, nakonfigurování a spuštění nové instance Kubernetes. Veškeré činnosti zautomatizoval v podobně Jenkins jobu. Tuto infrastrukturní část považuji za technicky náročnou. Četné materiály tuto problematiku popisující fungují pro happy path, existence produktů jako AWS EKS, OpenShift a GKE není náhodná.


Po technické stránce se tak jedná o zdařilou práci, kterou kazí úroveň technické zprávy dokončované na poslední chvíli. Student navíc není rodilý mluvčí, což je na kvalitě textu dokončovaného ve spěchu vidět o to více.

Evaluation criteria Verbal classification
Informace k zadání

Zadání práce vznikla ve spolupráci s firmou RedHat.

Práce s literaturou

Student vycházel především z online dokumentace jednotlivých nástrojů. Materiály si našel sám po dohodě s technickým vedoucím.

Aktivita během řešení, konzultace, komunikace

Z mého pohledu byla aktivita podprůměrná. Student mě informoval o pokroku většinou až na můj dotaz. Z pohledu technického vedoucího z RH byla aktivita výrazně lepší.

Studenta jsem informoval o možnosti psát práci v angličtině. Sám se rozhodl psát práci česky.

Aktivita při dokončování

Práce byla dokončována na poslední chvíli. K některým kapitolám jsem poskytl studentovi připomínky, které zapracoval. Doporučení směřovala převážně k technické části. Jazyková stránka byla nad moje síly. Část práce byla dokončována pár dní před odevzdáním a k obsahu jsem neměl už prostor se vyjádřit.

Publikační činnost, ocenění
Points proposed by supervisor: 75

Grade proposed by supervisor: C

Reviewer’s report
Ing. Aleš Smrčka, Ph.D.

Zadání bylo splněno. Student evidentně dosáhl řešení, které komunita přijala (citovánon z komentáře na platformě Github Michalem Vavříkem - aktivním vývojářem nástrojů Quarkus z firmy Red hat: "Good job!").

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: průměrně obtížné zadání

Cílem projektu bylo opravení chyby v průběžné integraci nástroje Quarkus Test Framework. Chyba byla cca před 2 lety reportována na platformě Github. Podstata práce spočívala v integraci několika široce rozšířených nástrojů určené pro automatické testování aplikací zahrnující orchestraci (Kubernetes a OpenShift) a automatizaci vývoje (Jenkins) s nástroji pro úzkou komunitu (Quarkus a Quarkus Test Framework).

Prezentační úroveň technické zprávy

Práce popisuje všechny podstatné věci, avšak její prezentace si zaslouží lepší úroveň. S ohledem na provázanost více nástrojů je potřeba důkladně popsat jejich architekturu a vnitřní procesy (ideálně pomocí standardních diagramů). V práci jsou místy popisovány příběhy, co jak student udělal, namísto strukturovaného návrhu a řešení.

60
Formální úprava technické zprávy

Zpráva je místy ledabyle sepsaná a postrádá určitou úroveň pečlivosti a důkladnosti.

Negativa zahrnují citace na začátku podkapitol, příliš krátké podkapitoly nebo kapitoly, gramatické chyby, špatný slovosled, užití programátorského slangu a řádky přetečené přes okraj.

60
Realizační výstup

Výsledek práce mi byl demonstrován a je funkční. Implementace řešení zahrnuje úpravu (opravu) cca 1 tis. řádků kódu. Není to mnoho, ovšem je nutné brát v potaz rozličnost různých technologií, citlivou vazbu a jejich konfiguraci.

80
Využitelnost výsledků

S ohledem na požadavek pro opravení chyby v nástroji, který je aktivně používán, je zřejmá využitelnost výsledku.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Samotná reprodukce 2 roky staré chyby zahrnovala nejprve úpravu původního nástroje pro reprodukci - před vypsáním zadání bakalářské práce se nástroj pozměnil a reprodukce projevu chyby nebyla možná - a následně opravu samotné chyby. Chybu se podařilo opravit a oprava byla přijata komunitou (což dokládá úspěšná žádost o zahrnutí na platformě Github).

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce s literaturou

Literatura zahrnuje pouze odkazy na dokumentace použitých technologií. Často se v textu odkazuje pomocí poznámek pod čarou na komentáře nebo jiné online materiály. S ohledem na charakter práce nemám proti tomuto stylu výhrady.

80
Points proposed by reviewer: 70

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová