# Install Tekton and build pipelines

Create registry secret for accessing Azure Container Registry:

kubectl create secret docker-registry docker-config \
  --docker-server="pruzickak8smyexampledev.azurecr.io" \
  --docker-username="${ARM_CLIENT_ID}" \
  --docker-password="${ARM_CLIENT_SECRET}"

Install Tekton with Dashboard:

envsubst < files/flux-repository/workloads/tekton.yaml           > tmp/k8s-flux-repository/workloads/tekton.yaml
envsubst < files/flux-repository/workloads/tekton-dashboard.yaml > tmp/k8s-flux-repository/workloads/tekton-dashboard.yaml
envsubst < files/flux-repository/workloads/tekton-services.yaml  > tmp/k8s-flux-repository/workloads/tekton-services.yaml

git -C tmp/k8s-flux-repository add --verbose .
git -C tmp/k8s-flux-repository commit -m "Add Tekton"
git -C tmp/k8s-flux-repository push -q
sleep 15 # Prevent errors like: Error: git repository git@github.com:ruzickap/k8s-flux-repository is not ready to sync (status: cloned)
fluxctl sync

Prepare Tekton pipelines:

envsubst < files/flux-repository/workloads/tekton-pipelineresource.yaml > tmp/k8s-flux-repository/workloads/tekton-pipelineresource.yaml
envsubst < files/flux-repository/workloads/tekton-task-pipeline.yaml    > tmp/k8s-flux-repository/workloads/tekton-task-pipeline.yaml
git -C tmp/k8s-flux-repository add --verbose .
git -C tmp/k8s-flux-repository commit -m "Add pipelines and pipelineresources"
git -C tmp/k8s-flux-repository push -q
fluxctl sync

Initiate PipelineRun which builds container image form git repository:

envsubst < files/flux-repository/workloads/tekton-pipelinerun.yaml      > tmp/k8s-flux-repository/workloads/tekton-pipelinerun.yaml
git -C tmp/k8s-flux-repository add --verbose .
git -C tmp/k8s-flux-repository commit -m "Add pipeline and initiate build process"
git -C tmp/k8s-flux-repository push -q
fluxctl sync

Check if the build of docker image was completed:

kubectl wait --timeout=30m --for=condition=Succeeded pipelineruns/podinfo-build-docker-image-from-git-pipelinerun
kubectl get pipelineruns podinfo-build-docker-image-from-git-pipelinerun

Output:

NAME                                              SUCCEEDED   REASON      STARTTIME   COMPLETIONTIME
podinfo-build-docker-image-from-git-pipelinerun   True        Succeeded   7m48s       2m30s