Beskrivning för att skapa en ny pipeline för en spring boot mikrotjänst som deployas i openshift, genom att nyttja den gemensama pipeline som finns för utvecklingsfabriken.
Skapa
...
nytt repo
Lägg till en nytt repository för med tjänstens tjänsten namn här https://gitlab.sundsvall.se/argocd/api-services
Skapa Lägg till två brancher,
test
(default) ochprod
. Dessa kommer användas för att separera vad som ska deployas i test och vad som ska deployas i produktionLägg till en
.gitignore
:Code Block /charts *.tgz *.lock
Skapa två kataloger i roten,
deployment
ochpipeline
.pipeline
kommer innehålla definitionen för mikrotjänstens pipeline.deployment
kommer innehålla definitionen för hur mikrotjänsten ska deployas.
Lägg till pipeline chart
För att lägga till en pipeline behövs en ny chart i pipeline katalogen. I sin enklaste form behövs två filer Chart.yaml
och values.yaml
Exempel Chart.yaml
:
Code Block |
---|
apiVersion: v2
name: <service>-pipeline
description: A Tekton Helm chart for <service>
type: application
version: 0.1.0
dependencies:
- name: spring-boot-pipeline
version: ^0.2.*
repository: http://nexus.sundsvall.se/repository/sundsvall-helm/
|
Denna service pipeline chart tar som dependency in den gemensamma charten spring-boot-pipeline
som innehåller definitionen av pipelinen. För senaste version kolla i nexus.
Exempel values.yaml
:
Code Block |
---|
spring-boot-pipeline:
applicationName: <service>
imageRepository: evil.sundsvall.se/utvecklingsfabriken
namespace: pipelines-utvecklingsfabriken
github:
url: git@github.com:Sundsvallskommun/<path to service>.git
gitlab:
url: git@gitlab.sundsvall.se:argocd/api-services/<path to service>.git
|
Verifiering kan göras med hjälp av Helm. Detta kräver Helm CLI och att https://nexus.sundsvall.se/repository/sundsvall-helm/ läggs till som repo (Se Helm Repo Add).
user@computer ~/repos/argocd/api-services/service/pipeline $ helm template --dependency-update .
Lägg till deployment chart
Skapa en ny chart i deployment katalogen. I sin enklaste form behövs två filer Chart.yaml
och values.yaml
.
Exempel Chart.yaml
:
Code Block |
---|
apiVersion: v2
name: api-<service>
description: A Helm chart for simulator service
type: application
version: 0.1.0
dependencies:
- name: spring-boot-chart
version: ^0.1.*
repository: http://nexus.sundsvall.se/repository/sundsvall-helm/
|
Exempel values.yaml
:
Code Block |
---|
spring-boot-chart: appName: <service> appVersion: "1.0" namespace: unmasked-test replicaCount: 1 image: repository: "evil.sundsvall.se/utvecklingsfabriken" tag: "none" |
Note: appName
bör matcha spring-boot-pipeline.applicationName
som sattes i pipeline charten. Alternativt sätt image.nameOverride
till att matcha spring-boot-pipeline.applicationName
.