kran 文件

安裝

$ gem install kran
$ kran version
kran     1.0.0
docker   Docker version 27.5.1, build 9f9e405
krane    krane 3.7.3
kubectl  Client Version: v1.32.1

放進 Gemfile

想在各專案分別鎖版本,就放進應用程式不會載入的 group:

group :deploy, optional: true do
  gem "kran"
end
$ bundle install --with deploy
$ bundle exec kran version
kran     1.0.0

kran 呼叫外部指令時都包在 Bundler.with_unbundled_env 裡,所以 bundle exec kran 照樣能驅動裝在 別的 Gemfile 或全域的 krane。詳情見 在 bundle exec 底下跑 kran

kran 不會幫你裝的工具

kran 會呼叫 dockerkranekubectl;當 registry 密碼要從 krane 的加密機密檔讀取時,還會用到 ejson。這些都不是 gem 依賴,各工具怎麼裝見前置條件

krane 之所以刻意排除,是因為它會連帶安裝大量 Kubernetes client 相依套件,而多數專案本來就在自己的 部署 bundle 裡鎖好版本了。