Versions Compared

Key

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

Helm charten spring-boot-pipeline studeras enklast genom att generera en pipeline med hjälp av Helm CLI och helm template , samt läsa i tektons Tektons egna dokumentation. Man kan även få en visuell representation via openshifts web consol.

...

Pipelinen som genereras är även beroende av definitionerna som återfinns i common pipeline repot repositoryt. Det som finns i detta repo repository är gemensamt för alla tjänster och det som genereras från helm blir unikt för varje tjänst.

Parametrar med default värden

När man genererar en pipeline med hjälp av spring-boot-pipeline chart är bland det första man ser vilka parametrar som pipelinen tar in.

...

Parametrar som finns här är bara de som man skulle kunna tänkas vilja ändra i en manuell körning via web konsolen. Eftersom helm nyttjas skulle egentligen inga pipeline parametrar behövas alls utan allt skulle kunna hanteras genom helm (values.yaml blir parametrar som populeras i alla templates). Dock skulle det innebär innebära att inget kan ändras vid manuell körning utan att ändra hela pipelinen. Därför har ett antal attributs attribut valts att läggas som tekton pipline parametrar.

Genom att låta helm sätta default underlättar man manuella körningar genom att alla parametrar blir populerade till det som används vid automatisk triggning av pipeline. Om Denna princip bör användas för alla nya parametrar som adderas bör därför denna princip användas.

Triggering av pipeline

I tektons Tektons egna dokumentation uppmanas man att skapa en eventListener per git repository. Detta skulle innebära en unik webhook url för varje repository, med brandväggsöppningar som följd. Varje eventListener skapar också en egen pod som tar resurser från klustret vilket skalar dåligt. Istället Därför har en annan variant implementerats.

...

Exempel från en tjänst trigger

Code Block
languageyaml
template:
    spec:
      resourcetemplates:
        - apiVersion: tekton.dev/v1beta1
          kind: PipelineRun
          metadata:
            generateName: simulator-server-
          spec:
            pipelineRef:
              name: simulator-server
            serviceAccountName: pipeline
            workspaces:
              - name: source-workspace
                persistentVolumeClaim:
                  claimName: pvc-simulator-server-pipeline
              - name: maven-settings
                secret:
                  secretName: settings-mvn

Det ända som behövs knytas är workspace och ett namn då alla parametrar redan ligger i pipelinen.

Maven with cache

För att optimera byggtider har en egen maven task skapats “maven-with-cache-v1”. Detta är en kopia på de färdigdefinierade maven tasks som finns i openshift, med två tillägg.

  1. Den plockar ut versionen från pom.xml som ett eget step mvn-version som sedan kan refereras från andra tekton taskTekton tasks.

  2. Den sätter upp en .m2 cache i befintligt workspace.

...