Macのbrewを使ったeksctlインストールは非推奨に!安全なインストール方法
これまで、eksctl コマンドを利用した EKS の操作についていくつか紹介してきました。
その中で、brew の「weaveworks/tap/eksctl」を使うシーンがあったのですが、2023 年現在、サードパーティー製のインストーラーで導入することが非推奨になっているようです。
ここでは、brew で導入した eksctl のパッケージを削除して、ソースコードからインストールする方法を紹介します。
brewからのインストールは推奨されていない
eksctl の GitHub のサイトを見ると、以下の記載が。
サードパーティー製のツールは非推奨になったよということですね。

インストールやアップデートは今でもできるので、このまま利用している人もいるハズ。
$ brew install weaveworks/tap/eksctl
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 3 taps (weaveworks/tap, homebrew/core and homebrew/cask).
==> New Formulae
ast-grep clive debugbreak libabigail libzen pocketbase roblox-ts rye svlint virtualfish yamlfmt
boolector convco dzr libclc lpeg quantum++ rojo staq svls wally
==> New Casks
dadroit-json-viewer kiibohd-configurator synology-cloud-station-backup
eobcanka lg-onscreen-control synology-photo-station-uploader
focusrite-control linn-konfig synology-surveillance-station-client
fractal-bot llamachat synologyassistant
hdhomerun lo-rain tiptoi-manager
hp-easy-start nordic-nrf-command-line-tools uhk-agent
huiontablet philips-hue-sync wacom-tablet
insta360-studio qflipper
jabra-direct smooze-pro
You have 37 outdated formulae installed.
アップデート後のバージョン確認結果は以下の通り。
$ eksctl version
0.141.0
サードパーティー製ツールからアンインストール
ということで、サードパーティー製のインストーラーからの eksctl は削除しちゃいましょう。
$ brew remove weaveworks/tap/eksctl
Uninstalling /usr/local/Cellar/eksctl/0.141.0... (8 files, 139.3MB)
eksctlのインストール
※ 本記事は 2023 年時点の内容です。その後、Weaveworks の解散にともない eksctl は eksctl-io 組織へ移管され、現在は AWS がメンテナンスを継続しています(旧 weaveworks/eksctl の URL は eksctl-io/eksctl へリダイレクトされます)。以下のインストールコマンドの URL は現行の eksctl-io に更新しています。
GitHub のサイトでは、以下のように注意事項が記載されています。
eksctl is available to install from official releases as described below. We recommend that you install eksctl from only the official GitHub releases. You may opt to use a third-party installer, but please be advised that AWS does not maintain nor support these methods of installation. Use them at your own discretion.
eksctlは、以下に説明する公式リリースからインストールすることができます。公式のGitHubリリースからeksctlをインストールすることをお勧めします。サードパーティのインストーラーを使用することもできますが、AWSはこれらのインストール方法を維持またはサポートしていないことに注意してください。自己責任で使用してください。

ところで、brew のパッケージにある eksctl(weaveworks/tap/eksctl ではない)はどういったものなのでしょうね。
eksctl だと brew の公式リポジトリから落ちてくるだけの違いなのかな。
(manifests の先がどこに向いているのかは確認できてないですが)
Fetching eksctl
=> Downloading https://ghcr.io/v2/homebrew/core/eksctl/manifests/0.143.0
weaveworks/tap/eksctl だと github からダウンロードされてきている。
Fetching weaveworks/tap/eksctl
=> Downloading https://github.com/weaveworks/eksctl/releases/download/v0.143.0/eksctl_Darwin_amd64.tar.gz
ということで、eksctl のパッケージを brew でインストールしていた場合も一旦、削除しちゃいましょうか。
$ brew remove eksctl
Uninstalling /usr/local/Cellar/eksctl/0.141.0... (5 files, 137.9MB)
では公式の説明通り、「For Unix」の段落を参考にします。
sha256sum のところは、Mac だと shasum に置き換えですかね。
shasum -a 256 --check
どうせなら Mac のインストール手順も書いておいてほしいなぁ。
$ ARCH=amd64
$ PLATFORM=$(uname -s)_$ARCH
$ curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"
$ curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | shasum -a 256 --check
eksctl_Darwin_amd64.tar.gz: OK
$ tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz
$ sudo mv /tmp/eksctl /usr/local/bin
$ eksctl version
0.143.0
まとめ
eksctl の Mac への導入について、最新の情報を紹介してきました。
brew などパッケージ管理に委ねると何かと楽なのですが、やはりサードパーティー製のツールはメンテナンスに困ります。
GitHub Actions の action や Kubernetes のアドオンなど、便利な半面、セキュリティにも気をつけなければいけないですしね。
