1
0
mirror of https://github.com/tektoncd/catalog.git synced 2024-11-21 05:55:35 +00:00
catalog/task/kn/0.2
PuneetPunamiya 86d844dbc6 Fixes installations instructions in readme
Signed-off-by: Puneet Punamiya ppunamiy@redhat.com
2022-08-25 08:15:56 +02:00
..
knative-dockerfile-deploy [TEP-0110] Update Tekton Catalog installation instructions 2022-08-16 16:25:52 +01:00
support Copy task kn from 0.1 to 0.2 2022-08-10 08:40:49 +01:00
kn.yaml Set HOME to /tekton/home for nonroot tasks 2022-08-16 14:41:52 +01:00
README.md Fixes installations instructions in readme 2022-08-25 08:15:56 +02:00

Knative with kn

This Task performs operations on Knative resources (services, revisions, routes) using kn CLI.

Install the Task

kubectl apply -f https://api.hub.tekton.dev/v1/resource/tekton/task/kn/0.2/raw

Parameters

  • kn-image: kn CLI container image to run this task.

    default: gcr.io/knative-releases/knative.dev/client/cmd/kn:latest

    You can use nightly build of the kn CLI using gcr.io/knative-nightly/knative.dev/client/cmd/kn.

  • ARGS: The arguments to pass to kn CLI. default: ["help"]

Resources

Inputs

  • image: An image-type PipelineResource specifying the location of the container image to deploy for Knative Service.

    User provides the image-type resource to kn CLI in parameter ARGS as an element of the array, for e.g. "--image=$(inputs.resources.image.url)".

Platforms

The Task can be run on linux/amd64, linux/s390x, linux/arm64 and linux/ppc64le platforms.

Usage

Authorizing the Deployment

In order to create Knative services, you must first define a ServiceAccount with permission to manage Knative resources.

To create a ServiceAccount with these permissions, you can run:

kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/kn/0.2/support/kn-deployer.yaml

Running the Task

Let's take examples of creating and updating a Knative Service using kn task.

  1. Following TaskRun runs the Task to create a Knative Service using given image.
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  generateName: kn-create-
spec:
  serviceAccountName: kn-deployer-account  # <-- run as the authorized SA
  taskRef:
    name: kn
  resources:
    inputs:
    - name: image
      resourceSpec:
        type: image
        params:
        - name: url
          value: gcr.io/knative-samples/helloworld-go
  params:
  - name: ARGS
    value:
    - "service"
    - "create"
    - "hello"
    - "--force"
    - "--image=$(inputs.resources.image.url)"

Run this with:

kubectl create -f kn-create-taskrun.yaml
  1. Following TaskRun runs the Task to update a Knative Service using given image or parameters.
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  generateName: kn-update-
spec:
  serviceAccountName: kn-deployer-account  # <-- run as the authorized SA
  taskRef:
    name: kn
  resources:
    inputs:
    - name: image
      resourceSpec:
        type: image
        params:
        - name: url
          value: gcr.io/knative-samples/helloworld-go
  params:
  - name: ARGS
    value:
    - "service"
    - "update"
    - "hello"
    - "--image=$(inputs.resources.image.url)"
    - "--env=TARGET=Tekton"

Run this with:

kubectl create -f kn-update-taskrun.yaml

In these examples, the image resource can be built before hand, most likely using a previous task.

Pipeline

Checkout the sample Pipelines for building your git source and deploying as Knative Service here.