Ответы на квизы и отметки пройденных уроков будут удалены на этом устройстве.
Это действие нельзя отменить.
Шпаргалка: dmtlint / pkglint
pkglint проверяет Application-пакеты (курс сфокусирован на нём), dmtlint — Module (нужен Application-разработчику только для понимания зависимостей, не для авторства модулей). Полный разбор — M9 уроки 2–4.
Самые используемые команды
1
2
3
4
d8 package verify # запустить pkglint на локальной директории пакета (6 линтеров)d8 package verify --hide-warnings # только ошибки — типичный строгий CI-гейтdmt lint [dirs...]# запустить dmtlint на директории Module (9 линтеров, для анализа зависимостей)dmt lint [dirs...] --linter <name> # запустить только один линтер
Конфигурация .pkglint.yaml (в корне пакета) — переопределяет дефолтные правила: какие находки повышать/понижать в severity, какие правила исключать точечно.
oss.yaml — поля, проверяемые линтером oss
Плоский список компонентов (без обёртки items:):
1
2
3
4
5
6
7
8
9
10
- id:<component-id># стабильный идентификатор для диагностикиname:<component-name># имя open-source компонентаdescription:<text># описание компонентаlicense:<SPDX-identifier># одна строка (например MIT, AGPL-3.0, MIT OR Apache-2.0)link:<url># ссылка на исходный репозиторий или лицензиюversion:<exact-version># точная версия (взаимоисключимо с versions)# versions: # альтернатива version — список {name, version, condition}# - name: ...# version: ...# condition: ...
dmt lint — dmtlint (9 линтеров, Module)
Application-разработчику нужен для понимания, как проверяются Module-зависимости платформы (см. M6 «Обязательные модули») — не для написания собственных Module.
1
2
3
4
5
6
7
dmt lint [dirs...]dmt lint [dirs...] --linter <name> # запустить только один линтер (например, rbac)dmt lint [dirs...] --values-file <path> # передать values-файл при линтингеdmt lint [dirs...] --hide-warnings # скрыть предупреждения, показать только ошибкиdmt lint [dirs...] --abs-path # вывод абсолютных путей в находкахdmt lint [dirs...] --show-ignored # показать находки, исключённые через .dmtlint.yamldmt lint [dirs...] --log-level <level> # управление уровнем логирования
dmt bootstrap <name> [--pipeline github|gitlab][--directory <dir>][--repository-url <url>]# скаффолдинг нового Moduledmt render [module-path][--output <dir>]# рендер чартов Module с учётом Deckhouse-контекста (НЕ "сырой" helm template)dmt render <module-path> --output ./rendered
dmt test conversions [module-path][--update]# тест миграции config-values.yaml между версиями схемыdmt test templates [module-path][--update]# тест шаблонов Module
.dmtlint.yaml — ключи конфигурации
1
2
3
4
5
6
7
8
9
10
linters-settings:<linter>:impact:error # находки линтера блокируют CIimpact:warn # находки понижены до предупреждений, не блокируют CIexclude-rules:<linter>:- kind:<Kind> # точечное исключение находки по Kubernetes kindname:<name> # точечное исключение находки по имени ресурсаcontainer:<name> # исключение по имени контейнера
d8 package verify — единственный вызов линтера, встречающийся в практике курса как гейт CI; dmt lint в уроках Application-трека появляется только как read-only анализ чужого Module (git clone --depth 1 https://github.com/deckhouse/modules-template.git) для понимания зависимостей, а не как шаг публикации собственного пакета.