Skip to content

Latest commit

 

History

History
119 lines (87 loc) · 3.93 KB

DEVELOPMENT.md

File metadata and controls

119 lines (87 loc) · 3.93 KB

Development

This doc explains how to setup a development environment so you can get started contributing to Knative net-contour. Also take a look at:

Getting started

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

Before submitting a PR, see also CONTRIBUTING.md.

Requirements

You must install these tools:

  1. go: The language Knative net-contour is built in
  2. git: For source control
  3. dep: For managing external dependencies.
  4. ko: For development.
  5. kubectl: For managing development environments.

Environment setup

To get started you'll need to set these environment variables (we recommend adding them to your .bashrc):

  1. GOPATH: If you don't have one, simply pick a directory and add export GOPATH=...
  2. $GOPATH/bin on PATH: This is so that tooling installed via go get will work properly.

.bashrc example:

export GOPATH="$HOME/go"
export PATH="${PATH}:${GOPATH}/bin"

Checkout your fork

The Go tools require that you clone the repository to the src/knative.dev/net-contour 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/knative.dev
cd ${GOPATH}/src/knative.dev
git clone [email protected]:${YOUR_GITHUB_USERNAME}/net-contour.git
cd net-contour
git remote add upstream https://knative.dev/net-contour.git
git remote set-url --push upstream no_push

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

Once you reach this point you are ready to do a full build and deploy as described below.

Local Development

If you want to develop locally ensure that you follow the Knative getting started guide or Manually setup serving first.

NOTES:

If you use the konk script to setup your cluster, your cluster will be named knative. However, most of the scripts expect it to be the default kind name. Set the kind cluster name env export KIND_CLUSTER_NAME=knative to point to knative cluster. KO requires a registry which if you are developing locally you could use export KO_DOCKER_REPO=kind.local to use the local one on kind. Please see official KO documentation for more information.

Installing Contour

Before deploying the net-contour controller you will need a properly configured installation of Contour. We provide a version of this that can be built from source via:

ko apply -f config/contour

Installing and Iterating on net-contour

Once you have a knative/serving installation, and an appropriately configured Contour installation, you can install the net-contour controller via:

ko apply -f config/

Configuring Knative Serving to use Contour by default

You can configure Serving to use Contour by default with the following command:

kubectl patch configmap/config-network \
  --namespace knative-serving \
  --type merge \
  --patch '{"data":{"ingress.class":"contour.ingress.networking.knative.dev"}}'