Skip to content

Commit

Permalink
Merge branch 'release/v2.2' into donaldyung/from-telepresence.io-2021…
Browse files Browse the repository at this point in the history
…-10-15/release/v2.2
  • Loading branch information
Donny Yung committed Oct 15, 2021
2 parents 51ffb33 + b705f33 commit a6f21fb
Show file tree
Hide file tree
Showing 19 changed files with 470 additions and 530 deletions.
26 changes: 13 additions & 13 deletions faqs.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: "Learn how Telepresence helps with fast development and debugging i

** Why Telepresence?**

Modern microservices-based applications that are deployed into Kubernetes often consist of tens or hundreds of services. The resource constraints and number of these services means that it is often difficult to impossible to run all of this on a local development machine, which makes fast development and debugging very challenging. The fast [inner development loop](../concepts/devloop/) from previous software projects is often a distant memory for cloud developers.
Modern microservices-based applications that are deployed into Kubernetes often consist of tens or hundreds of services. The resource constraints and number of these services means that it is often difficult to impossible to run all of this on a local development machine, which makes fast development and debugging very challenging. The fast [inner development loop](../concepts/devloop/) from previous software projects is often a distant memory for cloud developers.

Telepresence enables you to connect your local development machine seamlessly to the cluster via a two way proxying mechanism. This enables you to code locally and run the majority of your services within a remote Kubernetes cluster -- which in the cloud means you have access to effectively unlimited resources.

Expand All @@ -18,7 +18,7 @@ By using the preview URL functionality you can share access with additional deve

** What protocols can be intercepted by Telepresence?**

All HTTP/1.1 and HTTP/2 protocols can be intercepted. This includes:
All HTTP/1.1 and HTTP/2 protocols can be intercepted. This includes:

