Технический комитет Debian (CTTE) одобрил поставку Kubernetes одним монолитным пакетом вместе с зависимостями. Случилось это после того, как сопровождающий пакета k8s добавил в него более 200 зависимостей библиотек и, фактически, своими действиями просто поставил CTTE перед фактом.
Комитету пришлось одобрить поставку Kubernetes монолитом, хотя это полностью противоречит правилам разработки Debian.
Суть в том, что эксплуатация Kubernetes требует использования большого количества библиотек на языке Go. По правилам разработки Debian, каждая библиотека должна существовать в рамках отдельного пакета. Для работы с Kubernetes на Debian это означало огромное количество человеко-часов на сопровождение библиотек, что, по сути своей, являлось нецелесообразным для разработчиков. Ситуация осложнялась и тем, что большим проектам нужна не последняя, а одна из старых stable-версий как Kubernetes, так и библиотек к нему. В итоге политика Debian делала использование k8s на этой ОС тяжелой и нецелесообразной.
После того, как сопровождающий пакета Kubernetes буквально психанул, и добавил более 200 зависимостей, которые на самом деле были нужны для комфортной работы с k8s, комитету пришлось одобрить этот шаг. Фактически, факт нарушения политики разработки Debian со стороны сопровождающего был признан, однако вместо требования откатить изменения, CTTE отнесла новый монолитный пакет Kubernetes к категории «специальных». В этой же категории, например, находится Firefox.
Теперь, уже официально, комитет позволил поставлять Kubernetes со встроенными зависимостями вместо сборки отдельными библиотеками через dpkg. Все исходники будут загружаться из набора, который предоставляют сами разработчики Kubernetes и помещаться в репозиторий Debian монолитом.
Не все разработчики Debian приняли спокойно решение технического комитета. Если в случае «специального» Firefox все более-менее понятно — всем пользователям нужен браузер — то по Kubernetes мнения разделились. Он нужен далеко не поголовно, так почему ему был выделен этот статус и монолит в репозитории? Что насчет других технологий? Полную версию местами драматичной переписки и обсуждения этого вопроса вы можете увидеть вот тут.
Стоит отметить, что тренд на слом старых правил и добавления зависимостей начался чуть ранее. На прошлой неделе примерно та же ситуация произошла в сообществе Fedora, только там были добавлены зависимости для проектов на базе Node.js.
Loggus66
Встроенный Kubernetes в Debian не нужен, как не нужен и встроенный Docker. Debian замораживает версии пакетов перед релизом, через год он будет устаревшим, через два — неактуальным, а через пять — потребуется бэкпортировать обновления безопасности на эту версию. Или «специальный» статус как раз подразумевает поднятие мажорных версий и быстрый отказ от поддержки? Но зависимость от старого runtime (docker/containerd) это всё равно не устранит.