1
0
mirror of https://github.com/tektoncd/catalog.git synced 2024-11-21 05:55:35 +00:00
catalog/task/makisu/0.1
Vincent Demeester d93795673c Update self reference from master to main 🧙
And update references to community, pipeline, etc. too.

Signed-off-by: Vincent Demeester <vdemeest@redhat.com>
2021-03-19 11:09:49 +00:00
..
makisu.yaml Fix Catlin error by adding Digest to the Images 2020-10-26 09:03:20 +00:00
README.md Update self reference from master to main 🧙 2021-03-19 11:09:49 +00:00

makisu

This Task builds source into a container image using uber's makisu tool.

Makisu is a fast and flexible Docker image build tool designed for unprivileged containerized environments such as Mesos or Kubernetes.

Create the registry configuration

makisu uses a registry configuration which should be stored as a secret in Kubernetes.

Create a registry.yaml containing your user and password for the Docker hub (or configure a different registry). Keep in mind that the secret must exist in the same namespace as the build runs.

For example:

index.docker.io:
  .*:
    security:
      tls:
        client:
          disabled: false
      basic:
        username: ""
        password: ""
kubectl --namespace default create secret generic docker-registry-config --from-file=./registry.yaml

Install the Task

kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/makisu/0.1/makisu.yaml

Parameters

  • CONTEXTPATH: The path to the build context (default: /workspace)
  • PUSH_REGISTRY: The Registry to push the image to (default: index.docker.io)
  • REGISTRY_SECRET: Secret containing information about the used regsitry (default: docker-registry-config)

Workspaces

  • source: A Workspace containing the source to build.

Resources

Outputs

  • image: An image-type PipelineResource specify the image that should be built.

Usage

This TaskRun runs the Task to fetch a Git repo, and build and push a container image using makisu.

In this example, the Git repo being built is expected to have a Dockerfile at the root of the repository.

Docker Registry

apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: example-run
spec:
  taskRef:
    name: makisu
  workspaces:
  - name: source
    persistentVolumeClaim:
      claimName: my-source
  resource:
    outputs:
    - name: image
      resourceSpec:
        type: image
        params:
        - name: url
          value: gcr.io/my-repo/my-image

Other Registries

The PUSH_REGISTRY must match the name of the registry specified in the registry.yaml

apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: example-run-gcr
spec:
  taskRef:
    name: makisu
  params:
  - name: PUSH_REGISTRY # must match the registry in the secret
    value: eu.gcr.io
  - name: REGISTRY_SECRET
    value: gcr-registry-config
  workspaces:
  - name: source
    persistentVolumeClaim:
      claimName: my-source
  resources:
    outputs:
    - name: image
      resourceSpec:
        type: image
        params:
        - name: url
          value: gcr.io/my-repo/my-image