Back to blog
TELEPRESENCE

JetBrains Telepresence Plugin: Container Swapping & Beyond!

October 3, 2023 | 5 min read

Telepresence 2.16 has several new features, including an IDE plugin and the most-asked-for feature from Telepresence v1!

Earlier this year, we started focusing on bringing Telepresence closer to where developers use it everyday: in their terminal and editor. The Docker Desktop extension and Docker Compose integrations we shipped in previous releases were the start of that effort, and we continue it with Telepresence 2.16, which brings several new features:

  • Replace Container functionality
  • JetBrains IDE plugin
  • System tray menu
  • Telepresence 2.16

Replace Container

This is huge! You can now pass the “--replace” flag to Telepresence when starting an intercept, and Telepresence will temporarily stop all the containers in the remote Pods that you are intercepting. This was an ability of Telepresence v1, and we’re bringing it back! This functionality is most helpful if you work with asynchronous message queues like Kafka, RabbitMQ, Google Pub/Sub, AWS SNS, Azure Service Bus, etc.

When working with these queues and you connect to the cluster using Telepresence, both your local service and the service in the cluster are both listening and potentially pulling messages from the queue, which can mess up your testing scenarios. By replacing the remote containers entirely, you remove that conflict.

Note that this feature can only be used with a Global Intercept since you are replacing the remote container. If you are working with message queues and need to do a Personal Intercept, you’ll need to use headers in your messaging service and the Telepresence RESTful API to check if your service should consume a message.

JetBrains IDE Plugin

The first new feature is a plugin for almost all JetBrains IDEs, including IntelliJ, RubyMine, WebStorm and GoLand. PyCharm support is coming soon! Once you install it from the plugin Marketplace, it will show up in your IDE. You’ll need Telepresence 2.16 installed for the plugin to work. I mostly work in NodeJS and WebStorm is my IDE of choice, the screenshots below are from my personal setup.


Selecting it will open up a menu showing the clusters you have available to connect to, and you can expand a cluster to see available namespaces. Right-clicking on a namespace prompts you to use Telepresence to connect to the cluster.



Once you are connected, you can expand the namespace to see services that are available to intercept.



Choosing that option gives you a menu of options for your intercept, including whether it should be Global or Personal, and an advanced set of options if you need to customize it further.


As a regular JetBrains user, I’m used to integrating all my tooling into the IDE; that’s why I use an IDE over a text editor when I’m doing serious work! Now, Telepresence is right there when I need it to iterate on my code.

System Tray Menu

A quality-of-life feature included in this version is a system tray menu available on MacOS, Windows, and Ubuntu Linux (support for other Linux distros may come in future updates; it’s about the APIs they expose for us to use).

You can use the system tray menu to check status, connect, and disconnect.



It’s powered by the local Telepresence daemon, so if you connect from the command line or your IDE, it will all get reflected in the system tray menu, and vice versa.

Connects locked to namespace

There is a behavior change in Telepresence 2.16 that we want to highlight. To improve DNS resolution, we’re moving the –namespace flag from the intercept command to the connect command. When connecting, you’ll now need to specify a namespace to connect to. You can then intercept any service in that namespace without specifying the namespace again. You’ll still be able to send requests to services in any other namespace like you can now.

Other Product Updates

Cloud

We’ve updated the UI on the subscriptions page in your profile to make it clearer what subscriptions are active for your account and organization, how much of any service quotas you’ve used, and if you have any products available in your subscription that you’re taking advantage of.

Edge Stack and Emissary-Ingress

Edge Stack and Emissary-Ingress 3.8.1 shipped in mid-September with an upgrade to Go v1.20.8, which fixed two CVEs.

Try the Latest Release Today

The JetBrains plugin, system tray menu, and Replace Container features are available by upgrading to the latest Telepresence version. If you’ve never tried Telepresence, check out the quickstart, which walks you through the features in 10 minutes or less.


Learn More at What’s New Wednesday

You can see demos of all these new features at our What’s New Wednesday session!