<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/ngrok-operator-v0-20-0-go-sdk-v2-and-edges-removal-9yezpcjxf" -->

---
title: ngrok-operator v0.20.0: Go SDK v2 and edges removal
description: ngrok-operator v0.20.0 migrates the Kubernetes operator to v2 of the ngrok Go SDK, simplifying connection forwarding by removing manual net.Conn handling. The...
canonical: https://daily.dev/posts/ngrok-operator-v0-20-0-go-sdk-v2-and-edges-removal-9yezpcjxf
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: ngrok-operator v0.20.0: Go SDK v2 and edges removal | daily.dev
og:description: ngrok-operator v0.20.0 migrates the Kubernetes operator to v2 of the ngrok Go SDK, simplifying connection forwarding by removing manual net.Conn handling. The...
og:url: https://daily.dev/posts/ngrok-operator-v0-20-0-go-sdk-v2-and-edges-removal-9yezpcjxf
og:image: https://api.daily.dev/og/posts/9YEzPcjXF.png
og:image:alt: ngrok-operator v0.20.0: Go SDK v2 and edges removal
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# ngrok-operator v0.20.0: Go SDK v2 and edges removal

**[ngrok Blog](https://daily.dev/sources/ngrok)** · 2 min read · 0 upvotes · 0 comments

## Summary

ngrok-operator v0.20.0 migrates the Kubernetes operator to v2 of the ngrok Go SDK, simplifying connection forwarding by removing manual net.Conn handling. The release also removes the legacy Tunnel, HTTPSEdge, TLSEdge, TCPEdge, and NgrokModuleSet CRDs, which are unified into new CloudEndpoint and AgentEndpoint CRDs. These deprecated CRDs will be removed on the next helm upgrade, and users are pointed to a GitHub discussion for migration guidance ahead of the planned v1.0 release.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://ngrok.com/blog/ngrok-operator-go-sdk-edges>

## Questions this post answers

### What CRDs were removed in ngrok-operator v0.20.0?

ngrok-operator v0.20.0 removes the Tunnel, HTTPSEdge, TLSEdge, TCPEdge, and NgrokModuleSet CRDs. These will be deleted from the cluster automatically during a helm upgrade. HTTPSEdge, TLSEdge, and TCPEdge are replaced by the unified CloudEndpoint CRD, while Tunnel is replaced by the AgentEndpoint CRD.

_Track breaking CRD removals like this before running a helm upgrade by following ngrok-operator updates on daily.dev._

### What CRD replaces the Tunnel CRD in ngrok-operator?

The AgentEndpoint CRD replaces the Tunnel CRD in ngrok-operator, aligning with the ngrok SDK and ngrok agent configurations. This change was introduced in ngrok-operator v0.20.0 alongside the removal of HTTPSEdge, TLSEdge, and TCPEdge in favor of a unified CloudEndpoint CRD.

_Developers migrating Kubernetes ingress configs can follow ngrok CRD changes on daily.dev._

### Why did ngrok-operator switch to ngrok-go SDK v2?

ngrok-operator switched to v2 of the ngrok Go SDK to eliminate the need for manually handling net.Conn objects from ngrok and the upstream service. Under the old v1 SDK, the operator had to create and join connections manually to copy bytes back and forth; v2 lets it simply forward connections, cutting a decent amount of maintained code.

_Engineers evaluating Go SDK migrations can follow real-world upgrade rationale like this on daily.dev._

## Similar posts on daily.dev

- [CNCF Retires the Ingress Nginx Controller for Kubernetes](https://daily.dev/posts/cncf-retires-the-ingress-nginx-controller-for-kubernetes-ldynums2g) · The New Stack · 3 upvotes · 0 comments
- [Ingress NGINX is EOL: A practical guide for migrating to Kubernetes Gateway API](https://daily.dev/posts/ingress-nginx-is-eol-a-practical-guide-for-migrating-to-kubernetes-gateway-api-fj854bzvi) · Datadog · 0 upvotes · 0 comments

---

Tags: [#devtools](https://daily.dev/tags/devtools), [#kubernetes](https://daily.dev/tags/kubernetes), [#golang](https://daily.dev/tags/golang)

[View this post on daily.dev](https://daily.dev/posts/ngrok-operator-v0-20-0-go-sdk-v2-and-edges-removal-9yezpcjxf)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"ngrok-operator v0.20.0: Go SDK v2 and edges removal","url":"https://daily.dev/posts/ngrok-operator-v0-20-0-go-sdk-v2-and-edges-removal-9yezpcjxf","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/ngrok-operator-v0-20-0-go-sdk-v2-and-edges-removal-9yezpcjxf"},"datePublished":"2026-08-23T07:21:01.672Z","dateModified":"2026-08-23T07:29:03.547Z","description":"ngrok-operator v0.20.0 migrates the Kubernetes operator to v2 of the ngrok Go SDK, simplifying connection forwarding by removing manual net.Conn handling. The...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fa2d4fa92786b9443b8311338fdd25a6?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fa2d4fa92786b9443b8311338fdd25a6?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"ngrok Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"ngrok Blog","logo":"https://media.daily.dev/image/upload/s--718XXxvE--/f_auto,q_auto/v1787469610/logos/ngrok?_a=BAMAMicg0","url":"https://daily.dev/sources/ngrok"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/ngrok-operator-v0-20-0-go-sdk-v2-and-edges-removal-9yezpcjxf","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"devtools,kubernetes,golang","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"ngrok Blog","item":"https://daily.dev/sources/ngrok"},{"@type":"ListItem","position":3,"name":"ngrok-operator v0.20.0: Go SDK v2 and edges removal"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/ngrok-operator-v0-20-0-go-sdk-v2-and-edges-removal-9yezpcjxf#faq","mainEntity":[{"@type":"Question","name":"What CRDs were removed in ngrok-operator v0.20.0?","acceptedAnswer":{"@type":"Answer","text":"ngrok-operator v0.20.0 removes the Tunnel, HTTPSEdge, TLSEdge, TCPEdge, and NgrokModuleSet CRDs. These will be deleted from the cluster automatically during a helm upgrade. HTTPSEdge, TLSEdge, and TCPEdge are replaced by the unified CloudEndpoint CRD, while Tunnel is replaced by the AgentEndpoint CRD. Track breaking CRD removals like this before running a helm upgrade by following ngrok-operator updates on daily.dev."}},{"@type":"Question","name":"What CRD replaces the Tunnel CRD in ngrok-operator?","acceptedAnswer":{"@type":"Answer","text":"The AgentEndpoint CRD replaces the Tunnel CRD in ngrok-operator, aligning with the ngrok SDK and ngrok agent configurations. This change was introduced in ngrok-operator v0.20.0 alongside the removal of HTTPSEdge, TLSEdge, and TCPEdge in favor of a unified CloudEndpoint CRD. Developers migrating Kubernetes ingress configs can follow ngrok CRD changes on daily.dev."}},{"@type":"Question","name":"Why did ngrok-operator switch to ngrok-go SDK v2?","acceptedAnswer":{"@type":"Answer","text":"ngrok-operator switched to v2 of the ngrok Go SDK to eliminate the need for manually handling net.Conn objects from ngrok and the upstream service. Under the old v1 SDK, the operator had to create and join connections manually to copy bytes back and forth; v2 lets it simply forward connections, cutting a decent amount of maintained code. Engineers evaluating Go SDK migrations can follow real-world upgrade rationale like this on daily.dev."}}]}
```

