These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)
Commit: | 1bc8fd0 | |
---|---|---|
Author: | Thomas Hallgren |
Network plugin work to be merged down Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | c353f0a | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Fix bad neighbor issue Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | aaed9ae | |
---|---|---|
Author: | Thomas Hallgren |
Fix bad neighbor issue Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 26ef550 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add Teleroute network driver. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | ae3ad85 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add the ability to use a name for the target host. Knowing the IP of the local container that acts as the handler service for an intercept, replace, or wiretap is not possible until the container has been started. This commit introduces the concept of target host synthetic IP. A named target host will be replaced by a random synthesized IPv6 IP when the engagement is initialized. Later, when the traffic-agent container dials this IP, the original name will be found and resolved into an IP, thus deferring the name resolution until an actual request is made to the engaged pod. This allows the engagement to be created before the creation of the handler service, and removes the need for the user to use IP addresses. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 82b8dc3 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Lint fixes. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | f983034 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add Teleroute network driver. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 26ab6e1 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
rewire docker-run Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | e5a4180 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add the ability to use a name for the target host. Knowing the IP of the local container that acts as the handler service for an intercept, replace, or wiretap is not possible until the container has been started. This commit introduces the concept of target host synthetic IP. A named target host will be replaced by a random synthesized IPv6 IP when the engagement is initialized. Later, when the traffic-agent container dials this IP, the original name will be found and resolved into an IP, thus deferring the name resolution until an actual request is made to the engaged pod. This allows the engagement to be created before the creation of the handler service, and removes the need for the user to use IP addresses. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | b8f3207 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
W.I.P. Telepresence Docker Network Plugin Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | c93486d | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Update module dependencies. Signed-off-by: Thomas Hallgren <thomas@tada.se>
The documentation is generated from this commit.
Commit: | 3dbb284 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
W.I.P. Telepresence Docker Network Plugin Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | e8afe9c | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add a telepresence wiretap command. A wiretap is a read-only form of an intercept. The original container will still receive the wiretapped traffic, and a copy of the traffic is sent to the client. Writes on the client connection are discarded. Similar to an ingest, a wiretap will always enforce read-only status on all volume mounts, and since the wiretap then is completely read-only, there's no limit to how many simultaneous wiretaps that can be served. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 18c9ed0 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Decouple downloads from getambassador.io Changes download links to point directly to GitHub instead of being forwarded from getambassador.io. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 7d61284 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Decouple downloads from getambassador.io Changes download links to point directly to GitHub instead of being forwarded from getambassador.io. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | d73190b | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Improved control over remote volume mounts using mount policies Mount policies, that affects how the telepresence traffic-agent shares the pod's volumes, and also how the client will mount them, can now be provided using the Helm chart value `agent.mountPolicies` or as JSON object in the workload annotation `telepresence.io/mount-policies`. A mount policy is applied to a volume or to all paths matching a path-prefix (distinguished by checking if first character is a '/'), and can be one of `Ignore`, `Local`, `Remote`, or `RemoteReadOnly`. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | e63d5a0 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Make the DNS recursion check configurable and turn it off by default. Very few systems experience a DNS recursion lookup problem. It can only occur when the cluster runs locally and the cluster's DNS is configured to somehow use DNS server that is started by Telepresence. The check is therefore now configurable through the client setting `dns.recursionCheck`, and it is `false` by default. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | b84c558 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Cache port-forward dialers on pod ID, not pod name and namespace. StatefulSets reuse pod-names so using that as a cache key is a no-go. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 6670491 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Use podUid to identify pods. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | b4c716d | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
New telepresence replace command. The new `telepresence replace` command simplifies and clarifies container replacement. Previously, the `--replace` flag within the `telepresence intercept` command was used to replace containers. However, this approach introduced inconsistencies and limitations: * **Confusion:** Using a flag to modify the core function of a command designed for traffic interception led to ambiguity. * **Inaccurate Behavior:** Replacement was not possible when no incoming traffic was intercepted, as the command's design focused on traffic routing. To address these issues, the `--replace` flag within `telepresence intercept` has been deprecated. The new `telepresence replace` command provides a dedicated and consistent method for replacing containers, enhancing clarity and reliability. Key differences between `replace` and `intercept`: 1. **Scope:** The `replace` command targets and affects an entire container, impacting all its traffic, while an `intercept` targets specific services and/or service/container ports. 2. **Port Declarations:** Remote ports specified using the `--port` flag are container ports. 3. **No Default Port:** A `replace` can occur without intercepting any ports. 4. **Container State:** During a `replace`, the original container is no longer active within the cluster. The deprecated `--replace` flag still works, but is hidden from the `telepresence intercept` command help, and will print a deprecation warning when used. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 9009905 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Drop use of the telepresence-agents configmap. This commit removes the complex pattern used when engaging with a workload to get a traffic-agent injected into its pods. 1. Generate an agent configuration. 2. Store the configuration in the `telepresence-agents` configmap. 3. Wait for the agent to arrive. A watcher on the `telepresence-agents` configmap would now get an event and discover the new or modified configuration. It took the following steps: 1. Determine if a rollout is needed. 2. Perform a rollout to trigger the mutating webhook. 1. Check if the pod has a configuration entry in the configmap. 2. Patch pod if necessary. 1. Generate an agent configuration. 2. Evict pods with config annotation mismatch (triggers the webhook). No action. The configmap no longer exists 1. Check if the pod has a configuration entry in the configmap. 2. Patch pod if necessary and include the config as an annotation. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 095d3e6 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
One single invocation of intercept can now intercept multiple ports. It is now possible to intercept multiple ports with one single invocation of `telepresence intercept` by just repeating the `--port` flag. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | d942dc1 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Get rid of old code that retrieves "clusterID". The clusterID was replaced with installID some time ago, the difference being that the clusterID was the UID of the "default" namespace whereas the installID is the UID of the namespace where the traffic-manager is installed. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 1824b26 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Remove the gather-traces and upload-traces commands. The ability to collect trace has been removed. The code was complex and has not been well maintained since its inception in 2022. We have seen no indication that it has ever been used. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 00d3b1e | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Introduce Virtual Network Address Translation (VNAT) Adds the `telepresence connect --vnat CIDR` flag, and a default conflict resolution behavior that relies on its function. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 4f25543 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Improve auto-completion. Improves auto-completion of several commands, and removes the default file completion from almost all of them. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 3bd23c0 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Delete daemon.Routing protobuf message. It's never used. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | d31570c | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Mount everything read-only during intercept It is now possible to append ":ro" to the intercept `--mount` flag value. This ensures that all remote volumes that the intercept mounts are read-only. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 7e5d894 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Added ingest command A `telepresence ingest` command, similar to `telepresence intercept`, provides local access to the volume mounts and environment variables of a targeted container. However, unlike `intercept`, `ingest` does not redirect traffic to the container and ensures that the mounted volumes are read-only. An ingest requires a traffic-agent to be installed in the pods of the targeted workload. Beyond that, it's a client-side operation. This allows developers to have multiple simultaneous ingests on the same container.
Commit: | a22c89e | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Let list command use an agent watcher instead of listing configmaps This alters the detailed output of the list command slightly, so that it no longer contains potential services that can be used when intercepting. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | fef1880 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add properties needed for ingest to the manager.AgentInfo proto message The client must be able to perform mounts and convey the contents of the container's environment to perform an ingest. This commit adds the necessary properties to the `AgentInfo` proto message, and also modifies the traffic-manager gRPC function `EnsureAgent` to return the `AgentInfo` of the workload's pods. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | df31b7f | |
---|---|---|
Author: | Thomas Hallgren |
Merge branch 'release/v2.20' into release/v2
Commit: | 1b59012 | |
---|---|---|
Author: | Fu Yu |
add valid field to provide validation status Signed-off-by: Fu Yu <fuyu@Fus-MacBook-Pro.local>
Commit: | 66b64c5 | |
---|---|---|
Author: | Thomas Hallgren |
Merge branch 'release/v2.20' into release/v2
Commit: | 34fe549 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Ensure that local volume mounter uses correct IP when proxyVia is active A proxy-via will swap the IP of an intercepted pod. This swap must be propagated to the sftp/ftp/volume mounter. Closes #3715 Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 517773f | |
---|---|---|
Author: | Jakub Rożek | |
Committer: | Jakub Rożek |
Add deployments, statefulSets, replicaSets to .workloads Helm chart values Signed-off-by: Jakub Rożek <jrozek@datawire.io>
Commit: | ccd496c | |
---|---|---|
Author: | Thomas Hallgren |
Add namespace to WorkloadEventsRequest and UID to the WorkloadInfo Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | f0fc5b4 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Use netip.Prefix and netip.Addr instead of net.IPNet and net.IP This is a fairly comprehensive change, but it's been pending for some time now, and gets rid of a lot of unnecessary conversion and utility functions. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | bc6a958 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add an option to specify target container when intercepting. An intercept ultimately targets a specific port within a container. The port is usually determined by examining the relationship between the service's `targetPort` and the container's `containerPort`. In certain scenarios, the container owning the intercepted port differs from the container the intercept targets. This container's sole purpose is to route traffic from the service to the intended container, often using a direct localhost connection. This commit introduces a `--container <name>` option to the intercept command. While this option doesn't influence the port selection, it guarantees that the environment variables and mounts propagated to the client originate from the specified container. Additionally, if the `--replace` option is used, it ensures that this container is replaced. Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | c09b284 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Enable intercepts of workloads that have no service. Telepresence is now capable of intercepting workloads that have no associated service. The intercept will then target container port instead of a service port. The new behavior is enabled by adding a `telepresence.getambassador.io/inject-container-ports` annotation where the value is a comma separated list of port identifiers consisting of either the name or the port number of a container-port, optionally suffixed with `/TCP` (the default) or `/UDP`. Closes #1647 Signed-off-by: Thomas Hallgren <thomas@tada.se>
Commit: | 281a832 | |
---|---|---|
Author: | Jakub Rożek | |
Committer: | Jakub Rożek |
Support Argo Rollout workloads Signed-off-by: Jakub Rożek <jrozek@datawire.io>
Commit: | 6598df1 | |
---|---|---|
Author: | Jakub Rożek | |
Committer: | Jakub Rożek |
Use Helm chart value to control Argo Rollouts support Signed-off-by: Jakub Rożek <jrozek@datawire.io>
Commit: | 5cf62fd | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Enable passing a client identifier when using the API to connect. Adds a client identifier to the `ConnectRequest` structure used when connecting via the API. If set, this identifier will override the default `<user>@<host>` value of the `client` property in the `ClientInfo` structure that is passed to the manager's `ArriveAsClient` method. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 774b938 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add `state` and `intercept_clients` to event sent by `WatchWorkloads` The `state` property reflects the current state of a workload as `UNKNOWN`, `AVAILABLE`, `PROGRESSING`, or `FAILURE`. The `intercept_clients` property is included when the workload is intercepted. Its entries contain the client-id of the currently intercepting users. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | c305689 | |
---|---|---|
Author: | Thomas Hallgren |
Warn when connecting to an Enterprise traffic-manager from an OSS client The difference between the OSS and the Enterprise offering is not well understood, and OSS users often install a traffic-manager using the Helm chart published at getambassador.io. This Helm chart installs an enterprise traffic-manager, which is probably not what the user would expect. Telepresence will now warn when an OSS client connects to an enterprise traffic-manager and suggest switching to an enterprise client, or use `telepresence helm install` to install an OSS traffic-manager. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 56db8d1 | |
---|---|---|
Author: | Thomas Hallgren |
Watch intercepts from all sessions. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | e200b85 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add state to the WorkloadInfo sent by WatchWorkloads. Adds a state, that reflects the current state of a workload as `UNKNOWN`, `AVAILABLE`, `PROGRESSING`, or `FAILURE`. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | ed95e1f | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add a `intercept_clients` property the event sent by `WatchWorkloads`. The new attribute is included when the workload is intercepted. The entries contain the client-id of the currently intercepting users. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 9553fe5 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Enable passing a client identifier when using the API to connect. Adds a client identifier to the `ConnectRequest` structure used when connecting via the API. If set, this identifier will override the default `<user>@<host>` value of the `client` property in the `ClientInfo` structure that is passed to the manager's `ArriveAsClient` method. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 7376fb6 | |
---|---|---|
Author: | Thomas Hallgren |
Add a `intercept_clients` property the event sent by `WatchWorkloads`. The new attribute is included when the workload is intercepted. The entries contain the client-id of the currently intercepting users. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 105b5fc | |
---|---|---|
Author: | Thomas Hallgren |
Enable passing a client identifier when using the API to connect. Adds a client identifier to the `ConnectRequest` structure used when connecting via the API. If set, this identifier will override the default `<user>@<host>` value of the `client` property in the `ClientInfo` structure that is passed to the manager's `ArriveAsClient` method. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | b7b7565 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add WorkloadEventsWatcher to the gRPC API. This watcher enables a client to watch for modifications in workloads, including their agent's state (as not installed, installed, or intercepted). Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 0999999 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Clean up confusion concerning DNS TLDs, search paths, and namespaces. The code seemingly used namespaces as search paths, but it didn't (luckily). Only one namespace (the connected one) should be a search path. Other namespaces must be top level domains. This commit refactors the passing of TLDs (namespaces) from the user daemon to the root daemon. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 2dfe7df | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add option to load the kubeconfig yaml from stdin during connect. This allows another process with a kubeconfig already loaded in memory to directly pass it to `telepresence connect` without needing a separate file. Simply use a dash "-" as the filename for the `--kubeconfig` flag. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 3abb270 | |
---|---|---|
Author: | Thomas Hallgren |
Get rid of excessive debug log-output used during development. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | b7de0a2 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add traffic-manager's installation ID to ConnectInfo message and status. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 4b0b8d3 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add UNAUTHORIZED and UNAUTHENTICATED to the connector.ConnectInfo enum. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 5efbfdd | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add current subnet proxies to the output of the status command. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 98e4926 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Include traffic-agent image in status and version command output. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 92cff88 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Translation of remote IP to local virtual IP using --proxy-via flag Adds a new `--proxy-via CIDR=WORKLOAD` flag to `telepresence connect`, allowing Telepresence to translate DNS responses matching specific subnets into virtual IPs that are used locally. Those virtual IPs are then routed (with reverse translation) via the pod's of a given workload. This bidirectional translation makes it possible to handle custom DNS servers that resolve domains into loopback IPs. The flag may also be used in cases where the cluster's subnets are in conflict with the workstation's VPN. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | b650b7d | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add EnsureAgent function to the traffic-manager gRPC API. The new `EnsureAgent` function asserts that a traffic-agent is injected to the pod(s) of a given workload. This is essentially the same thing that happens when doing a `PrepareIntercept` but without knowing any intercept details besides the workload name. The namespace is known implicitly from the required session. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | bda8f52 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add function to get a tunnel.Provider for a workload to agentpf.Clients This commit adds the functionality needed to create a port-forward to the traffic-agent of a pod that belongs to a workload by adding the function `GetWorkloadClient` to the `agentpf.Clients` implementation. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | b0e2755 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Removal of backward support for versions predating 2.6.0 The telepresence helm installer will no longer discover and convert workloads that were modified by versions prior to 2.6.0. The traffic manager will and no longer support the muxed tunnels used in versions prior to 2.5.0. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 92d9258 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add gRPC service to the traffic-agent. Adds a new gRPC service that will allow clients to do a direct port-forward and then establish tunnels and dial watchers so that both outbound and inbound traffic can bypass the traffic-manager. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 6424d13 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Use traffic-agent port-forwards for outbound and intercepted traffic. The telepresence TUN-device is now capable of establishing direct port-forwards to a traffic-agent in the connected namespace. That port-forward is then used for all outbound traffic to the device, and also for all traffic that arrives from intercepted workloads. Getting rid of the extra hop via the traffic-manager improves performance and reduces the load on the traffic-manager. The feature can only be used if the client has Kubernetes port-forward permissions to the connected namespace. It can be disabled by setting `cluster.agentPortForward` to `false` in `config.yml`. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 86e0f19 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add WatchAgentPods service to traffic-manager. This service makes it possible for clients to watch for changes in intercepted traffic-agents. The watcher will only notify the client about changes that are relevant the client's session. It is triggered both when by agent changes and when agents change their intercept status with respect to the client session. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | fb78891 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Make it possible for a traffic-agent to report consumption metrics. Adds the `AddSessionConsumptionMetrics` to the traffic-manager gRPC so that traffic-agents can report such metrics when the traffic-manager no longer forwards the traffic. Also adds the prometheus gauges representing the sum total of all ingress and egress bytes. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 4591de4 | |
---|---|---|
Author: | Thomas Hallgren |
Introduce intercept disposition type REMOVED and modified timestamp. We want to track personal intercepts that have been REMOVED and let them linger for some time period while the agent responds with an error. This commit adds the disposition type REMOVED so that the existing WatchIntercepts subscription can be used to track that state. This commit also separates the actual remove from running finalizers in the traffic-manager state, so that finalizers can run when the user leaves the intercept and the actual remove can happen later on. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 0fec685 | |
---|---|---|
Author: | Jose Cortes | |
Committer: | Jose Cortes |
Add an --allow-conflicting-subnets flag locally. Signed-off-by: Jose Cortes <josecortes@datawire.io>
Commit: | e1dbbd1 | |
---|---|---|
Author: | Jose Cortes | |
Committer: | Jose Cortes |
Add an --allow-conflicting-subnets flag locally. Signed-off-by: Jose Cortes <josecortes@datawire.io>
Commit: | 255b56f | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Improve outbound traffic performance. The root-daemon now communicates directly with the traffic-manager instead of routing all outbound traffic through the user-daemon. The root-daemon uses a patched kubeconfig where `exec<` configurations to obtain credentials are dispatched to the user-daemon. This to ensure that all authentication plugins will execute in user-space. The old behavior of routing everything through the user-daemon can be restored by setting `cluster.connectFromUserDaemon` to `true` in `config.yml` Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | f610f66 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Make the helm command cli-only and get rid of pkg/install. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 91be467 | |
---|---|---|
Author: | Jose Cortes | |
Committer: | Jose Cortes |
Wire the replace parameter into the configmap Signed-off-by: Jose Cortes <josecortes@datawire.io>
Commit: | 78d58c7 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Don't clobber host's kubeconfig when connecting to containerized daemon. Connecting to a containerized daemon means that we also modify the `kubeconfig` flag to point to a copy of the config file in the cache. This modification is now kept in a special map that serves as an override when connecting. This means that the original host kubeconfig flag (if any) isn't affected. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | bcf4e60 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add explicit environment propagation between client and connector This commit removes the code that passed environment variables in as kubernetes flags, to instead pass them explicitly where needed. Also adds propagation of the kubernetes flags to the client when it reconnects, so that those flags can be used for other purposes. The commit removes the propagation of kubernetes flags to the root daemon. It has no use for them. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 8c54fdf | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Introduce connection name. Adds a `--name <name>` option to the `telepresence connect` command, so that a connection can be given a name that is different from the <kubeContext>-<namespace> name that is generated by default. When a connection is named, a containerized daemon will be generated by prepending "tp-" to that name. The introduction of named connections enable use of multiple daemonized connections that uses the same namespace. This is beneficial because then pods with conflicting localhost ports can be intercepted simultaneously into different containers (each with a unique localhost). Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 4c7b6b5 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Propagate namespace to traffic-manager in ClientInfo. The `ClientInfo` is sent in the client's `ArriveAsClient` call to the traffic-manager. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 8a41187 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Show namespace in connect response and in status command output. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 3a91345 | |
---|---|---|
Author: | shepz | |
Committer: | shepz |
Add sidecar to json list output Signed-off-by: shepz <gveschambre@datawire.io>
Commit: | a111736 | |
---|---|---|
Author: | shepz | |
Committer: | shepz |
Fix PR comments Signed-off-by: shepz <gveschambre@datawire.io>
Commit: | 2d7491e | |
---|---|---|
Author: | shepz | |
Committer: | shepz |
Fix lint Signed-off-by: shepz <gveschambre@datawire.io>
Commit: | 914c23b | |
---|---|---|
Author: | shepz | |
Committer: | shepz |
Put back ServiceReference but within a map Signed-off-by: shepz <gveschambre@datawire.io>
Commit: | d59c527 | |
---|---|---|
Author: | shepz | |
Committer: | shepz |
Remove ServiceReference.uid since it's already used as the map key Signed-off-by: shepz <gveschambre@datawire.io>
Commit: | a5b112b | |
---|---|---|
Author: | Thomas Hallgren |
Reinstate the connector's UpdateIntercept delegation. Removing it breaks API. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 5e16024 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Remove everything related to cloud features or personal intercepts. This commit removes all code that deals with: - SystemA - Cloud tokens - Cloud messages - Cloud selection of agent image - Licenses - Personal intercepts - Preview URLs - API keys - Cluster ID Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 03fa682 | |
---|---|---|
Author: | Jose Cortes | |
Committer: | Jose Cortes |
Allow users to configure an allow list for routing overrides Signed-off-by: Jose Cortes <josecortes@datawire.io>
Commit: | e67b1eb | |
---|---|---|
Author: | Kévin Lambert | |
Committer: | Kévin Lambert |
Expose new mappings / excludes endpoints to embedded daemon Signed-off-by: Kévin Lambert <kevin.lambert.ca@gmail.com>
Commit: | 63a2a7e | |
---|---|---|
Author: | Kévin Lambert | |
Committer: | Kévin Lambert |
Add GRPC endpoints for mappings and suffixes Signed-off-by: Kévin Lambert <kevin.lambert.ca@gmail.com>
Commit: | 8e366e2 | |
---|---|---|
Author: | Kévin Lambert | |
Committer: | Kévin Lambert |
Add excludes and mapping fields to the DNS configuration Signed-off-by: Kévin Lambert <kevin.lambert.ca@gmail.com>
Commit: | 735e5ca | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Don't fail telepresence connect when DNS doesn't work. Some users benefit from having the routing up and running even though DNS isn't working. This commit ensures that `telepresence connect` succeeds even though the DNS server configuration was unsuccessful but a warning is printed on stderr, informing the user that the DNS isn't functional. A call to `telepresence status` will also show the DNS error. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | d2fe605 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Ensure proper stop of intercept handler container. The container is stopped using `docker stop` instead of just killing the `docker run` with a signal, regardless of if the stop is triggered by a signal, by a `telepresence leave`, or a `telepresence quit`. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 91f6e0a | |
---|---|---|
Author: | Thomas Hallgren |
Include mapped namespaces in the output of `telepresence status`. When the `--mapped-namespaces` connect option is used, or when namespaces are limited by use of `managed-namespaces` in the traffic manager, then the namespaces currently accessible to the user are included in the output of the `telepresence status` command. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 91a5b43 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add `--no-hooks` flag to the telepresence helm commands Enables passing of the boolean `--no-hooks` flag to the telepresence helm install, upgrade, and uninstall commands. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | ceb49f4 | |
---|---|---|
Author: | Jose Cortes | |
Committer: | Jose Cortes |
Check for service connectivity independently from pod connectivity. Signed-off-by: Jose Cortes <josecortes@datawire.io>
Commit: | 782f1b9 | |
---|---|---|
Author: | Kévin Lambert | |
Committer: | Kévin Lambert |
Fix linting in the RPC proto Signed-off-by: Kévin Lambert <kevin.lambert.ca@gmail.com>
Commit: | d73fe47 | |
---|---|---|
Author: | Kévin Lambert | |
Committer: | Kévin Lambert |
Add authenticator middleware to integrate gke with docker mode Signed-off-by: Kévin Lambert <kevin.lambert.ca@gmail.com>
Commit: | 0ed4374 | |
---|---|---|
Author: | Thomas Hallgren | |
Committer: | Thomas Hallgren |
Add --local-mount-port option to the intercept command. Adds a `telepresence intercept` flag `--local-mount-port <port number>`. The user daemon will not perform mounts of remote directories when this flag is given. Instead, it will create a bridge the given port on localhost to the SFTP server running in the intercepted agent. This will enable two things: 1. When the daemon runs in a Docker container, and in Docker Desktop specifically, the port can be published so that the host can do the actual mount without having access to the cluster network. 2. Any remote mounter capable of doing SFTP mounts, can be used. Mounting by forwarding a port this way only works with SFTP because FTP will try to open additional ports in the server when it does PASV/EPSV. Signed-off-by: Thomas Hallgren <thomas@datawire.io>
Commit: | 73649d6 | |
---|---|---|
Author: | Kévin Lambert | |
Committer: | Kévin Lambert |
Add support for CRD helm chart & integrate with helm install command Signed-off-by: Kévin Lambert <kevin.lambert.ca@gmail.com>
Commit: | 91ca0a3 | |
---|---|---|
Author: | Jose Cortes |
Add a status indicator for the manager namespace Signed-off-by: Jose Cortes <josecortes@datawire.io>
Commit: | 8a8633f | |
---|---|---|
Author: | Jose Cortes | |
Committer: | Jose Cortes |
Add a new flag to connect commands to pass the manager namespace Signed-off-by: Jose Cortes <josecortes@datawire.io>