{"id":14573037,"url":"https://github.com/ngrok/ngrok-operator","last_synced_at":"2026-02-17T20:02:24.694Z","repository":{"id":60866940,"uuid":"516550707","full_name":"ngrok/ngrok-operator","owner":"ngrok","description":"The official ngrok Kubernetes Operator","archived":false,"fork":false,"pushed_at":"2026-02-03T21:57:29.000Z","size":5217,"stargazers_count":252,"open_issues_count":28,"forks_count":36,"subscribers_count":15,"default_branch":"main","last_synced_at":"2026-02-04T07:17:38.423Z","etag":null,"topics":["api-gateway","gateway-api","ingress-controller","kubernetes","ngrok","reverse-proxy"],"latest_commit_sha":null,"homepage":"https://ngrok.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ngrok.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2022-07-21T23:35:54.000Z","updated_at":"2026-02-03T18:03:23.000Z","dependencies_parsed_at":"2026-02-06T03:00:40.163Z","dependency_job_id":null,"html_url":"https://github.com/ngrok/ngrok-operator","commit_stats":null,"previous_names":["ngrok/ngrok-operator"],"tags_count":95,"template":false,"template_full_name":null,"purl":"pkg:github/ngrok/ngrok-operator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngrok%2Fngrok-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngrok%2Fngrok-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngrok%2Fngrok-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngrok%2Fngrok-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngrok","download_url":"https://codeload.github.com/ngrok/ngrok-operator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngrok%2Fngrok-operator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29147368,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T02:39:25.012Z","status":"ssl_error","status_checked_at":"2026-02-06T02:37:22.784Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","gateway-api","ingress-controller","kubernetes","ngrok","reverse-proxy"],"created_at":"2024-09-07T09:01:23.589Z","updated_at":"2026-02-06T03:00:59.021Z","avatar_url":"https://github.com/ngrok.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003c!-- primary links --\u003e\n\u003cp\u003e\n  \u003ca href=\"https://ngrok.com\"\u003e\n    \u003cimg src=\"docs/assets/images/ngrok-blue-lrg.png\" alt=\"ngrok Logo\" width=\"300\" url=\"https://ngrok.com\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://kubernetes.io/\"\u003e\n  \u003cimg src=\"docs/assets/images/Kubernetes-icon-color.svg.png\" alt=\"Kubernetes logo\" width=\"150\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- badges --\u003e\n\u003cp\u003e\n  \u003ca href=\"https://github.com/ngrok/ngrok-operator/actions?query=branch%3Amain+event%3Apush\"\u003e\n      \u003cimg src=\"https://github.com/ngrok/ngrok-operator/actions/workflows/ci.yaml/badge.svg\" alt=\"CI Status\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ngrok/ngrok-operator/blob/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg\" alt=\"License\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"#features-and-beta-status\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Status-Beta-orange.svg\" alt=\"Status\"/\u003e\n  \u003c/a\u003e\n   \u003ca href=\"#gateway-api-status\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Gateway_API-preview-rgba(159%2C122%2C234)\" alt=\"Gateway API Preivew\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://ngrok.com/slack\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Join%20Our%20Community-Slack-blue\" alt=\"Slack\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/intent/follow?screen_name=ngrokHQ\"\u003e\n    \u003cimg src=\"https://img.shields.io/twitter/follow/ngrokHQ.svg?style=social\u0026label=Follow\" alt=\"Twitter\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://artifacthub.io/packages/search?repo=ngrok\u0026operators=true\u0026sort=relevance\u0026page=1\"\u003e\n    \u003cimg src=\"https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/ngrok\" alt=\"Artifacthub\"/\u003e\n  \u003c/a\u003e\n    \u003ca href=\"https://github.com/ngrok/ngrok-operator/actions/workflows/trivy-image-scan.yaml\"\u003e\n    \u003cimg src=\"https://github.com/ngrok/ngrok-operator/actions/workflows/trivy-image-scan.yaml/badge.svg\" alt=\"Trivy\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# ngrok Kubernetes Operator\n\nLeverage [ngrok](https://ngrok.com/) 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](https://kubernetes.io/docs/concepts/services-networking/ingress/) and the [Kubernetes Gateway API](https://gateway-api.sigs.k8s.io/)\n\n[Installation](#installation) | [Getting Started](https://ngrok.com/docs/using-ngrok-with/k8s/) | [Documentation](#documentation) | [Developer Guide](https://github.com/ngrok/ngrok-operator/blob/main/docs/developer-guide/README.md) | [Known Issues](#known-issues)\n\n\u003e **Note**\n\u003e\n\u003e The ngrok-operator is production-ready and supported for use in production environments. However, it is currently _`pre-1.0.0`_, and as such, the public API (including helm values and CRDs) should be considered unstable.\n\u003e\n\u003e While we aim to minimize disruption, breaking changes may be introduced in minor or patch releases prior to the `1.0.0` release. Users are encouraged to pin versions and review release notes when upgrading.\n\n## Installation\n\n### Helm\n\n\u003e **Note** We recommend using the Helm chart to install the operator for a better upgrade experience.\n\nAdd the ngrok Kubernetes Operator Helm chart:\n\n```sh\nhelm repo add ngrok https://charts.ngrok.com\n```\n\nThen, install the latest version (setting the appropriate values for your environment):\n\n```sh\nexport NAMESPACE=[YOUR_K8S_NAMESPACE]\nexport NGROK_AUTHTOKEN=[AUTHTOKEN]\nexport NGROK_API_KEY=[API_KEY]\n\nhelm install ngrok-operator ngrok/ngrok-operator \\\n  --namespace $NAMESPACE \\\n  --create-namespace \\\n  --set credentials.apiKey=$NGROK_API_KEY \\\n  --set credentials.authtoken=$NGROK_AUTHTOKEN\n```\n\n\u003e ** 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.\n\nFor a more in-depth installation guide follow our step-by-step [Getting Started](https://ngrok.com/docs/using-ngrok-with/k8s/) guide.\n\n#### Gateway API\n\nTo enable using the ngrok-operator with the Kubernetes Gateway API, you need to install the Gateway CRDs if you haven't already, and then include `gateway.enabled` in your `helm --set` or `values.yaml`.\n\nSee the [Kubernetes Gateway API Quickstart](https://ngrok.com/docs/getting-started/kubernetes/gateway-api#standard) for setup and installation steps.\n\n### YAML Manifests\n\nApply the [sample combined manifest](manifest-bundle.yaml) from our repo:\n\n```sh\nkubectl apply -n ngrok-operator \\\n  -f https://raw.githubusercontent.com/ngrok/ngrok-operator/main/manifest-bundle.yaml\n```\n\nFor a more in-depth installation guide follow our step-by-step [Getting Started](https://ngrok.com/docs/using-ngrok-with/k8s/) guide.\n\n## Documentation\n\nThe full documentation for the ngrok Kubernetes Operator can be found on our [k8s docs](https://ngrok.com/docs/k8s/)\n\n### Uninstalling\n\nFor guidance on safely uninstalling the operator, including cleanup of ngrok API resources and finalizers, see the [Uninstall Guide](./docs/uninstall.md).\n\n## Known Issues\n\n1. Current issues can be found in the GitHub issues. [Known/suspected bugs](https://github.com/ngrok/ngrok-operator/issues?q=is%3Aopen+is%3Aissue+label%3Abug) are labeled as `bug`.\n\n## Support\n\nThe best place to get support using the ngrok Kubernetes Operator is through the [ngrok Slack Community](https://ngrok.com/slack). If you find bugs or would like to contribute code, please follow the instructions in the [contributing guide](./docs/CONTRIBUTING.md).\n\n## License\n\nThe ngrok Kubernetes Operator is licensed under the terms of the MIT license.\n\nSee [LICENSE](./LICENSE.txt) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngrok%2Fngrok-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngrok%2Fngrok-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngrok%2Fngrok-operator/lists"}