ngrok-operator

module
v0.0.0-...-1716710 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2024 License: MIT

README

ngrok Logo Kubernetes logo

CI Status License Status Gateway API Preivew Slack Twitter Artifacthub

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 operator for a better upgrade experience.

Add the ngrok Kubernetes Operator 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-operator ngrok/ngrok-operator \
  --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] (https://dashboard.ngrok.com/get-started/setup). The ngrok Kubernetes Operator uses them to authenticate with ngrok and configure and run 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-operator ngrok/ngrok-operator \
  --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-operator \
  -f https://raw.githubusercontent.com/ngrok/ngrok-operator/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 Kubernetes Operator 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.

  1. 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 Kubernetes Operator is licensed under the terms of the MIT license.

See LICENSE for details.

Directories

Path Synopsis
api
bindings/v1alpha1
Package v1alpha1 contains API Schema definitions for the bindings v1alpha1 API group +kubebuilder:object:generate=true +groupName=bindings.k8s.ngrok.com
Package v1alpha1 contains API Schema definitions for the bindings v1alpha1 API group +kubebuilder:object:generate=true +groupName=bindings.k8s.ngrok.com
ingress/v1alpha1
Package v1alpha1 contains API Schema definitions for the ingress v1alpha1 API group +kubebuilder:object:generate=true +groupName=ingress.k8s.ngrok.com
Package v1alpha1 contains API Schema definitions for the ingress v1alpha1 API group +kubebuilder:object:generate=true +groupName=ingress.k8s.ngrok.com
ngrok/v1alpha1
Package v1alpha1 contains API Schema definitions for the ngrok v1alpha1 API group +kubebuilder:object:generate=true +groupName=ngrok.k8s.ngrok.com
Package v1alpha1 contains API Schema definitions for the ngrok v1alpha1 API group +kubebuilder:object:generate=true +groupName=ngrok.k8s.ngrok.com
cmd
api
internal
annotations/testutil
Test Utilities for Ingress Annotations
Test Utilities for Ingress Annotations
controller/gateway
MIT License
MIT License
controller/ingress
MIT License
MIT License
controller/ngrok
MIT License
MIT License
healthcheck
healthcheck is a package that provides a simple health check interface for services via a singleton instance
healthcheck is a package that provides a simple health check interface for services via a singleton instance
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
mux
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL