Awesome
<img src="docs/achtung.png" alt="WARNING" width="30" height="30"><img src="docs/achtung.png" alt="WARNING" width="30" height="30"><img src="docs/achtung.png" alt="WARNING" width="30" height="30"> Notice <img src="docs/achtung.png" alt="WARNING" width="30" height="30"><img src="docs/achtung.png" alt="WARNING" width="30" height="30"><img src="docs/achtung.png" alt="WARNING" width="30" height="30">
The ngrok/kubernetes-ingress-controller repository has been archived as part of our transition to developing the ngrok-operator and expanding its set of features. For more information, please see this discussion.
<p> <a href="https://ngrok.com"> <img src="docs/assets/images/ngrok-blue-lrg.png" alt="ngrok Logo" width="300" url="https://ngrok.com" /> </a> <a href="https://kubernetes.io/"> <img src="docs/assets/images/Kubernetes-icon-color.svg.png" alt="Kubernetes logo" width="150" /> </a> </p> <p> <a href="https://github.com/ngrok/kubernetes-ingress-controller/actions?query=branch%3Amain+event%3Apush"> <img src="https://github.com/ngrok/kubernetes-ingress-controller/actions/workflows/ci.yaml/badge.svg" alt="CI Status"/> </a> <a href="https://github.com/ngrok/kubernetes-ingress-controller/blob/master/LICENSE"> <img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License"/> </a> <a href="#features-and-beta-status"> <img src="https://img.shields.io/badge/Status-Beta-orange.svg" alt="Status"/> </a> <a href="#gateway-api-status"> <img src="https://img.shields.io/badge/Gateway_API-preview-rgba(159%2C122%2C234)" alt="Gateway API Preivew"/> </a> <a href="https://ngrok.com/slack"> <img src="https://img.shields.io/badge/Join%20Our%20Community-Slack-blue" alt="Slack"/> </a> <a href="https://twitter.com/intent/follow?screen_name=ngrokHQ"> <img src="https://img.shields.io/twitter/follow/ngrokHQ.svg?style=social&label=Follow" alt="Twitter"/> </a> </p>ngrok Kubernetes Operator
Leverage ngrok for your ingress in your Kubernetes cluster. Instantly add load balancing, authentication, and observability to your services via ngrok Cloud Edge modules using Custom Resource Definitions (CRDs) and Kubernetes-native tooling. This repo contains both our Kubernetes Ingress Controller and the Kubernetes Gateway API
Installation | Getting Started | Documentation | Developer Guide | Known Issues
Installation
Helm
Note We recommend using the Helm chart to install the controller for a better experience for upgrades.
Add the ngrok Ingress Controller Helm chart:
helm repo add ngrok https://charts.ngrok.com
Then, install the latest version (setting the appropriate values for your environment):
export NAMESPACE=[YOUR_K8S_NAMESPACE]
export NGROK_AUTHTOKEN=[AUTHTOKEN]
export NGROK_API_KEY=[API_KEY]
helm install ngrok-ingress-controller ngrok/kubernetes-ingress-controller \
--namespace $NAMESPACE \
--create-namespace \
--set credentials.apiKey=$NGROK_API_KEY \
--set credentials.authtoken=$NGROK_AUTHTOKEN
Note The values for
NGROK_API_KEY
andNGROK_AUTHTOKEN
can be found in your ngrok dashboard and are used by your ingress controller to authenticate with ngrok for configuring and running your network ingress traffic at the edge.
For a more in-depth installation guide follow our step-by-step Getting Started guide.
Gateway API Preview
To install the developer preview of the gateway api we'll make the following changes to the above instructions.
Install the v1 gateway CRD before the helm installation.
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/standard-install.yaml
Then, during the helm install set the experimental gateway flag.
helm install ngrok-ingress-controller ngrok/kubernetes-ingress-controller \
--namespace $NAMESPACE \
--create-namespace \
--set credentials.apiKey=$NGROK_API_KEY \
--set credentials.authtoken=$NGROK_AUTHTOKEN \
--set useExperimentalGatewayApi=true # gateway preview
YAML Manifests
Apply the sample combined manifest from our repo:
kubectl apply -n ngrok-ingress-controller \
-f https://raw.githubusercontent.com/ngrok/kubernetes-ingress-controller/main/manifest-bundle.yaml
For a more in-depth installation guide follow our step-by-step Getting Started guide.
Documentation
The full documentation for the ngrok Ingress Controller can be found on our k8s docs
Known Issues
Note
This project is currently in beta as we continue testing and receiving feedback. The functionality and CRD contracts may change. It is currently used internally at ngrok for providing ingress to some of our production workloads.
- Current issues can be found in the GitHub issues. Known/suspected bugs are labeled as
bug
.
Support
The best place to get support using the ngrok Kubernetes Operator is through the ngrok Slack Community. If you find bugs or would like to contribute code, please follow the instructions in the contributing guide.
License
The ngrok ingress controller is licensed under the terms of the MIT license.
See LICENSE for details.