Denna sida är under uppbyggnad och inte aktuell förens denna text är borttagen!
Denna sida beskriver utvecklingsfabriken uppsättning av CI/CD för deployment av mikrotjänster i OpenShift kluster.
Verktyg
OpenShift Pipelines som använder Tekton
Openshift Gitops som använder Argo CD (https://www.youtube.com/watch?v=MeU5_k9ssrs )
Koncept att känna till
För att kunna ta till sig all dokumentation bör man ha förståelse för följande saker:
Tekton
Task
ClusterTask
Pipeline
PipelineRun
Eventlistener
Trigger
TriggerTemplate
Argo CD
Grundförståelse för vad Argo CD används till
Sync/out of sync
Helm
Chart file
values file
templates files
subchart
Helm dependencies
Information hittar man enklast via de länkar som finns under rubriken verktyg.
Implementation
Utvecklingsfabriken har valt att implementera en gemensam pipline för så många mikrotjänster som möjligt, som är versionshanterad och uppdateras centralt. Det finns både för och nackdelar med en sådant val. Men fördelarna anses överväga nackdelarna. Man kan se det som vilken gemensam kod som helst där man bygger en modul som kan återanvändas av många tjänster om så önskas. När den vidareutvecklas bör man ha detta i åtanke och se till att möjligheten till att göra overrides och anpassningar är möjliga för de som använder modulen.
För att åstadkomma en gemensam pipeline i Tekton används en Helm Chart (spring-boot-pipeline) som subchart för att generera varje tjänsts pipeline. Varje tjänst anger den gemensamma Charten som ett dependency och behöver inte (om så inte önskas) ha några egna template filer.
Charten spring-boot-pipeline är inte tänkt att användas separat utan endast som ett dependency. De parametrar som finns i spring-boot-pipeline:s value-fil blir alltså default värden för de objekt som genereras. Vissa nödvändiga parametrar saknas och förväntas tillhandahållas av service charten. Användaren av charten tvingas då att fylla i de parametrar som saknas och kan om man vill och har behov göra override på alla parametrar som ligger i spring-boot-pipeline:s value-fil.
Varje tjänst behöver ange ett minimalt antal parametrar och sedan genereras de slutgiltiga objekten som kompletta kubernetes objekt.