- REST
- JSON/XML over HTTP
Expand All @@ -31,7 +31,7 @@ If you need another protocol supported, please [drop us a line](../../../../feed

Yes, you can either set the pod's environment variables on your machine or write the variables to a file to use with Docker or another build process. Please see [the environment variable reference doc](../reference/environment) for more information.

** When using Telepresence to intercept a pod, can the associated pod volume mounts also be mounted my local machine?**
** When using Telepresence to intercept a pod, can the associated pod volume mounts also be mounted by my local machine?**

Yes, please see [the volume mounts reference doc](../reference/volume/) for more information.

Expand All @@ -49,45 +49,45 @@ You can connect to databases or middleware running in the cluster, such as MySQL

** When connected to a Kubernetes cluster via Telepresence, can I access cloud-based services and data stores via their DNS name?**

You can connect to cloud-based data stores and services that are directly addressable within the cluster (e.g. when using an [ExternalName](https://kubernetes.io/docs/concepts/services-networking/service/#externalname) Service type), such as AWS RDS, Google pub-sub, or Azure SQL Database.
You can connect to cloud-based data stores and services that are directly addressable within the cluster (e.g. when using an [ExternalName](https://kubernetes.io/docs/concepts/services-networking/service/#externalname) Service type), such as AWS RDS, Google pub-sub, or Azure SQL Database.

** What types of ingress does Telepresence support for the preview URL functionality?**

The preview URL functionality should work with most ingress configurations, including straightforward load balancer setups.
The preview URL functionality should work with most ingress configurations, including straightforward load balancer setups.

Telepresence will discover/prompt during first use for this info and make its best guess at figuring this out and ask you to confirm or update this.

** Will Telepresence be able to intercept workloads running on a private cluster or cluster running within a virtual private cloud (VPC)?**

Yes. The cluster has to have outbound access to the internet for the preview URLs to function correctly, but it doesn’t need to have a publicly accessible IP address.
Yes. The cluster has to have outbound access to the internet for the preview URLs to function correctly, but it doesn’t need to have a publicly accessible IP address.

The cluster must also have access to an external registry in order to be able to download the Traffic Manager and Traffic Agent containers that are deployed when connecting with Telepresence.

** Why does running Telepresence require sudo access for the local daemon?**

The local daemon needs sudo to create iptable mappings. Telepresence uses this to create outbound access from the laptop to the cluster.
The local daemon needs sudo to create iptable mappings. Telepresence uses this to create outbound access from the laptop to the cluster.

On Fedora, Telepresence also creates a virtual network device (a TUN network) for DNS routing. That also requires root access.

** What components get installed in the cluster when running Telepresence?**

A single Traffic Manager service is deployed in the `ambassador` namespace within your cluster, and this manages resilient intercepts and connections between your local machine and the cluster.
A single Traffic Manager service is deployed in the `ambassador` namespace within your cluster, and this manages resilient intercepts and connections between your local machine and the cluster.

A Traffic Agent container is injected per pod that is being intercepted. The first time a workload is intercepted all pods associated with this workload will be restarted with the Traffic Agent automatically injected.

** How can I remove all of the Telepresence components installed within my cluster?**

You can run the command `telepresence uninstall --everything` to remove the Traffic Manager service installed in the cluster and Traffic Agent containers injected into each pod being intercepted.
You can run the command `telepresence uninstall --everything` to remove the Traffic Manager service installed in the cluster and Traffic Agent containers injected into each pod being intercepted.

Running this command will also stop the local daemon running.

** What language is Telepresence written in?**

All components of the Telepresence application and cluster components are written using Go.
All components of the Telepresence application and cluster components are written using Go.

** How does Telepresence connect and tunnel into the Kubernetes cluster?**

The connection between your laptop and cluster is established via the standard `kubectl` mechanisms and SSH tunnelling.
The connection between your laptop and cluster is established via the standard `kubectl` mechanisms and SSH tunnelling.

<a name="idps"></a>

Expand All @@ -101,8 +101,8 @@ More authentication mechanisms and identity provider support will be added soon.

** Is Telepresence open source?**

Telepresence will be open source soon, in the meantime it is free to download. We prioritized releasing the binary as soon as possible for community feedback, but are actively working on the open sourcing logistics.
Telepresence will be open source soon, in the meantime it is free to download. We prioritized releasing the binary as soon as possible for community feedback, but are actively working on the open sourcing logistics.

** How do I share my feedback on Telepresence?**

Your feedback is always appreciated and helps us build a product that provides as much value as possible for our community. You can chat with us directly on our [feedback page](../../../../feedback), or you can [join our Slack channel](https://a8r.io/Slack) to share your thoughts.
Your feedback is always appreciated and helps us build a product that provides as much value as possible for our community. You can chat with us directly on our [feedback page](../../../../feedback), or you can [join our Slack channel](https://a8r.io/Slack) to share your thoughts.
27 changes: 25 additions & 2 deletions howtos/intercepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: "Start using Telepresence in your own environment. Follow these ste
---

import Alert from '@material-ui/lab/Alert';
import QSTabs from '../quick-start/qs-tabs'
import Platform from '@src/components/Platform';
import QSCards from '../quick-start/qs-cards'

# Intercept a service in your own environment
Expand Down Expand Up @@ -32,7 +32,30 @@ This guide assumes you have a Kubernetes deployment and service accessible publi

## 1. Install the Telepresence CLI

<QSTabs/>
<Platform.TabGroup>
<Platform.MacOSTab>

```shell
# 1. Download the latest binary (~60 MB):
sudo curl -fL https://app.getambassador.io/download/tel2/darwin/amd64/$dlVersion$/telepresence -o /usr/local/bin/telepresence

# 2. Make the binary executable:
sudo chmod a+x /usr/local/bin/telepresence
```

</Platform.MacOSTab>
<Platform.GNULinuxTab>

```shell
# 1. Download the latest binary (~50 MB):
sudo curl -fL https://app.getambassador.io/download/tel2/linux/amd64/$dlVersion$/telepresence -o /usr/local/bin/telepresence

# 2. Make the binary executable:
sudo chmod a+x /usr/local/bin/telepresence
```

</Platform.GNULinuxTab>
</Platform.TabGroup>

## 2. Test Telepresence

Expand Down
45 changes: 41 additions & 4 deletions install/index.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,33 @@
import QSTabs from '../quick-start/qs-tabs'
import OldVersionTabs from './old-version-tabs'
import Platform from '@src/components/Platform';

# Install

Install Telepresence by running the commands below for your OS.

<QSTabs/>
<Platform.TabGroup>
<Platform.MacOSTab>

```shell
# 1. Download the latest binary (~60 MB):
sudo curl -fL https://app.getambassador.io/download/tel2/darwin/amd64/$dlVersion$/telepresence -o /usr/local/bin/telepresence

# 2. Make the binary executable:
sudo chmod a+x /usr/local/bin/telepresence
```

</Platform.MacOSTab>
<Platform.GNULinuxTab>

```shell
# 1. Download the latest binary (~50 MB):
sudo curl -fL https://app.getambassador.io/download/tel2/linux/amd64/$dlVersion$/telepresence -o /usr/local/bin/telepresence

# 2. Make the binary executable:
sudo chmod a+x /usr/local/bin/telepresence
```

</Platform.GNULinuxTab>
</Platform.TabGroup>

## <img class="os-logo" src="../images/logo.png"/> What's Next?

Expand All @@ -15,4 +37,19 @@ Follow one of our [quick start guides](../quick-start/) to start using Teleprese

Use these URLs to download an older version for your OS, replacing `x.y.z` with the versions you want.

<OldVersionTabs/>
<Platform.TabGroup>
<Platform.MacOSTab>

```
https://app.getambassador.io/download/tel2/darwin/amd64/x.y.z/telepresence
```

</Platform.MacOSTab>
<Platform.GNULinuxTab>

```
https://app.getambassador.io/download/tel2/linux/amd64/x.y.z/telepresence
```

</Platform.GNULinuxTab>
</Platform.TabGroup>
2 changes: 1 addition & 1 deletion install/migrate-from-legacy.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Migrate from legacy Telepresence

Telepresence (formerly referenced as Telepresence 2, which is the current major version) has different mechanics and requires a different mental model from [legacy Telepresence 1](/docs/v1/) when working with local instances of your services.
Telepresence (formerly referenced as Telepresence 2, which is the current major version) has different mechanics and requires a different mental model from [legacy Telepresence 1](https://www.telepresence.io/docs/v1/) when working with local instances of your services.

In legacy Telepresence, a pod running a service was swapped with a pod running the Telepresence proxy. This proxy received traffic intended for the service, and sent the traffic onward to the target workstation or laptop. We called this mechanism "swap-deployment".

Expand Down
93 changes: 0 additions & 93 deletions install/old-version-tabs.js

This file was deleted.

27 changes: 25 additions & 2 deletions install/upgrade.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,34 @@
description: "How to upgrade your installation of Telepresence and install previous versions."
---

import QSTabs from '../quick-start/qs-tabs'
import Platform from '@src/components/Platform';

# Upgrade Process
The Telepresence CLI will periodically check for new versions and notify you when an upgrade is available. Running the same commands used for installation will replace your current binary with the latest version.

<QSTabs/>
<Platform.TabGroup>
<Platform.MacOSTab>

```shell
# 1. Download the latest binary (~60 MB):
sudo curl -fL https://app.getambassador.io/download/tel2/darwin/amd64/$dlVersion$/telepresence -o /usr/local/bin/telepresence

# 2. Make the binary executable:
sudo chmod a+x /usr/local/bin/telepresence
```

</Platform.MacOSTab>
<Platform.GNULinuxTab>

```shell
# 1. Download the latest binary (~50 MB):
sudo curl -fL https://app.getambassador.io/download/tel2/linux/amd64/$dlVersion$/telepresence -o /usr/local/bin/telepresence

# 2. Make the binary executable:
sudo chmod a+x /usr/local/bin/telepresence
```

</Platform.GNULinuxTab>
</Platform.TabGroup>

After upgrading your CLI, the Traffic Manager **must be uninstalled** from your cluster. This can be done using `telepresence uninstall --everything` or by `kubectl delete svc,deploy -n ambassador traffic-manager`. The next time you run a `telepresence` command it will deploy an upgraded Traffic Manager.
Loading

0 comments on commit a6f21fb

Please sign in to comment.