Lokal POC av pipelines

Beskrivning för att köra pipline lokalt i väntat på tillgång till rätta klustret. Ej testat med tjänst som använder test-containers.

Kör lokalt cluster

  1. Installera openshift local : https://developers.redhat.com/products/openshift-local/overview

  2. Via tray icon -> configuration öka CPU till 6 och Memory till 12 GB

  3. Via powershell kör crc setup sedan crc start

  4. I git bash: eval $(crc oc-env) sen oc login -u kubeadmin --insecure-skip-tls-verify=true https://api.crc.testing:6443 (om man inte föredrar powershell)

  5. logga via UI (som kubeadmin) navigera till Operator hub och installera "Red Hat OpenShift Pipelines" samt "Red Hat OpenShift GitOps"

  6. kör oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:openshift-gitops:openshift-gitops-argocd-application-controller för att ge argo rättighet att skapa clusterTask

  7. Navigera till Networking -> Routes -> openshift-gitops-server -> Location för att logga in i ArgoCD. Lösenord för admin kan hämtat via project "openshift-gitops" navigera till Secrets -> "openshift-gitops-cluster"

  8. I Argo, gå till setting -> Certificates och lägg till knownn hosts gitlab.sundsvall.se för ssh-rsa och ecdsa-sha2-nistp256 (kan hämtas med hjälp av ssh-keyscan gitlab.sundsvall.se i git-bash)

  9. I Argo, gå till settings -> Repositories -> "CONNECT REPO USING SSH" : Project=default, Repo-URL=git@gitlab.sundsvall.se:argocd/common-pipeline.git, samt lägg till ssh-nyckel för gitlab

  10. När "CONNECTION STATUS" = Successful, klicka på ... -> Create application och fyll i följande:

  11. Synka

  12. kör oc project piplines-utvecklingsfabriken (detta kommer göras via argo senare steg 11-14)

  13. kör oc create secret generic settings-mvn --from-file=settings.xml=<path/to/settings.xml>

  14. skapa två filer secret.yaml och serviceaccount.yaml i valfri katalog
    secret.yaml:

    apiVersion: v1 kind: Secret metadata: name: git-ssh-key annotations: tekton.dev/git-0: github.com type: kubernetes.io/ssh-auth data: ssh-privatekey: <ssh-key to github in base64> known_hosts: <known host to github in base64>

    serviceaccount.yaml:

    apiVersion: v1 kind: ServiceAccount metadata: name: pipeline secrets: - name: git-ssh-key - name: settings-mvn
  15. kör oc apply -f secret.yaml,serviceaccount.yaml

  16. I web console, skapa en PVC för tänkt repo: Storage -> PersistentVolumeClaims -> Create PersistentVolumeClaim, namn är valfritt, typ "pvc-<repo-name>" funkar, 10 GB (detta kommer göras via argo per tjänst senare)

Test kör pipeline i web console

Detta kommer senare göras med triggers.

  1. Navigera till piplenes -> base-pipeline -> Action -> start :
    git-url = git@github.com:Sundsvallskommun/<service repos>.git
    source-workspace=<pvc skapad tidigare>
    maven-settings=Secrect->settings-mvn

  2. Start

Tips