Mac で sshfs をインストール

Summary

brew install macfuse
brew install gromgit/fuse/sshfs-mac

Mac で sshfs を使うには?

Environment

MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)
OS: macOS Big Sur 11.4
$ brew --version
Homebrew 3.1.9-121-g654c78c
Homebrew/homebrew-core (git revision 07324b2d0c; last commit 2021-06-05)
Homebrew/homebrew-cask (git revision d0a039f23c; last commit 2021-06-05)
$ telepresence version
Client: v2.3.0 (api v3)
Root Daemon: v2.3.0 (api v3)
User Daemon: v2.3.0 (api v3)
# k8s環境には、kindを使っています。
$ kind version
kind v0.11.1 go1.16.4 darwin/amd64

Contents

あまり日本語の情報がなかったので、記録しておきます。

telepresence を使って、k8s での pod の動きをデバッグしたい場合に、intercept のフラグに--mount=trueを渡してあげると、pod にマウントしている configMap などをローカルにマウントしてくれます。

そのマウント方法に sshfs が利用されていますが、sshfs を mac に install する際に詰まって日本語の情報もなかなか探せなかったので備忘録です。

sshfs のインストール方法を適当にググってみると

brew で osxfuse macfuse をインストールして、sshfs をインストールするだけで OK!みたいなことが書かれている情報に辿り着けましたが、自分の環境ではそうはいかず、

$ brew install sshfs
Error: sshfs has been disabled because it requires FUSE!

と、macfuse をいれていても FUSE が必要だよとインストールすることができません。

brew edit sshfs で覗いてみると

on_macos do
  disable! date: "2021-04-08", because: "requires FUSE"
end

このように記述されています。brew の Formulae の書き方には、詳しくありませんが、どうも macos では、問答無用で macfuse の存在にかかわらず、FUSE が必要だよ!と怒るようになっている模様です。

そこで色々と対処法を探していると、この issue へのコメントに辿り着きました。

https://github.com/osxfuse/osxfuse/issues/801#issuecomment-833419942

macfuse を良い感じに使って、brew install するための formulae を提供してくださっている神がいらっしゃいました。

https://github.com/gromgit/homebrew-fuse

brew install gromgit/fuse/sshfs-mac

でインストールすることができました。

どうも telepresence2 になってから、あまり日本語の情報が出ていないようなのですが、実行コマンドは、

telepresence intercept <deployment名> -n <namespace> --mount=true -- <Podを差し替えたい実行コマンド>

↑ こんな感じで configMap などがローカルのTELEPRESENCE_ROOT以下のディレクトリにマウントされ無事に実行できるかと思います。

telepresence2 の日本語情報が少なかったけれど、今なういデバッグの方法はなんかあるのかな。