As of Knative 0.8, Knative Build has been deprecated in favor of Tekton Pipelines. This doc is kept as a reference for pre-0.8 Knative installations. Please refer to Tekton Pipelines section of the tutorial on how to do builds in Knative going forward.
In the previous lab and the lab before, we created a Build and invoked Kaniko directly, passing all the arguments required for Kaniko in the Build step. This works but a better approach is to utilize Build Templates
Knative comes with a number of ready to use Build Templates that you can use in your Build steps. There is a build-templates repo with all the templates.
In this lab, we will use Kaniko Build Template.
First, we need to install Kaniko Build Template:
kubectl apply -f https://raw.githubusercontent.com/knative/build-templates/master/kaniko/kaniko.yamlCheck that it is installed:
kubectl get buildtemplate
NAME AGE
kaniko 24mLet's create a Build now. Create a buildtemplate-kaniko-helloworld-gcr.yaml build file:
apiVersion: build.knative.dev/v1alpha1
kind: Build
metadata:
name: buildtemplate-kaniko-helloworld-gcr
spec:
source:
git:
url: https://github.com/meteatamel/knative-tutorial.git
revision: master
subPath: serving/helloworld/csharp
template:
name: kaniko
arguments:
- name: IMAGE
# Replace {PROJECT_ID} with your GCP Project's ID.
value: gcr.io/{PROJECT_ID}/helloworld:kanikoNotice how the Build is not creating its own steps anymore but instead refers to the Kaniko template. The Docker image location is passed in via IMAGE argument.
Start the build:
kubectl apply -f buildtemplate-kaniko-helloworld-gcr.yamlAfter a few minutes, check the build is succeeded:
kubectl get build
NAME SUCCEEDED
buildtemplate-kaniko-helloworld-gcr TrueAt this point, you should see the image pushed to GCR.