AgentBakerは、AzureでKubernetesノードをプロビジョニングするために使用されるコンポーネントのコレクションです。
エージェントベーカーにはいくつかのピースがあります
エージェントベーカーの主な消費者は、Azure Kubernetesサービス(AKS)です。
AKSはAgentBakerを使用してLinuxおよびWindows Kubernetesノードをプロビジョニングします。
エージェントベーカーの開発には、いくつかの基本的な必要条件が必要です。
すべての開発ツールをインストールするには、 make -C hack/tools install実行します。
カスタムデータまたはカスタムスクリプト拡張ペイロードを生成するために使用されるコードまたはアーティファクトを変更する場合は、 makeする必要があります。
このコードを再実行して、GOコードに静的ファイルを埋め込みます。これは、実行時に実際に使用されるものです。
これにより、単体テスト( go test ./...に相当)を実行し、SnapShot TestDataを再生します。
Golangci-Lintを使用してスタイルを実施しています。
make -C hack/tools install実行して、リナーをインストールします。
./hack/tools/bin/golangci-lint run実行してリナーを実行します。
現在、排除したい多くの失敗があります。
プルリクエストでGolangci-Lintを実行する仕事があります。
このジョブでは、リントの「無効」機能を使用しています。
PRSがネットの新しい問題を導入しない限り、彼らは合格する必要があります。
また、コミットメントメッセージスタイルを実施するためのざらざらした仕事もあります。
私たちは従来のコミットを遵守します。
単一のコミットを備えたプルリクエストを好みます。
進行中のコミットをクリーンアップするには、 git rebase -iを使用してコミットを修正できます。
詳細については、Gitドキュメントを参照してください。
ほとんどのコードは、バニラゴーユニットテストでテストされる場合があります。
詳細については、公式のGithubリンクをご覧ください。以下は簡単なユースケースです。
Shellspec 、単体テストのフレームワークとして使用されます。インストールする2つのオプションがあります。
ShellspecすでにMakeFileに含まれています。 make tools-installを実行したり、Root(/AgentBaker)ディレクトリでmake generateたりするだけでインストールできます。
注: make generate 、ShellSpecテストをインストールして実行します。
ローカルマシンにインストールしたい場合は、 curl -fsSL https://git.io/shellspec | sh 。
デフォルトでは、 ~/.local/lib/shellspecにインストールする必要があります。便利なために$パスに追加してください。例コマンドexport PATH=$PATH:~/.local/lib/shellspec 。
テスト用にxxx_spec.shファイルを記述する必要があります。
たとえば、 AgentBaker/spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh AgentBaker/parts/linux/cloud-init/artifacts/cse_install.shのテストファイルです
すべてのテストを実行するには、エージェントベーカーフォルダーで、root(/agentbaker)ディレクトリでbash ./hack/tools/bin/shellspecを実行するだけです。
bash ./hack/tools/bin/shellspec -x => -xを使用すると、デバッグ用の冗長トレースが表示されます。bash ./hack/tools/bin/shellspec -E "<test name>" => -Eとテスト名を使用して単一のテストケースを実行できます。たとえば、 bash ./hack/tools/bin/shellspec -E "returns downloadURIs.ubuntu."r2004".downloadURL of package runc for UBUNTU 20.04"また、単一のテストケースに対して冗長トレースに対して-xE実行することもできます。bash ./hack/tools/bin/shellspec "path to xxx_spec.sh" =>特定の仕様ファイルをフルパスに提供することにより、エージェントベーカープロジェクトのすべての仕様ファイルではなく、その仕様ファイルのみを実行できます。たとえば、 bash ./hack/tools/bin/shellspec "spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh" また、キーAPIの出力をディスク上のファイルとして保存するスナップショットデータテストもあります。
スナップショットコンテンツが正しいように見えることを手動で確認できます。
これで、生成されたファイルをディスク上に残さずにコンテンツを直接検証できるユニットテストがあります。
例については、 ./pkg/agent/baker_test.go agent/baker_test.goを参照してください( dynamic-config-dirを検索して、検証サンプルを表示してください。)。
E2Eディレクトリをチェックアウトします。
このプロジェクトは、貢献と提案を歓迎します。ほとんどの貢献では、貢献者ライセンス契約(CLA)に同意する必要があります。詳細については、https://cla.opensource.microsoft.comをご覧ください。
プルリクエストを送信すると、CLAボットはCLAを提供し、PRを適切に飾る必要があるかどうかを自動的に決定します(たとえば、ステータスチェック、コメント)。ボットが提供する指示に従うだけです。 CLAを使用して、すべてのレポでこれを1回だけ行う必要があります。
このプロジェクトは、Microsoftのオープンソース行動規範を採用しています。詳細については、FAQのコードを参照するか、追加の質問やコメントについては[email protected]にお問い合わせください。
CGMANIFESTファイルは、コンポーネントタイプがガバナンスによってサポートされていない場合に、コンポーネントを手動で登録するために使用されるJSONファイルです。ファイル名は「cgmanifest.json」であり、必要なだけ多くを持ち、リポジトリ内のどこにでもいることができます。
ファイルパス: ./vhdbuilder/cgmanifest.json vhdbuilder/cgmanifest.json
参照:https://docs.opensource.microsoft.com/tools/cg/cgmanifest.html
パッケージ: