emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master 55eabe96c9: ; Improve manual for Tramp kubernetes method


From: Michael Albinus
Subject: Re: master 55eabe96c9: ; Improve manual for Tramp kubernetes method
Date: Mon, 24 Oct 2022 17:07:38 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Filipp Gunbin <fgunbin@fastmail.fm> writes:

> Hi Michael,

Hi Filipp,

>> Can we automate this? I mean, when pod data are cached, and Tramp
>> detects a changed namespace, the cached data should be flushed?
>>
>> Tramp does something similar with other connection methods, for example
>> it checks "uname -sr" on remote hosts, and caches the result. Whenever a
>> new connection to a host is established, Tramp calls again "uname -sr",
>> and compares with the cached value. If the values differ, all cached
>> data for this connection are flushed.
>>
>> Is there a similar way to retieve (and cache) the current context and
>> namespace for pods?
>
> (I've actually wrote a message to emacs-devel about this, but then
> decided it's just simpler to advise resetting cache, and didn't send the
> message; maybe I should have asked first)

No problem that's what code review is good for :-)

> AFAIU, the general way would be to call "kubectl config view -o json",
> then calculate checksum of the output and cache it.  This would catch
> any change in context (namespace it just one case of many).

Yep, but I would recommend "kubectl config view --context=$(kubectl
config current-context) -o json". We don't need the information about
other context.

> However, there're two things to consider here:
>
> - "config view" command is not instantaneous: on my machine it's about
>   100ms, and calling it on each (say) host completion would be annoying.

I don't recommend it for hostname completion. I recommend it for opening
a connection; the cleanup shall happen in tramp-maybe-open-connection
via a hook.

If a user changes the context while there is an active connection in
Tramp, she will be lost. But this isn't an Emacs/Tramp specific
situation, so we don't need to care or document it.

> - Your example with uname is different in that if uname output changed,
>   it means that the host environment changed, perhaps without local user
>   knowing about it.  With kubectl, it's the local user which did some
>   change (locally), and I see no problem in requiring her/him to reset
>   Tramp cache after that.

Sure, but if we can this automate, it doesn't hurt. People tend to
forget to follow such recommendations for cleanup, and we will be blamed
with error reports about invalid cache entries then.

I'm just working on a patch, will show it to you for confirmation prior
commitment.

> Filipp

Best regards, Michael.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]