Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 25 2019 16:23

    ark3 on ssh-cleanup

    (compare)

  • Jan 25 2019 16:23

    ark3 on master

    Return status rather than crash… Emit a distinct crash message f… Factor out sshuttle command and 3 more (compare)

  • Jan 25 2019 16:23
    ark3 closed #912
  • Jan 25 2019 14:57
    ark3 opened #912
  • Jan 25 2019 14:56

    ark3 on ssh-cleanup

    Return status rather than crash… Emit a distinct crash message f… Factor out sshuttle command and 2 more (compare)

  • Jan 25 2019 12:24
    bartoszmajsak opened #911
  • Jan 24 2019 22:04
    ark3 labeled #910
  • Jan 24 2019 22:04
    ark3 opened #910
  • Jan 24 2019 21:42
    ark3 closed #807
  • Jan 24 2019 21:42

    ark3 on master

    Don't pass --v=4 to kubectl eve… (compare)

  • Jan 24 2019 21:30
    ark3 closed #889
  • Jan 24 2019 21:30

    ark3 on master

    fix: changes depracated method … fix: masks logged tokens chore: adds changelog file and 8 more (compare)

  • Jan 24 2019 21:30
    ark3 closed #890
  • Jan 24 2019 21:29
    ark3 synchronize #890
  • Jan 24 2019 21:25
    ark3 closed #812
  • Jan 24 2019 21:25
    ark3 commented #812
  • Jan 24 2019 21:23
    ark3 closed #735
  • Jan 24 2019 21:23
    ark3 commented #735
  • Jan 24 2019 20:52
    rohansingh commented #905
  • Jan 24 2019 20:50
    ark3 commented #905
datawirebot
@datawirebot
<Oleksandr> Thanks, I'll try to google that)
datawirebot
@datawirebot
<sanha> Simple question: Can't the local process running with telepresence resolve the k8s service name? (Not through some environment variables but just the service name)
datawirebot
@datawirebot
This message was deleted
datawirebot
@datawirebot

<sanha> Hi, again 🙂
I have two questions.

  • Background
    I have two apps: app A, app B.
    A sends an HTTP request to B (through k8s service name of B), and B responses to it.
    I'm using environment file way to connect Telepresence with my IDE (like this tutorial: https://www.telepresence.io/tutorials/intellij).

  • Symptom
    When I try to debug B with Telepresence, it receives and responses the request well (even though in inject-tcp mode).
    However, when I try to debug A with Telepresence, it can't send the HTTP request to the k8s service name of B (no such Host).

    • It works with vpn-tcp

Q1. Is there any way to resolve the k8s service name in a local IDE connected with Telepresence inject-tcp mode?
Q2. What is the use of environment variable file? In vpn-mode, debugging with IDE works perfectly without the env file if I just expose the input port.

<sanha> For Q1, I guessed that there is a way because the HTTP response of B worked well for inject-tcp.
datawirebot
@datawirebot
<ark3> Yeah, re Q1, it should work. What's the difference between A and B? Same language, frameworks, etc.?
<ark3> Re Q2, the environment variables may or may not be important depending on the app. For example, some apps might pull configuration or secrets from the environment.
<ark3> Oh, to clarify, you're saying that A cannot find B in DNS?
<ark3> That's beginning to sound familiar.
datawirebot
@datawirebot

<sanha> @ark3 Exactly. A cannot find B in DNS by B's k8s service name.
I'm trying with various languages like Node, Java in VSCode, IntellIJ... but nothing works.
A can reach out to B only with it's public full domain (like any other process or machine without Telepresence).
Please let me know the thing you are familiar with.

For environment variables, fixing source codes to pull the k8s specific env variables does not sound good.

datawirebot
@datawirebot
<hgword> s
datawirebot
@datawirebot
<ark3> I've been hearing stuff about inject-tcp not doing DNS for some apps, though it might be related to MacOS or other factors. I have not had time to investigate yet.
<ark3> Issues 958 and 959 might be relevant.
<ark3> Re environment variables, it's kind of the other way around. Popular methodology suggests keeping configuration separate from code by loading configuration from application-specific environment variables. k8s lets you set env vars per deployment, so it's easy to run different configurations without building different images. See also: https://12factor.net/config
datawirebot
@datawirebot
<Dusan> Hi @sanha, i have the similar issue with inject-tcp. Were you able to found the solution?
datawirebot
@datawirebot

