Agentbaker - это коллекция компонентов, используемых для предоставления узлов Kubernetes в Azure.
У агента
Основным потребителем AgentBaker является Azure Kubernetes Service (AKS).
AKS использует AgentBaker для предоставления узлов Linux и Windows Kubernetes.
Развитие агента требует нескольких основных необходимости:
Запустите make -C hack/tools install для установки всех инструментов разработки.
Если вы измените код или артефакты, используемые для генерации пользовательских данных или пользовательских полезных нагрузок расширения скриптов, вам следует make .
Этот код повторного запуска для встраивания статических файлов в код GO, который на самом деле будет использоваться во время выполнения.
Это дополнительно выполняет модульные тесты (эквивалент go test ./... ) и регенерирует TestData.
Мы используем Golangci-Lint для обеспечения стиля.
Запустите make -C hack/tools install для установки Linter.
Запустить ./hack/tools/bin/golangci-lint run , чтобы запустить Linter.
В настоящее время у нас есть много неудач, которые мы надеемся устранить.
У нас есть работа, чтобы запустить Golangci-Lint по запросам.
В этой работе используется функция «НЕВОЛЬКО НЕВЕДЕНИЯ».
Пока PR не вводят новые новые проблемы, они должны пройти.
У нас также есть работа по линии, чтобы обеспечить соблюдение стиля сообщений.
Мы придерживаемся обычных коммитов.
Предпочитаю запросы на притяжение с помощью единичных коммитов.
Чтобы очистить In -Progress Commits, вы можете использовать git rebase -i для исправления коммитов.
Смотрите документацию GIT для получения более подробной информации.
Большая часть кода может быть протестирована с помощью модульных тестов Vanilla GO.
Пожалуйста, посетите официальную ссылку Github для получения более подробной информации. Ниже приведен краткий вариант использования.
Shellspec используется в качестве структуры для модульного теста. Есть 2 параметра для его установки.
Shellspec уже включен в Makefile. Вы можете установить его, просто запустив make tools-install или make generate в корневом (/AgentBaker) каталоге.
ПРИМЕЧАНИЕ. 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
Чтобы запустить все тесты, в папке Agentbaker просто запустите bash ./hack/tools/bin/shellspec в каталоге Root (/AgentBaker).
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" =>, предоставив полный путь определенный файл спецификации, вы можете запустить только этот файл спецификации вместо всех файлов Spec в проекте Agentbaker. Например, bash ./hack/tools/bin/shellspec "spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh" У нас также есть тесты данных снимка, которые хранят вывод ключевых API в качестве файлов на диске.
Мы можем вручную проверить, что содержание снимка выглядит правильно.
Теперь у нас есть модульные тесты, которые могут непосредственно проверять контент, не оставляя сгенерированных файлов на диске.
dynamic-config-dir ./pkg/agent/baker_test.go
Оформить каталог E2E.
Этот проект приветствует вклады и предложения. Большинство взносов требуют, чтобы вы согласились с лицензионным соглашением о участнике (CLA), заявив, что вы имеете право и фактически предоставить нам права на использование вашего вклада. Для получения подробной информации, посетите https://cla.opensource.microsoft.com.
Когда вы отправляете запрос на привлечение, бот CLA автоматически определит, нужно ли вам предоставить CLA и правильно украсить PR (например, проверка состояния, комментарий). Просто следуйте инструкциям, предоставленным ботом. Вам нужно будет сделать это только один раз во всех репо, используя наш CLA.
Этот проект принял код поведения с открытым исходным кодом Microsoft. Для получения дополнительной информации см. Кодекс поведения FAQ или свяжитесь с [email protected] с любыми дополнительными вопросами или комментариями.
Файл cgmanifest - это файл JSON, используемый для регистрации компонентов вручную, когда тип компонента не поддерживается управлением. Имя файла «cgmanifest.json», и вы можете иметь столько, сколько вам нужно, и можете быть в любом месте вашего репозитория.
Путь файла: ./vhdbuilder/cgmanifest.json
Ссылка: https://docs.opensource.microsoft.com/tools/cg/cgmanifest.html
Упаковка: