1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/huangjiwang-calico

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
DEVELOPER_GUIDE.md 7.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.03.2025 17:35 a4a3e22

Руководство для разработчиков

Документ описывает, как создать среду разработки для Calico, а также как собрать и протестировать код разработки.

Этот руководство разделён на следующие основные разделы:

Дополнительные документы для разработчиков можно найти в hack/docs.

Предварительные требования:

Эти инструкции по сборке предполагают наличие Linux-среды разработки со следующими компонентами:

  • Docker
  • Git
  • Make

Сборка Calico

Сборка всего Calico

Чтобы собрать всё Calico, выполните следующую команду из корневой директории репозитория.

make image DEV_REGISTRY=my-registry

Это создаст несколько образов Docker, каждый помеченный указанным регистром.

Сборка конкретного образа

Чтобы собрать только один образ, вы можете запустить ту же команду в определенной поддиректории.

Например, чтобы собрать calico/node, выполните следующее:

make -C node image

Сборка для конкретной архитектуры

По умолчанию образы будут созданы для архитектуры машины сборки. Чтобы скрестить компиляцию, передайте переменную окружения ARCH. Например, чтобы собрать для arm64, выполните следующее:

make image ARCH=arm64
  • Теперь соберите YAML-манифесты, используемые для установки Calico:
make dev-manifests

Сборка использует кэш пакетов Go и локальный кэш vendoring для увеличения скорости сборки. Для выполнения чистой сборки используйте цель dev-clean.

make dev-clean dev-image

Описание целей Makefile

Вот стандартные цели Makefile, присутствующие во всех проектных директориях.

  • make build: собирает бинарник для текущей архитектуры. Обычно будет находиться в bin/ или dist/ и назван NAME-ARCH, например felix-arm64 или typha-amd64. Если доступно несколько операционных систем, то название будет NAME-OS-ARCH, например calicoctl-darwin-amd64.
  • make build ARCH=<ARCH>: собирает бинарник для указанной ARCH. Выходной бинарник будет находиться в bin/ или dist/ и будет назван согласно вышеупомянутому конвенции.
  • make build-all: собирает бинарники для всех поддерживаемых архитектур. Выходные бинарники будут находиться в bin/ или dist/ и будут названы согласно вышеупомянутому конвенции.
  • make image: создаёт образ Docker для текущей архитектуры. Он будет назван NAME:latest-ARCH, например calico/felix:latest-amd64 или calico/typha:latest-s390x. Если доступно несколько операционных систем, имя будет NAME:latest-OS-ARCH, например calico/ctl:latest-linux-ppc64le
  • make image ARCH=<ARCH>: создаёт образ Docker для указанной ARCH. Образы будут названы согласно вышеупомянутому конвенции.
  • make image-all: создаёт образы Docker для всех поддерживаемых архитектур. Образы будут названы согласно вышеупомянутому конвенции в make image.
  • make test: выполняет все тесты
  • make ci: выполняет все шаги CI для сборки и тестирования, вероятно, другие цели. ПРЕДУПРЕЖДЕНИЕ: не рекомендуется выполнять make ci локально, так как действия, которые он выполняет, могут быть разрушительными.
  • make cd: выполняет все шаги CD, обычно отправляет образы в реестры. ПРЕДУПРЕЖДЕНИЕ: не рекомендуется выполнять make cd локально, так как действия, которые он выполняет, могут быть разрушительными, например, отправка образов. Для вашей безопасности это будет работать только если вы выполните make cd CONFIRM=true, что должно быть выполнено только правильной системой CI.

Запуск автоматизированных тестов

Запуск единичных тестов

Каждая директория имеет свой набор автоматизированных тестов, которые живут внутри дерева и могут быть запущены без необходимости развертывания полной системы Kubernetes. Самый простой способ запустить тесты — это отправить pull request с вашими изменениями, что активирует сборку на системе CI.

Если вы хотите запустить их локально, мы рекомендуем запускать каждое тестовое множество отдельно, поскольку запуск тестов для всего кодового базиса может занять очень долгое время. Используйте цель test в определенной директории, чтобы запустить тесты этой директории.

make test

Для информации о том, как запустить подмножество тестов одной директории, обратитесь к документации и Makefile в этой директории.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/huangjiwang-calico.git
git@api.gitlife.ru:oschina-mirror/huangjiwang-calico.git
oschina-mirror
huangjiwang-calico
huangjiwang-calico
master