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
Installera openshift local : https://developers.redhat.com/products/openshift-local/overview
Via tray icon -> configuration öka CPU till 6 och Memory till 12 GB
Via powershell kör
crc setup
sedancrc start
I git bash:
eval $(crc oc-env)
senoc login -u kubeadmin --insecure-skip-tls-verify=true https://api.crc.testing:6443
(om man inte föredrar powershell)logga via UI (som kubeadmin) navigera till Operator hub och installera "Red Hat OpenShift Pipelines" samt "Red Hat OpenShift GitOps"
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 clusterTaskNavigera 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"
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)
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
När "CONNECTION STATUS" = Successful, klicka på ... -> Create application och fyll i följande:
Application name: common-pipeline
Project: default
Revision: master
Path: . (punkt)
Cluster URL: https://kubernetes.default.svc
DIRECTORY RECURSE: true
Synka
kör
oc project piplines-utvecklingsfabriken
(detta kommer göras via argo senare steg 11-14)kör
oc create secret generic settings-mvn --from-file=settings.xml=<path/to/settings.xml>
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
kör
oc apply -f secret.yaml,serviceaccount.yaml
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.
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-mvnStart
Tips
crc kommando kan köras med --log-level=debug om man behöver
VPN kan kopplas på när klustret är igång (ett måste för att komma åt gitlab.sundsvall.se)
I web console kan man växla mellan Developer/Administrator för att komma åt olika saker (allt finns inte i admin vyn)
Uppdatera denna dokumentation när fler saker flyttas till argo eller om något annat ändras.
Om man använder echo för att pipa till base64 använd -n flagga för att inte echo ska lägga till “\n“
Version 2.10.1 av crc verkar inte kunna köras med icke-engelskt operativ. Felmeddelande “Setup wizard ended prematurely because of an error“. Se https://github.com/code-ready/crc/issues/3386 . När man laddar ned zipen kan man editera länken till 2.9.0 istället för latest som inte har detta problem.