• Stars
    star
    170
  • Rank 218,759 (Top 5 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 2 years ago
  • Updated 4 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The official ngrok Ingress Controller for Kubernetes

ngrok Logo Kubernetes logo

CI Status License Status Slack Twitter

ngrok Kubernetes Ingress Controller

Leverage ngrok for your Kubernetes Ingress. Instantly add load balancing, authentication, and observability to your services via ngrok Cloud Edge modules using Custom Resource Definitions (CRDs) and Kubernetes-native tooling.

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://ngrok.github.io/kubernetes-ingress-controller

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 and NGROK_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.

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 under the docs directory. Pull requests for corrections and additions are always welcomed.

Guides and Tutorials

  • Deployment Guide: for installing the controller for the first time
  • User Guide: for an in depth view of the ngrok ingress configuration options and primitives
  • Examples: for examples of how to configure ingress in different scenarios (e.g. Hello World, Consul, OAuth, etc.)
  • Developer Guide: for those interested in contributing to the project

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.

  1. Current issues of concern for production workloads are being tracked here and here.

Support

The best place to get support using the ngrok Ingress Controller 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.

More Repositories

1

ngrok-go

Embed ngrok secure ingress into your Go apps as a net.Listener with a single line of code.
Go
597
star
2

sqlmw

Interceptors for database/sql
Go
457
star
3

ngrok-rust

Embed ngrok secure ingress into your Rust apps with a single line of code.
Rust
271
star
4

webhooks.fyi

webhooks.fyi site
JavaScript
142
star
5

firewall_toolkit

golang library and tools for managing nftables
Go
80
star
6

ngrok-python

Embed ngrok secure ingress into your Python apps with a single line of code.
Rust
80
star
7

ngrok-javascript

Embed ngrok secure ingress into your Node.js apps with a single line of code.
Rust
75
star
8

docker-ngrok

docker images for the ngrok agent
Nix
47
star
9

ngrok-api-go

ngrok API client library for Golang
Go
41
star
10

ngrok-docs

ngrok's official documentation
JavaScript
35
star
11

ngrok-api-java

ngrok API client library for Java
Java
21
star
12

tableroll

Go
19
star
13

ngrok-java

Embed ngrok secure ingress into your Java apps with a single line of code.
Java
17
star
14

terraform-provider-ngrok

Ngrok exposes local servers behind NATs and firewalls to the public internet over secure tunnels. This provider helps you manage those resources via Terraform.
Go
17
star
15

ngrok-webhook-nodejs-sample

Sample webhook listener using NodeJS and ExpressJS
JavaScript
16
star
16

ngrok-api-python

ngrok API client library for Python
Python
15
star
17

ngrok-api-ruby

ngrok API client library for Ruby
Ruby
13
star
18

ngrok-api-typescript

ngrok API client library for Typescript and Javascript
TypeScript
7
star
19

ngrok-api-dotnet

ngrok API client library for .NET
C#
7
star
20

ngrok-api-scala

ngrok API client library for Scala
Scala
5
star
21

ngrok-docker-extension

ngrok Docker Desktop Extension
TypeScript
5
star
22

ngrok-systemd

5
star
23

muxado-go

Stream multiplexing for Go
Go
4
star
24

ngrok-tutorial

This will help us learn ngrok
JavaScript
4
star
25

choco-ngrok

ngrok agent chocolatey package
PowerShell
3
star
26

ngrok-api-rs

ngrok API client library for Rust
Rust
3
star
27

ngrok-java-demo

Demonstrates how to use ngrok-java
Java
2
star
28

ngrok-ipaas-example

Example of a Remote API for integration with iPaaS solutions
JavaScript
1
star
29

mantle

@ngrok/mantle ui component library
TypeScript
1
star
30

ngrok-nix

Nix
1
star
31

homebrew-ngrok

ngrok agent homebrew tap
Ruby
1
star
32

ngrok-sdk-serverless-example

An example of using the ngrok-js NodeJS SDK in a serverless AWS App Runner application.
JavaScript
1
star
33

examples

Sample Project using ngrok
Go
1
star