Skip to main content

Deployment Guide

This guide is meant as the starting point for configuring, deploying, and operating the controller component itself. It focuses on configurations and settings for the whole controller, and thus its corresponding ingress class, rather than individual ingress resources and their annotations.

Prerequisites

Installation

It is recommended to use helm to install the controller. Alternatively, the container is available on docker hub at ngrok/ingress-controller and can be run directly with hand crafted manifests.

To install via helm, run the following command to export your credentials as environment variables and install the controller:

export NGROK_API_KEY=<YOUR Secret API KEY>
export NGROK_AUTHTOKEN=<YOUR Secret Auth Token>

helm repo add ngrok https://ngrok.github.io/kubernetes-ingress-controller
helm install ngrok-ingress-controller ngrok/kubernetes-ingress-controller \
--namespace ngrok-ingress-controller \
--create-namespace \
--set credentials.apiKey=$NGROK_API_KEY \
--set credentials.authtoken=$NGROK_AUTHTOKEN

For a more robust infrastructure as code way of passing your credentials, see the credentials page.

Once installed and healthy, you can try creating an ingress object using the output example from the helm install!

Alternatively

For a quick install, you can also use the combined manifests directly from the repo and begin changing resources:

kubectl apply -n ngrok-ingress-controller -f https://raw.githubusercontent.com/ngrok/kubernetes-ingress-controller/main/manifest-bundle.yaml

Other Topics

Below are various other topics for a deployer or operator to be aware of.