Skip to content

Latest commit

 

History

History
106 lines (74 loc) · 3.16 KB

DEVELOPMENT.md

File metadata and controls

106 lines (74 loc) · 3.16 KB

Developing

Getting started

  1. Create a GitHub account
  2. Setup GitHub access via SSH
  3. Create and checkout a repo fork
  4. Set up your shell environment
  5. Install requirements
  6. Set up a Kubernetes cluster

Then you can iterate.

Checkout your fork

The Go tools require that you clone the repository to the src/github.com/tektoncd/chains directory in your GOPATH.

To check out this repository:

  1. Create your own fork of this repo
  2. Clone it to your machine:
mkdir -p ${GOPATH}/src/github.com/tektoncd
cd ${GOPATH}/src/github.com/tektoncd
git clone [email protected]:${YOUR_GITHUB_USERNAME}/chains.git
cd cli
git remote add upstream [email protected]:tektoncd/chains.git
git remote set-url --push upstream no_push

Adding the upstream remote sets you up nicely for regularly syncing your fork.

Requirements

You must install these tools:

  1. go: The language Tekton Chains is built in
  2. git: For source control
  3. kubectl (optional): For interacting with your kube cluster

Kubernetes cluster

Docker for Desktop using an edge version has been proven to work for both developing and running Pipelines. Your Kubernetes version must be 1.11 or later.

To setup a cluster with GKE:

  1. Install required tools and setup GCP project (You may find it useful to save the ID of the project in an environment variable (e.g. PROJECT_ID).
  2. Create a GKE cluster

Note that the --scopes argument to gcloud container cluster create controls what GCP resources the cluster's default service account has access to; for example to give the default service account full access to your GCR registry, you can add storage-full to your --scopes arg.

Environment Setup

To build the Tekton Chains project, you'll need to set GO111MODULE=on environment variable to force go to use go modules.

Iterating

Install Chains

You can stand up a version of this controller on-cluster (to your kubectl config current-context):

ko apply -f config/

Redeploy controller

As you make changes to the code, you can redeploy your controller with:

ko apply -f config/deployment.yaml

Tear it down

You can clean up everything with:

ko delete -f config/

Accessing logs

To look at the controller logs, run:

kubectl -n tekton-pipelines logs deployment/tekton-chains-controller