<sanha> Oh I see. I'll try with vpn-tcp.
I hoped to debug many apps with Telepresence in inject-tcp mode :(
But Telepresence is still useful for debugging single app. Thanks.

For env variables, I misunderstood the usage of them.
I guessed that it will be used for VPN or DNS of Telepresence, but it seems not.
Thanks for your explanation!

<sanha> Hi!
Unfortunately, I couldn't find any solution. It seems that the telepresence process can't locate the IDE process in my case. (My guess)
datawirebot
@datawirebot
<anton186> How does telepresence work with multiple developers, are you rerouted to their local service while working?
datawirebot
@datawirebot
<rdl> correct (there are some more sophisticated approaches that we are working on, but for now yes)
datawirebot
@datawirebot
<sanha> I personally tried this with Istio and it worked well!
datawirebot
@datawirebot

<Konrad> Hello

I have issue with using telepresence with microk8s on ubuntu
When telepresence (in vpn-tcp mode) is running then pods inside k8s cluster cannot connect to services anymore (they get connection refused)

datawirebot
@datawirebot
<Konrad> i dropped some shuttle rules from iptables (as i can access the cluster without it locally) and it works now, but that's quite inconvenient
<rdl> do you have a writeup? would love to see how you got it to work (and share the blog)
datawirebot
@datawirebot
<sanha> Not yet, but planned.
I'll write it up as soon as I get some bandwidth and let you know.
Thanks 🙂
datawirebot
@datawirebot
<gregw> My team has adopted telepresence for local development/testing of one of our microservices running in EKS but I am using a centos-based distro of linux and am having a bad time trying to get it installed. First, I tried following the instructions for installation on Fedora-based distros, but attempting to install telepresence through dnf results in 'no match for argument: telepresence' even though I have the datawireio_telepresence yum repo config in /etc/yum.repos.d. Next, I tried installing from source and ran into another error during the telepresence build: "ImportError: No module named 'zipapp'"
<gregw> I have python 3.7.1 installed via pyenv and I've tried the install from source through a virtualenv as well. The most confusing part is if I open the python repl using the same python interepreter and execute "from zipapp import create_archive" it does not produce an importerror
<ark3> @gregw I'm interested to learn more about your error when installing from source. That should work!
<ark3> The install script runs python3 from your shell path.
<gregw> Yeah and I have a python3 binary in my $PATH under $HOME/.pyenv/shims/python3
datawirebot
@datawirebot
<ark3> Can you verify that python3 --version by itself produces something like Python 3.7.1 and then run env PREFIX=/place/to/install ./install.sh?
<gregw> ah it has to do with running sudo...if i run that command without sudo then it finds the modules and executes python code
<gregw> makes sense since the superuser doesn't have the same python environment as my logged in user
<gregw> i can manually copy the built binary over to /usr/local/bin at least
datawirebot
@datawirebot
<gregw> ok i'll get my superuser's python3 environment synced up so i can build this
<gregw> thanks!
<ark3> Hmm. We don't test that installer with sudo. That's part of the problem here. It's only the last few steps that need privileges. Perhaps we should split up the "build binary" and "install binary" bits.
datawirebot
@datawirebot
<JM> Morning; I'm wrangling a network traffic routing setup. I am on OSX and hitting a single node k8s installed in an EC2 instance. I can telepresence the deployment just fine, but I want to run a PHP debugger locally. In an "all software on the same host" setup xdebug would connect to localhost:9000 and the IDE would have a listener present to pick it up. In a non-telepresence host-run docker container, you'd change localhost to host.docker.internal or docker.for.mac.localhost and the traffic would show up on the OSX host. I suspect that's not quite working right due to the various networking loops going on with telepresence, however. Any suggestions for how to get that connection from my --swap-deployment container to show up on my hostmachine so the IDE can pick it up? Thanks!
<ark3> I have a solution for you, but it's somewhat convoluted.
<JM> Hit me 🙂
<ark3> Telepresence sets up and exposes an ssh server in its network container, then uses ssh -R to forward a port in the container to something on the host. This avoids using host.docker.internal, which doesn't work on Linux.
<ark3> You can use that same ssh server to set up a second port forward.
<JM> I'm open to trying that out; what would the command for that look like?
<ark3> Yup, working on it.
datawirebot
@datawirebot
<ark3> Launch your telepresence session, and then from another terminal, take a look at telepresence.log. Search for Launching Network container.
<ark3> You'll see a docker run command that has --publish=127.0.0.1:port:38022/tcp
<ark3> That port, the one associated with 38022 in the container, is the port on your host machine exposing the ssh server.
<ark3> Now, to run your client, you'll want some extra options to ssh.
<ark3> Search the log file for Launching Local SSH port forward to see what I mean.
datawirebot
@datawirebot
<ark3> The last part of your ssh will want to be something like -p port_from_above root@127.0.0.1 -R 9000:127.0.0.1:9000, which will forward connections made to the containers port 9000 to your host's port 9000.
<ark3> Does that make some amount of sense?