diff --git a/developer-guide/getting-started/index.html b/developer-guide/getting-started/index.html index e0c7d880b..77a918103 100644 --- a/developer-guide/getting-started/index.html +++ b/developer-guide/getting-started/index.html @@ -1,4 +1,4 @@ - Getting Started - NGINX Ingress Controller
Skip to content

Developing for NGINX Ingress Controller

This document explains how to get started with developing for NGINX Ingress controller.

Prerequisites

Install Go 1.14 or later.

Note

The project uses Go Modules

Install Docker (v19.03.0 or later with experimental feature on)

Important

The majority of make tasks run as docker containers

Quick Start

  1. Fork the repository
  2. Clone the repository to any location in your work station
  3. Add a GO111MODULE environment variable with export GO111MODULE=on
  4. Run go mod download to install dependencies

Local build

Start a local Kubernetes cluster using kind, build and deploy the ingress controller

make dev-env
+ Getting Started - NGINX Ingress Controller      

Getting Started

Developing for NGINX Ingress Controller

This document explains how to get started with developing for NGINX Ingress controller.

For the really new contributors, who want to contribute to the INGRESS-NGINX project, but need help with understanding some basic concepts, that are needed to work with the Kubernetes ingress resource, here is a link to the New Contributors Guide. This guide contains tips on how a http/https request travels, from a browser or a curl command, to the webserver process running inside a container, in a pod, in a Kubernetes cluster, but enters the cluster via a ingress resource. For those who are familiar with those basic networking concepts like routing of a packet with regards to a http request, termination of connection, reverseproxy etc. etc., you can skip this and move on to the sections below. (or read it anyways just for context and also provide feedbacks if any)

Prerequisites

Install Go 1.14 or later.

Note

The project uses Go Modules

Install Docker (v19.03.0 or later with experimental feature on)

Important

The majority of make tasks run as docker containers

Quick Start

  1. Fork the repository
  2. Clone the repository to any location in your work station
  3. Add a GO111MODULE environment variable with export GO111MODULE=on
  4. Run go mod download to install dependencies

Local build

Start a local Kubernetes cluster using kind, build and deploy the ingress controller

make dev-env
 
- If you are working on the v1.x.x version of this controller, and you want to create a cluster with kubernetes version 1.22, then please visit the documentation for kind, and look for how to set a custom image for the kind node (image: kindest/node...), in the kind config file.

Testing

Run go unit tests

make test
 

Run unit-tests for lua code

make lua-test
 

Lua tests are located in the directory rootfs/etc/nginx/lua/test

Important

Test files must follow the naming convention <mytest>_test.lua or it will be ignored

Run e2e test suite

make kind-e2e-test
@@ -8,7 +8,7 @@
 
 make build image
 

and then publish such version with

docker push $REGISTRY/controller:$TAG
-

New Contributor Tips

New contributors can refer to the new contributor tips which will be updated with examples and tips.