Expanding Proxy Support

Published on: 4 Jul 2016 by: Mark Rydstrom

This post is a part of our Octopus 3.4 blog series. Follow it on our blog or our twitter feed.

Octopus Deploy 3.4 has shipped! Read the blog post and download it today!


The Current State

Prior to version 3.4 proxy support in Octopus was limited to your Octopus Server or Tentacle needing to talk to other servers. It was limited to if your Tentacle needed to make web requests in a Powershell script during a deployment, or when the Octopus Server connected to Azure during Azure deployments. Communications between Octopus Server and Tentacles happens via our communications library Halibut, which doesn't know about Proxies.

Current state of proxy support The current state of proxy support in Octopus

This is because Octopus relies on the proxy support in .NET's System.Net.WebRequest, but Halibut works down at the TcpClient level.

Expanding Proxy Support

In 3.4 we've taught Halibut how to swim through proxies. This means you can now tell Polling Tentacles to poll the server through a proxy, and the Octopus Server to connect to Listening Tentacles through a proxy. You can even have different proxy servers for different Tentacles if your network requires it.

This should put an end to our users needing to beg their corporate IT department to make a firewall allowance just for Octopus. (It may also allow the use of Listening Tentacles in some cases where Polling was the workaround.)

Expanded proxy support Coming in 3.4 - proxies everywhere!

Setting it up

Let's take a quick run through how you would configure Octopus to use a proxy when configuring a Listening Tentacle. First you need to setup the proxy details in the Configuration section of Octopus:

Creating a proxy

You can then tell Octopus to communicate with a Listening Tentacle via this proxy in the communication settings area for the Tentacle:

Tell Octopus to use a Proxy for a Tentacle

That's it! Now all communications between the Octopus Server and your Tentacle will go via that proxy. Polling Tentacles are a little different, since Polling Tentacles instigate all communications, we need to setup the proxy at the Tentacle end. When you install a Polling Tentacle you are now given the option of setting up a proxy that the Tentacle will use for polling (it will also be used for the registration call the Tentacle makes during setup):

Setting up the polling tentacle proxy

So there you have it. More proxy support than you can shake a stick at. If this is something that you think would be useful in your Octopus use, why not download the 3.4 beta and try it out, or for more information, please see the Octopus proxy support page.