För att man i varje ny mikrostjänst ska slippa skapa en pipeline från grunden och har en Helm chart tagits fram, som innebär kompletta manifest för varje tjänst används Helm chart. Detta medför att man genom att sätta ett fåtal parametrar kan generera en ett komplett pipelinemanifest. Det innebär också att uppdateringar kan göras och alla kan göras centralt och pushas ut till många pipelines.
...
tjänster.
Table of Contents | ||||
---|---|---|---|---|
|
Gemensamma charts
Pipeline chart
Repository: https://gitlab.sundsvall.se/argocd/helm/spring-boot-pipeline
Namn: spring-boot-pipeline
producerar: Tekton pipeline
Service chart
Repository: https://gitlab.sundsvall.se/argocd/helm/spring-boot-chart
Namn: spring-boot-chart
producerar: Deployment manifest för tjänst
Användning
För att använda den spring-boot-pipeline en gemensam chart skapas en ny chart som pekar ut den gemensamma charten som ett dependency. Mikrotjänstens nya chart använder spring-boot-pipeline chart den gemensamma charten som en subchart. Detta innebär att mikrotjänstens chart inte behöver ha några egna templates utan använder bara det som finns i subcharten.
Gliffy | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Dependency pekar man ut i mikrotjänstens Chart.yaml
Code Block |
---|
dependencies:
- name: spring-boot-pipeline
version: ^0.2.*
repository: http://nexus.sundsvall.se/repository/sundsvall-helm/ |
Mikrotjänstens chart behöver inte pushas till det Helm repository som finns i nexus. Om man i Argo CD pekar ut en katalog som innehåller en Chart.yaml används den direkt.
Generera kubernetes objekt
För att generera k8 objekt lokalt används Helm CLI. Innan man kan generera behöver man lägga till http://nexus.sundsvall.se/repository/sundsvall-helm/
som repo, se Helm Repo Add.
För att generera chart i current working directory:
$ helm template .
För att uppdatera dependency:
$ helm dependency update