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

Today, I’m excited to announce the release of version 0.20.0 of the ngrok-operator Helm chart. This release focuses on cleaning up old code and removing CRDs that will no longer be supported as we work to release version v1.0 of the ngrok-operator.

Use of ngrok-go v2

When we first started creating an Ingress/Gateway controller, we were using v1 of the ngrok Go SDK. The API for v1 looked much different and was based on Tunnels. We had to manually handle the net.Conn from ngrok, create a net.Conn to the upstream service, and then join them to copy bytes back and forth.

With this release, we are now using v2 of ngrok’s Go SDK. This has allowed us to remove a decent amount code from the ngrok-operator that we no longer have to maintain. For instance, we can simply forward connections to the upstream service now instead of handling the individual net.Conns.

CRD removal

As mentioned in the our last release announcement, we have removed the following CRDs:

  • Tunnel
  • HTTPSEdge
  • TLSEdge
  • TCPEdge
  • NgrokModuleSet

These CRDs are no longer present in the helm chart and will be removed when running a helm upgrade. For a smooth upgrade experience, make sure you no longer rely on these resources by following the guidance in the discussion.

The HTTPSEdge, TLSEdge, and TCPEdge CRDs are now unified under a simpler more expressive CRD, CloudEndpoint. Likewise, the Tunnel CRD is being replaced by the AgentEndpoint CRD to align with the ngrok SDK and ngrok agent configurations. You can find the full reference for CRDs we currently support in our docs.

Share this post
Jonathan Stacks
Jonathan Stacks is a Staff Infrastructure Engineer with experience in Kubernetes, application development & architecture, automation, & data engineering.
Kubernetes Operator
Kubernetes
Company
Production