Недавно я настроил свою собственную домашнюю птицу, чтобы легко распространять kubectl
Бинарный плагин, который я создал. Создавая мою собственную домашнюю плюс, он позволяет легко загружать двоичные файлы в любую домашнюю среду DEV без необходимости отказаться от кода из GitHub, скомпилируйте его, а затем добавить его где-то на своем $ Path, чтобы использовать его по всему миру.
Я побежал в несколько икотах по пути, поэтому я подумал, что лучше документировать его в следующий раз (или если кто-то спотыкается в этот пост)
Настройте свой собственный домашний репо в GitHub
Для моего личного репо, я решил назвать это Домашний домашний ход
Как вы можете видеть здесь: https://github.com/lucassha/homebrew-homebrew Отказ
Причина, по которой я выбрал это из-за Конвенции именования при постуке нового хранилища в варевом заводе. Если, например, я назвал мою репозиторий Домашние-лукасса
Тогда мне придется бежать Brew Tap Lucassha/Lucassha
. заваривать
Специально ищет добавленные репозитории Домашний
.
Теперь я нащуплю мой экземпляр: Brew Tap Lucassha/Homebrew
. Затем вы можете увидеть все постукивающие репозитории с просто Brew Tap
Отказ
Добавьте формулу для загрузки с S3
Как только у вас будет настроено REPO, вам нужно добавить формулу к ней. Вот мой конкретный пример:
class ShowSecrets < Formula desc "CLI to show decoded Kubernetes secrets" homepage "https://github.com/lucassha/show-secrets" url "https://lucassha-show-secrets-releases.s3.us-west-2.amazonaws.com/releases/v0.0.1" # to get the latest SHA: # find latest release: aws s3api list-objects --bucket lucassha-show-secrets-releases | jq '.Contents[].Key' # download release: aws s3 cp s3://lucassha-show-secrets-releases/releases/v0.0.1 . # get sha: shasum -a 256 v0.0.1 sha256 "36018cff6708dea3587c086e366ff80bed7a2750ddda9aa7e8c1af8311b17649" depends_on "kubernetes-cli" def install bin.install "show-secrets" # add kubectl binary to make it a kubectl plugin bin.install "kubectl-show-secrets" end def caveats; <<-EOS This tool may be used as a standalone CLI or a kubectl plugin # example show-secrets -n default kubectl show secrets -n default EOS end end
Важные биты для выделения здесь являются URL-адрес и SHA. В частности, URL-адрес от S3 вместо файла github .tgz. Точно так же SHA — это тарбол, который использует, а не двоичный. Вы должны создать тарбол.
Политики S3
Интересно, я был удивлен, что полностью общественное ведро по-прежнему нужно GetBucket
Политика для того, чтобы позволить анонимному пользователю загружать его. Вы можете проверить это с общественным ведром и просто бегать Curl
против этого. Это потерму неудачу. Точно так же вы получите 403
Ошибка при попытке установить ее через Brew. Из-за этого требуется политика ведра. Вот JSON я добавил для общественного ведра:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Public Access to All Objects", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::lucassha-show-secrets-releases/*" } ] }
Установите двоичный
Теперь вы должны быть в состоянии установить пакет! Brew Установить Lucassha/Homebrew/Show-Secrets
Это должно создать два двоичных файла, которые можно увидеть с этой командой: какие * шоу-секреты
C’est Tout!
Оригинал: «https://dev.to/lucassha/creating-your-own-homebrew-tap-and-grabbing-binaries-from-s3-15ma»