This doc explains how to setup a development environment so you can get started
contributing to Knative net-istio
.
Also take a look at:
- Create a GitHub account
- Setup GitHub access via SSH
- Install requirements
- Set up your shell environment
- Create and checkout a repo fork
Before submitting a PR, see also CONTRIBUTING.md.
You must install these tools:
To get started you'll need to set these environment variables (we recommend
adding them to your .bashrc
):
GOPATH
: If you don't have one, simply pick a directory and addexport GOPATH=...
$GOPATH/bin
onPATH
: This is so that tooling installed viago get
will work properly.
.bashrc
example:
export GOPATH="$HOME/go"
export PATH="${PATH}:${GOPATH}/bin"
The Go tools require that you clone the repository to the
src/knative.dev/net-istio
directory in your
GOPATH
.
To check out this repository:
- Create your own fork of this repo
- Clone it to your machine:
mkdir -p ${GOPATH}/src/knative.dev
cd ${GOPATH}/src/knative.dev
git clone [email protected]:${YOUR_GITHUB_USERNAME}/net-istio.git
cd net-istio
git remote add upstream https://knative.dev/net-istio.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.
Run the following command to install Istio for development purpose:
istioctl install -y
Run the following command to install Knative
kubectl apply -f https://github.com/knative/serving/releases/latest/download/serving-crds.yaml
kubectl apply -f https://github.com/knative/serving/releases/latest/download/serving-core.yaml
Run the following command to install net-istio components
ko apply -f config/
If you want to work with system-internal-tls
enabled you can either:
- Install
Knative Serving
,cert-manager
andnet-certmanager
to automatically generate the certificates. The CA will be injected for the Knative Certificate in 700-istio-knative-certificate.yaml. - Or use ./test/generate-upstream-cert.sh) to manually generate the secrets.
You can then enable system-internal-tls
in config-network
like in our test resources
and specify the following environment variables before you run the e2e/conformance tests:
export UPSTREAM_TLS_CERT=serving-certs
export SERVER_NAME=kn-user-serving-tests