Studie i Kubernetes-automatisering: Generering av Helm charts med cdk8s i Java och TypeScript
2025 (Swedish)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE credits
Student thesis
Abstract [sv]
Detta examensarbete undersöker hur Cloud Development Kit for Kubernetes (cdk8s) kan effektivisera skapandet av Kubernetes-konfigurationer jämfört med traditionell manuell hantering med YAML-filer. Genom att implementera två versioner av en applikation, en i Java och en i TypeScript, utvärderades användbarheten, läsbarheten och struktureringen av cdk8s-genererad kod i förhållande till standarder och utvecklares förväntningar. Arbetet baserades på en initial enkätundersökning bland utvecklare och DevOps-ingenjörer, följt av praktisk implementation samt uppföljande intervjuer. Varje version innehöll en fullständig applikation som körs i Kubernetes med tillhörande databas, där Helm charts genererades via cdk8s. Testmiljön utgjordes av Minikube och utvärderingen fokuserade bland annat på YAML-kvalitet, kodstruktur och möjligheten att arbeta med miljövariabler via values.yaml. Intervjudeltagarna jämförde även kodexempel i realtid och gav återkoppling på de båda språken. Resultatet visar att cdk8s i båda språk erbjuder förbättrad struktur och återanvändbarhet, men att TypeScript upplevdes som mer lättförståeligt. Samtidigt påpekades att Java kan erbjuda bättre långsiktig kontroll och robusthet i större projekt. Studien visar att cdk8s har potential att ersätta manuell YAML-skrivning, men att dess användbarhet påverkas starkt av språkval och projektets komplexitet.
Abstract [en]
This thesis explores how the Cloud Development Kit for Kubernetes (cdk8s) can improve the process of generating Kubernetes configurations compared to traditional manual YAML editing. Two application variants were developed, one in Java and one in TypeScript, in order to evaluate cdk8s with regard to usability, code readability, and adherence to Kubernetes standards. The project was based on an initial survey targeting developers and DevOps engineers, followed by technical implementation and in-depth interviews. Each variant included a complete application running in a Kubernetes cluster, connected to a database, with Helm charts generated programmatically via cdk8s. The testing environment used Minikube, and the evaluation focused on aspects such as YAML structure, code modularity, and dynamic handling of environment variables via values.yaml. Interview participants were invited to compare both codebases and provide detailed feedback on the differences between the two languages. The results show that cdk8s in both Java and TypeScript offers improved code structure and reusability. However, TypeScript was perceived as more accessible and concise, while Java was considered better suited for large-scale, robust applications due to its strict type system and tooling. The study concludes that cdk8s has the potential to replace manual YAML writing, although the effectiveness depends heavily on the programming language and project context.
Place, publisher, year, edition, pages
2025. , p. 115
Keywords [en]
Kubernetes, Helm, cdk8s, Infrastructure as Code, Java, TypeScript, YAML
Keywords [sv]
Kubernetes, Helm, cdk8s, Infrastructure as Code, Java, TypeScript, YAML
National Category
Software Engineering
Identifiers
URN: urn:nbn:se:miun:diva-54654Local ID: DT-V25-G3-025OAI: oai:DiVA.org:miun-54654DiVA, id: diva2:1970947
Subject / course
Computer Engineering DT1
Educational program
Computer Science TDATG 180 higher education credits
Supervisors
Examiners
2025-06-172025-06-172025-09-25Bibliographically approved