Telepresence 2 is open source and available to use now. Rewritten in Go to be faster and more resilient, Telepresence 2 has a new architecture to better serve Kubernetes development teams with multiple users. Try it today and share your feedback with the team.
- When using the vpn-tcp method on Linux, the initial
iptablescheck will not hang on DNS lookups. Thanks to Peter Janes for the patch. (#1476)
- The swap deployment operation no longer fails on Deployments that have startup probes configured. Thanks to GitHub user deicon and Anton Troshin for the patch. (#1479)
- No longer provide pre-built packages for Ubuntu 19.10 Eoan Ermine.
- When swapping a Deployment, Telepresence correctly sets annotations and other metadata in the proxy Pod. (#1430)
- The Telepresence proxy runs in a bare Pod rather than one managed by a Deployment.
If you experience problems, please file an issue, and set the environment variable
TELEPRESENCE_USE_DEPLOYMENTto any non-empty value to force the old behavior. Thanks to Maru Newby and Vladimir Kulev for early bug fixes. (#1041)
- When using the vpn-tcp method with a local cluster, Telepresence now supports resolving additional names via the Telepresence proxy. This makes it possible to properly handle DNS resolution for Minikube ingresses. Thanks to Vladimir Kulev for the patch. (#1385)
- Telepresence now automatically exposes ports defined in the Deployment/DeploymentConfig when using an existing Deployment. Telepresence already did this when swapping deployments. Thanks to Aslak Knutsen for the patch. (#1356)
- When running on Windows Subsystem for Linux, Telepresence chooses a temporary directory that exists on Debian/Ubuntu WSL installations.
It falls back to the old value if
/mnt/cis not available. Thanks to Mark Lee for the patch. (#1176)
- Telepresence avoids proxying the external IP of a local cluster when using the vpn-tcp method. Thanks to Vladimir Kulev for the patch. (#1380)
- Telepresence avoids generating global networks when guessing Pod and Service networks for the vpn-tcp method. Thanks to Israël Hallé for the patch. (#1420)
TELEPRESENCE_USE_OCP_IMAGEenvironment variable can be set to
NOto require or disallow use of Telepresence's OCP-specific proxy image, or to
AUTOto let Telepresence decide as before. Thanks to Maru Newby for the patch.
- When performing a swap deployment operation with the container method, host entries are reflected in the local container. Thanks to Charlie Catney for the patch. (#1097)
- When using the vpn-tcp method, DNS resolution of names of the form xxx.yyy.zzz.svc is supported. This is required to handle Strimzi kafka auto-generated addresses for example (see strimzi/strimzi-kafka-operator#2656). Thanks to Aurelien Grenotton for the patch. (#560)
- Telepresence creates new deployments using
kubectl createrather than
kubectl run. This allows the new deployment operation to succeed with
kubectlversion 1.18 and later. Thanks to Maru Newby for the patch. (#1297)
- The vpn-tcp method uses an even more robust heuristic to determine the Pod IP space. Thanks to Maru Newby for the patch. (#1201)
- Documentation for using Kubernetes client libaries has been expanded. Thanks to Guray Yildirim for the patch. (#1245)
- Telepresence has native packages for Fedora 31 and Ubuntu Eoan. Packages for even newer releases will be available once our provider supports them. (#1236)
- Telepresence is no longer packaged for Ubuntu 18.10 (Cosmic Cuttlefish) or Ubuntu 19.04 (Disco Dingo) as those releases have reached end of life.
--also-proxyproxies all resolved IPs for a hostname. Thanks to Markus Maga for the patch. (#379)
- The context specified at the command line is used with all startup operations. Thanks to Bret Palsson for the patch. (#1190)
- The vpn-tcp method uses a more robust heuristic to determine the Pod IP space. Thanks to Simon Trigona for the patch. (#1201)
Backwards incompatible changes:
- Telepresence uses a new OpenShift-specific proxy image when it detects an OpenShift cluster. It should no longer be necessary to modify OpenShift cluster policies to allow Telepresence to run. The OpenShift proxy image is based on CentOS Linux (instead of Alpine), which means it is significantly larger than the Kubernetes proxy image, so you may notice additional startup latency. Use of a CentOS base image should allow for easier approval or certification in some enterprise environments. Thanks to GitHub user ReSearchITEng for the patch. (#1114)
- Telepresence uses a new strategy to detect an OpenShift cluster.
openshift.iois present in the output of
kubectl api-versions, Telepresence treats the cluster as OpenShift. It prefers
kubectland uses the OpenShift-specific image as above. Thanks to Bartosz Majsak for the original patch; blame to the Ambassador Labs team for errors in the ultimate implementation. (#1139)
- Telepresence supports forwarding traffic to and from other containers in the pod. This is useful to connect to proxy/helper containers (
--to-pod) and to use adapters/agents sending traffic to your app (
- When using the
vpn-tcpmethod on MacOS, Telepresence will flush the DNS cache once connected. This can be useful to clear cached NXDOMAIN responses that were populated when Telepresence was not yet connected. Thanks to Karolis Labrencis for the patch. (#1118)
- On WSL (Windows 10), Telepresence uses a Docker-accessible directory as the temporary dir. Thanks to Shawn Dellysse for the patch. (#1148)
- The connectivity test for the inject-tcp method is able to succeed in more cluster configurations.
The test hostname is now
kubernetes.default.svc.cluster.local. Thanks to Mohammad Teimori Pabandi for the patch. (#1141) (#1161)
- You can set the Kubernetes service account for new and swapped deployments using the
--serviceaccountoption. Thanks to Bill McMath and Dmitry Bazhal for the patches. (#1093)
- When using the container method, you can forward container ports to the host machine. This can be useful to allow code running in your container to connect to an IDE or debugger running on the host. (#1022)
- When using the container method, Telepresence can use a Docker volume to mount remote volumes.
This makes it possible to use volumes even if you don't have mount privileges or capabilities on your main system, e.g. in a container.
See the documentation for more about the new
--docker-mountfeature. This is Linux-only for the moment: #1135. Thanks to Sławomir Kwasiborski for the patch.
- When using the default
vpn-tcpmethod, you can use the
--local-clusterflag to bypass local cluster heuristics and force Telepresence to use its DNS loop avoidance workaround.
- Telepresence sets the
commandfield when swapping a deployment. Thanks to GitHub user netag for the patch.
- When using the container method, Telepresence notices if the Docker daemon is not local and reports an error. (#873)
- Telepresence is somewhat more robust when working with a local cluster. (#1000)
- Telepresence no longer crashes on
- The CPU limit for the Telepresence pod for new deployments is now 1, fixing performance degradation caused by CPU time throttling. See https://github.com/kubernetes/kubernetes/issues/67577 and https://github.com/kubernetes/kubernetes/issues/51135 for more information. Thanks to Zhuo Peng for the patch. (#1120)
- When using the
inject-tcpmethod, Telepresence no longer tries to connect to google.com to check for connectivity. Now it tries to connect to kubernetes.default.svc.cluster.local, which should be accessible in common cluster configurations. Thanks to GitHub user ReSearchITEng for the patch.
- Telepresence detects an additional name for Docker for Desktop. Thanks to William Austin for the patch.
- Telepresence once again exits when your process finishes. (#1052)
- When using the vpn-tcp method in a container, Telepresence warns you if it is unable to use
iptablesdue to missing capabilities, instead of crashing mysteriously much later. (#1054)
- Telepresence can use an OpenShift DeploymentConfig with the
--deploymentoption. Thanks to Aslak Knutsen for the patch. (#1037)
- The unprivileged proxy image switches to the intended UID when unexpectedly running as root.
This remedies the "unprotected key file" warning from
sshdand the subsequent proxy pod crash seen by some users. (#1013)
- Attaching a debugger to the process running under Telepresence no longer causes the session to end. Thanks to Gigi Sayfan for the patch. (#1003)
- If you make a pull request on GitHub, unit tests and linters will run against your PR automatically. We hope the quick automated feedback will be helpful. Thank you for your contributions!
- Telepresence correctly forwards privileged ports when using swap-deployment. (#983)
- Telepresence once again operates correctly with large clusters. (#981)
- Telepresence no longer crashes when the
- Additional timeouts around DNS lookups should make Telepresence startup more reliable when using the default vpn-tcp method. (#986)
- When calling
sudo, Telepresence offers a link to documentation about why elevated privileges are required. (#262)
TELEPRESENCE_MOUNTSenvironment variable contains a list of remote mount points. See the documentation for more information and example usage. Thanks to GitHub user turettn for the patch. (#917)
- Telepresence no longer crashes when used with kubectl 1.14. (#966)
- Telepresence no longer quits if its
kubectl logssubprocess quits. (#598)
- Telepresence waits until a deployment config on OpenShift is successfully rolled back to its original state before proceeding with further cleanup. Thanks to Bartosz Majsak for the patch. (#929)
- Telepresence tries to detect Kubernetes running with
kind(kube-in-docker) and work around networking issues the same way as for Minikube. Thanks to Rohan Singh for the patch. (#932)
- Telepresence accepts private Docker registries as sources for required images when using
TELEPRESENCE_REGISTRY. Thanks to GitHub user arroo for the patch. (#967)
- Telepresence's container method supports non-standard cluster DNS search domains. Thanks to Loïc Minaudier for the patch. (#940)
- Telepresence has a native package for the soon-to-be-released Ubuntu Dingo.
- Improved the Java development documentation with updated Maven debug options for JDK versions 5-8. Thanks to Sanha Lee for the patch. (#955)
Backwards incompatible changes:
- A successful Telepresence session now exits with the return code of your process. This should make it easier to use Telepresence in scripts. (#886)
- Telepresence should no longer crash if the terminal width is unavailable. (#901)
- The container method now outputs the same helpful text about which ports are exposed as the other methods do. (#235)
- Telepresence tries to detect Kubernetes in Docker Desktop and work around networking issues the same way as for Minikube. Thanks to Rohan Singh for the patch. (#736)
- Support for OpenShift has been brought up to date. Thanks to Bartosz Majsak for the patch.
- Telepresence masks (hides) Kubernetes access tokens in the log file. Previously, access tokens would be logged when running in verbose mode. Thanks to Bartosz Majsak for the patch. (#889)
- Telepresence has native packages for the recently-released Fedora 29 and Ubuntu Cosmic. (#876)
- When using the container method, all outgoing traffic is directed to the cluster.
It is no longer necessary or meaningful to use
- Telepresence shows more information when a background process dies unexpectedly, including the last few lines of output. If this happens during startup, the output is included in the crash report. (#842)
- Telepresence is less likely to get confused by network setups that have IPv6 enabled. (#783)
- Telepresence outputs a warning if cluster and client versions differ greatly. (#426)
- Instead of crashing, Telepresence reports an error when
- Telepresence no longer ignores the context argument when checking whether the selected namespace exists. (#787)
- Telepresence functions in more restrictive cluster environments because the proxy pod no longer tries to modify the filesystem. (#848)
- When a background process dies unexpectedly, Telepresence will notice much sooner. This is particularly helpful during session start, as Telepresence can sometimes avoid waiting through a long timeout before crashing. (#590)
- Cleanup of background processes is more robust to individual failures. (#586)
- The container method no longer uses
socatto connect the local container to the cluster, relying on
sshport forwarding instead. If you've had trouble with Telepresence's use of the Docker bridge interface (typically
docker0on Linux, unavailable on Windows), this change avoids all of that. This is technically a breaking change, as ports 38022 and 38023 are used by the new machinery. Those ports are now unavailable for user code. In practice, most users should not notice a difference. (#726)
./builddevelopment script no longer exists. Its functionality has been merged into the Makefile. See
make helpfor the new usage information. (#839)
- Telepresence no longer crashes at launch for OpenShift/MiniShift users. Thanks to Tom Ellis for the patch. (#781)
- When a new version is available, Telepresence will tell you at the end of the session. (#285)
- Telepresence reports an error message when the specified namespace is not found. (#330)
- The container method no longer crashes when no ports are exposed. (#750)
- Telepresence detects that it is running as root and suggests the user not launch Telepresence under sudo if there is trouble talking to the cluster. Thanks to Rohan Gupta for the patch. (#460)
- Fixed the
bash--norctypo introduced in 0.91. (#738)
- Conntrack, iptables, and a few other dependencies are automatically found on more Linux distributions now. (#278)
- Telepresence no longer crashes in the presence of an empty or corrupted cache file. (#713)
- Fixed a regression in the Telepresence executable mode bits in packages. (#682)
- Fixed other packaging-related issues.
- When launching the user's container (when using the container method), if the
sudo, Telepresence now uses
sudo -Eto ensure that environment variables get passed through to the container. This fixes a regression caused by the fix for multi-line environment variables (#301). (#672)
- Various points in the Kubernetes stack have timeouts for idle connections. This includes the Kubelet, the API server, or even an ELB that might be in front of everything. Telepresence now avoids those timeouts by periodically sending data through its open connections. In some cases, this will prevent sessions from ending abruptly due to a lost connection. (#573)
- Telepresence can optionally emit the remote environment as a JSON blob or as a
.env-format file. Use the
--env-fileoptions respectively to specify the desired filenames. See https://docs.docker.com/compose/env-file/ for information about the limitations of the Docker Compose-style
.envfile format. (#608)
- Telepresence can now transfer complex environment variable values without truncating or mangling them. (#597)
- The container method now supports multi-line environment variable values. (#301)
- Telepresence avoids running afoul of lifecycle hooks when swapping a deployment. (#587)
- By default, the Telepresence proxy runs in the cluster as an unprivileged user; as built, the proxy image gives up root privileges. However, when the proxy needs to bind to privileged ports, it must run as root. Instead of using the security context feature of Kubernetes to gain root, Telepresence now uses a different image that does not give up root privileges. This allows Telepresence to run in clusters that lock down the Kubernetes security context feature. (#617)
- You can set
$TELEPRESENCE_ROOTto a known path using the
--mount=/known/pathargument. See the volumes documentation for example usage. (#454)
- Turn off volume support entirely with
The swap-deployment operation works differently now.
The original method saved a copy of the deployment manifest, deleted the deployment, and then created a deployment for Telepresence. To clean up, it deleted the Telepresence deployment and recreated the original deployment using the saved manifest. The problem with this approach was that an outside system managing known deployments could clobber the Telepresence deployment, causing the user's Telepresence session to crash mysteriously.
The new method creates a separate deployment for Telepresence with the same labels as the original deployment and scales down the original deployment to zero replicas. Services will find the new deployment the same way they found the original, via label selectors. To clean up, it deletes the Telepresence deployment and scales the original deployment back to its previous replica count.
An outside system managing known deployments should not touch the Telepresence deployment; it may scale up the original and steal requests from the Telepresence session, but at least that session won't crash mysteriously as it would before. (#575)
- This release fixes startup checks for cluster access to avoid crashing or quitting unnecessarily when sufficient access is available.
- Telepresence requires fewer cluster permissions than before. The required permissions are now documented for Kubernetes. (#568)
- When using the vpn-tcp method, DNS queries from the domain search path no longer yield NXDOMAIN. Unfortunately, the expected follow-up query does not occur under some network conditions. This change fixes a DNS regression introduced in 0.79. (#578)
- This release corrects a race condition in subprocess output capture when using the
- Telepresence now supports IPv4 reverse lookups when using
- No more crash when Telepresence cannot write to its log file. (#459)
- Fixed remaining instances of logfile content that was not time and origin stamped.
As a side-effect, the
stamp-telepresencecommand has been removed. (#390)
- The commands that Telepresence launches have always been recorded in the logfile. Now they are formatted so they can be copy-pasted into your terminal in most cases.
- The beginning of the logfile contains more information about your local and cluster setup to aid with bug reports and troubleshooting.
- The crash reporter does a better job of capturing relevant information and tries to avoid missing the end of the logfile. (#446) (#466)
- When using the vpn-tcp method, DNS queries from the domain search path (the search list in
/etc/resolv.conf) now yield NXDOMAIN instead of implicitly stripping off the search suffix. The resolver library will eventually query for the bare name (without the search suffix), at which point Telepresence DNS will return the expected IP address in the cluster. (#192)
- Telepresence starts roughly five seconds faster on every invocation thanks to some basic caching of cluster information.
The cache is stored in
~/.cache/telepresenceand is cleared automatically after twelve hours. Delete the contents of that directory to clear the cache manually.
- When using the container method, Telepresence waits longer for networking to start before giving up. This may help users who sometimes experience higher latency between their local network and their Kubernetes cluster. (#340) (#539)
- Updates to the release process.
- Added the ability to specify
--init=falseflag when using
--docker-runThanks to GitHub user CMajeri for the patch. (#481)
- Telepresence now makes a greater effort to account for local DNS search domain configuration when bridging DNS to Kubernetes when using
- Telepresence should no longer get confused looking for the route to the host when using the container method. (#532)
- A new end-to-end test suite setup will help us reduce the cycle time associated with testing Telepresence. We added documentation introducing developers to Telepresence end-to-end test development. (#400)
- Improved cleanup of our testing cluster used by CI.
- Reduced the verbosity of DNS lookup failures in the logs. (#497)
- Telepresence correctly handles the
-p) Docker option by incorporating it into the
dockerinvocation that sets up networking. (#387)
- The end of startup and the beginning of shutdown are now both clearly indicated in
- Environment and testing setup is no longer entangled with TravisCI setup.
buildscripts are used by continuous integration and can be used by developers as well. (#374)
- Continuous integration operations, specifically testing, have been moved to CircleCI. The release process remains on TravisCI, at least for this release. (#397) (#417)
--also-proxyfeature supports specifying IP ranges (in CIDR notation) in addition to hostnames and individual IPs. (#375)
- Telepresence source code is no longer one giant Python file. This will allow for quicker development going forward. (#377)
- Telepresence source code conforms to
yapfformatting. The lint stage of the CI pipeline enforces this. (#368)
- The Telepresence source tree is organized more like a typical Python project. This will allow for quicker development going forward. (#344)
- Telepresence has native packages for Ubuntu Xenial, Zesty, and Artful, and for Fedora 26 and 27. (#269)
- An install script is included for installing Telepresence from source. (#347)
- Telepresence no longer crashes on deployments containing Services of type ExternalName. Thanks to Niko van Meurs for the patch. (#324, #329)
- The anonymous usage information reported by Telepresence now includes the operation (e.g., "swap-deployment") and method (e.g., "vpn-tcp") used. This will help us focus development resources.
- Telepresence is no longer packaged for Ubuntu 16.10 (Yakkety Yak) as that release has reached end of life.
- Telepresence no longer crashes when the deployment has multi-line environment variables. (#301)
- Telepresence now sets a CPU limit on its Kubernetes pods. (#287)
- Deployments that do not use the default service account (and thus don't automatically have access to service account credentials for the k8s API) are now supported. Thanks to Dino Hensen for the patch. (#313, #314)
- Telepresence documentation uses GitBook.
- The macOS Homebrew installation no longer assumes that you have Homebrew installed in the default location (
/usr/local). It also no longer requires
virtualenvto be installed.
- The Telepresence logfile now has time and source stamps for almost every line. This will help us diagnose problems going forward.
- Clarified which support binaries are being looked for and where on startup.
- The website now has a community page.
- Cleaned up some links (HTTP vs HTTPS, avoid redirection).
- Avoid a dependency conflict in the macOS Homebrew installation by dropping the required dependency on
socat. You will still need to install
socatif you want to use
--method container, but installing it separately from Telepresence appears to work fine. Thanks to Dylan Scott for chasing this down. (#275)
make build-k8s-proxy-minikubeto work on macOS. Same for Minishift.
- Documented macOS limitations with
--method inject-tcpdue to System Integrity Protection. Thanks to Dylan Scott for the detailed write-up. (#268)
- The website has TLS enabled
- Telepresence reports anonymous usage information during startup
- Fixed regression in
--swap-deploymentwhere it would add a proxy container instead of replacing the existing one. (#253)
- Support for Linux distributions using systemd-resolved, like Ubuntu 17.04 and Arch, now works when there is no search domain set. Thanks to Vladimir Pouzanov for the bug report, testing, and useful suggestions. (#242)
- Better method for bypassing DNS caching on startup, which should be more robust.
- Instead of hardcoding /16, using a better heuristic for guessing the IP range for Services. Thanks to Vladimir Pouzanov for the bug report. (#243)
- SIGHUP now clean ups resources the same way SIGTERM and hitting Ctrl-C do. (#184)
- Environment variables created using ConfigMaps and Secrets (using
envFrom) are now made available to the local process. Thanks to Tristan Pemble for the bug report. (#230)
- When using
--swap-deployment, ports listed in the existing Deployment are automatically forwarded. Thanks to Phil Lombardi and Rafi Schloming for the feature request. (#185)
- Switched to upstream
sshuttleinstead of using forked version.
- When using
--swap-deployment, many more container options that would break
telepresenceare swapped out. Thanks to Jonathan Wickens for the bug report. (#226)
- Fixed regression that broke Docker on OS X. Thanks to Vincent van der Weele for the bug report. (#221)
- Fix DNS lookups on macOS in
vpn-tcpmode. Thanks to number101010 for the bug report. (#216)
--helpnow includes some examples. (#189)
--docker-runcontainer no longer gets environment variables from the host, only from the remote pod. (#214)
--methodis now optional, defaulting to "vpn-tcp", or "container" when
--docker-runis used. (#206)
- If no deployment method (
--new-deploymentis used by default with a randomly generated name. (#170)
--method vpn-tcpnow works on minikube and minishift. As a result we now recommend using it as the default method. (#160)
- Support more versions of Linux in container mode. Thanks to Henri Koski for bug report and patch. (#202)
--exposecan now expose a different local port than the one used on the cluster side. (#180)
- Fix regression where exposing ports <1024 stopped working. (#194)
- Fix regression where tools like
pingweren't hidden on Mac in
- Telepresence can now be used to proxy Docker containers, by using
--method containertogether with
--docker-run. Thanks to Iván Montes for the feature request and initial testing. (#175)
sshconfig is not used, in case it has options that break Telepresence. Thanks to KUOKA Yusuke for the bug report, and Iván Montes for debugging and the patch to fix it. (#174)
- If no
current-contextis set in the Kubernetes config, then give a nice error message indicating the need for passing
telepresence. Thanks to Brandon Philips for the bug report. (#164)
ocwill not be used unless we're sure we're talking to an OpenShift server. This is useful for Kubernetes users who happen to have a
ocbinary that isn't the OpenShift client. Thanks to Brandon Philips for the bug report. (#165)
- Backwards incompatible change: Telepresence now supports a alternative to
LD_PRELOAD, a VPN-like connection using sshuttle. As a result the
telepresencecommand line now has an extra required argument
- Added shortcuts for a number of the command line arguments.
--swap-deploymentnow works in more cases on OpenShift, in particular when
oc new-appwas used.
--swap-deploymentallows replacing an existing Deployment with Telepresence, and then swapping back on exiting the
telepresencecommand line. (#9)
- Preliminary support for OpenShift Origin. Thanks to Eli Young for lots of help figuring out the necessary steps. (#132)
- Pods created with
--new-deploymentare now looked up using a unique ID, preventing issues where a pod from a previous run was mistakenly used. (#94)
- The Kubernetes-side container used by Telepresence no longer runs as root. This will make support for OpenShift Origin easier, as well as other environments that don't want containers running as root. Thanks to Eli Young for the patch.
- Increased connection timeout from 3 seconds to 10 seconds, in the hopes of reducing spurious disconnects. (#88)
- Common commands that won't work under Telepresence, like
nslookup, will now fail with an appropriate error messages. (#139)
telepresencefails with a better error if a too-old version of Python is used. Thanks to Victor Gdalevich for the bug report. (#136)
telepresenceautomatic bug reporting code is triggered by errors during parsing command line arguments.
- If namespace was set using
kubectl config set-contextit will no longer cause Telepresence to break. Thanks to spiddy for the bug report. (#133)
--runlets you run a command directly as an alternative to running a shell, e.g.
telepresence --new-deployment test --run python3 myapp.py.
telepresencestarts up much faster by polling more frequently and reducing unnecessary sleeps.
~/.bashrcis no longer loaded by the Telepresence shell, to ensure it doesn't break when e.g.
kubectlis run there. Thanks to discopalevo for the bug report. (#126)
- Log files are written to original path, not wherever you happen to
- Better error messages when a custom Deployment is missing or misconfigured. (#121)
- Telepresence can run on Windows using the Windows Subsystem for Linux.
- Telepresence now sets a RAM limit on its Kubernetes pods.
- Telepresence Kubernetes pod exits faster.
Releases 0.31 to 0.40 were spent debugging release automation.
- Telepresence can now be installed via Homebrew on OS X.
- Fix surprising error about
umountwhen shutting down on Linux.
- Remote volumes are now accessible by the local process. (#78)
--contextoption allows choosing a
kubectlcontext. Thanks to Svend Sorenson for the patch. (#3)
- Telepresence no longer breaks if compression is enabled in
~/.ssh/config. Thanks to Svend Sorenson for the bug report. (#97)
Backwards incompatible changes:
- New requirements: openssh client and Python 3 must be installed for Telepresence to work. Docker is no longer required.
- Docker is no longer required to run Telepresence. (#78)
- Local servers just have to listen on localhost (127.0.0.1) in order to be accessible to Kubernetes; previously they had to listen on all interfaces. (#77)
0.25 failed the release process due to some sort of mysterious mistake.
KUBECONFIGenvironment variable will now be respected, so long as it points at a path inside your home directory. (#84)
- Errors on startup are noticed, fixing issues with hanging indefinitely in the "Starting proxy..." phase. (#83)
- Telepresence no longer uses lots of CPU busy-looping. Thanks to Jean-Paul Calderone for the bug report.
- Telepresence can now interact with any Kubernetes namespace, not just the default one. (#74)
Backwards incompatible changes:
- Running Docker containers locally (
--docker-run) is no longer supported. This feature will be reintroduced in the future, with a different implementation, if there is user interest. Add comments here if you're interested.
- Telepresence exits when connection is lost to the Kubernetes cluster, rather than hanging.
- Telepresence notices when the proxy container exits and shuts down. (#24)
- Telepresence only copies environment variables explicitly configured in the
Deployment, rather than copying all environment variables.
- If there is more than one container Telepresence copies the environment variables from the one running the
datawire/telepresence-k8simage, rather than the first one. (#38)
- Fixed another issue with
--run-shellon OS X.
--run-shellon OS X, allowing local processes to be proxied.
- Kubernetes-side Docker image is now smaller. (#61)
- When using
--run-shell, allow access to the local host. Thanks to Jean-Paul Calderone for the bug report. (#58)
- Fix problem with tmux and wrapping when using
--run-shell. Thanks to Jean-Paul Calderone for the bug report. (#51)
- Fix problem with non-login shells, e.g. with gnome-terminal. Thanks to Jean-Paul Calderone for the bug report. (#52)
- Use the Deployment's namespace, not the Deployment's spec namespace since that may not have a namespace set. Thanks to Jean-Paul Calderone for the patch.
- Hide torsocks messages. Thanks to Jean-Paul Calderone for the bug report. (#50)
--run-shellon OS X, hopefully temporarily, since it has issues with System Integrity Protection.
- Fix Python 3 support for running
--run-shell, which allows proxying against local processes. (#1)
- Increase time out for pods to start up; sometimes it takes more than 30 seconds due to time to download image.
- Better way to find matching pod for a Deployment. (#43)
- Fixed race condition that impacted
- Fixed race condition the first time Telepresence is run against a cluster. (#33)
- Telepresence now detects unsupported Docker configurations and complain. (#26)
- Better logging from Docker processes, for easier debugging. (#29)
- Fix problem on OS X where Telepresence failed to work due to inability to share default location of temporary files. (#25)
- Basic logging of what Telepresence is doing, for easier debugging.
- Check for Kubernetes and Docker on startup, so problems are caught earlier.
- Better error reporting on crashes. (#19)
- Fixed bug where combination of
--detachbroke Telepresence on versions of Docker older than 1.13. Thanks to Jean-Paul Calderone for reporting the problem. (#18)