Telepresence users who’d like to share their development progress with fellow distributed team mates now have the chance to do so via the newly released Ambassador Cloud. Built by the team behind API gateway Ambassador Edge Stack and Telepresence itself, the service provides developers with capabilities to test services locally without deploying them to a cluster first, while offering them with a way of sharing the results for tests and reviews.
To realise this, Ambassador Cloud injects a Telepresence proxy sidecar into a pod, which can then intercept traffic meant for the service and reroute it to a local copy. This service copy can then be altered with regular local development tooling to add new functionality or fix issues and tested by making requests against the remote cluster. The technique is similar to the one in Telepresence, however the system doesn’t set up a two-way proxy since the sidecar approach makes it easier to have multiple intercepts.
In order to share the local changes, Ambassador Cloud generates a preview URL for each intercepted service, which can then be accessed by anyone “with a GitHub account affiliated with the same organization as the sender”, so that they can have a look and share feedback. A dashboard containing shared intercepts and the team members who have accessed the changed service is designed to help keep an overview of the things already tried.
As well as a GitHub account, interested users need to be running Linux or macOS and install the latest version of Ambassador’s Telepresence binary. The latter is quite important, as Telepresence seemingly needed more than a light update in order to make the new offering work without glitches. For one, the Ambassador team decided to rewrite the project in Go to speed up the tool, as confirmed in the blog post accompanying the release.
The project’s architecture had to be reworked as well, in order to be able to deploy a sidecar proxy next to the service that is meant to be intercepted for improved reliability and control. More control is also the reason behind a new persistent in-cluster Telepresence agent which, amongst other things, allows admins to set RBAC permissions at cluster level and enables auto-reconnect support.
With these substantial changes, it is a little odd to not see them reflected in the official Telepresence codebase: the project has been hosted by open source purveyors CNCF since 2018, so the thought of doing the changes in the open and collating feedback must have crossed the team’s mind.
Ambassador Labs has, however, promised the open sourcing of the reworked code in time for KubeCon EU, which is scheduled to take place in early May 2021. Luckily, most of the maintainers work for Ambassador anyway, so they’ll likely have an eye on the changes making their way in until then.