Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

  1. Lägg till en nytt repository för med tjänstens tjänsten namn här https://gitlab.sundsvall.se/argocd/api-services

  2. Skapa Lägg till två brancher, test (default) och prod. Dessa kommer användas för att separera vad som ska deployas i test och vad som ska deployas i produktion

  3. Lägg till en .gitignore:

    Code Block
    /charts
    *.tgz
    *.lock
  4. Skapa två kataloger i roten, deployment och pipeline. 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.