Рубрики
Uncategorized

Создание собственного домашнего крана и захватывающих двонок от S3

Недавно я настроил свою собственную домашнюю птицу, чтобы легко распространить бинарный плагин Kubectl, который я … Помечено с AWS, DevOps, Forme.

Недавно я настроил свою собственную домашнюю птицу, чтобы легко распространять 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»