Created attachment 22066 [details] Патч Версия пакета: podsec-1.3.0-alt2 В файле podsec-u7s-functions функция setRegistryName преднамеренно использует сокращение "c10f", если U7S_PLATFORM принимает значение k8s-c10f*. ``` function setRegistryName() { export U7S_ALTREGISTRY="registry.altlinux.org" if [ ! -z "${U7S_REGISTRY+x}" -a ${#U7S_REGISTRY} -eq 0 ] then export U7S_REGISTRY="registry.k8s.io" U7S_PLATFORM= else if grep registry.local /etc/hosts >/dev/null 2>&1 then export U7S_REGISTRY="registry.local" else export U7S_REGISTRY=$U7S_ALTREGISTRY fi # source podsec-get-platform fi U7S_REGISTRY_PLATFORM=$U7S_REGISTRY if [ -n "$U7S_PLATFORM" ] then if [ ${U7S_PLATFORM:0:8} = 'k8s-c10f' ] then U7S_REGISTRY_PLATFORM+="/c10f" else U7S_REGISTRY_PLATFORM+="/$U7S_PLATFORM" fi fi # getKuberLastPatchVersion export U7S_REGISTRY_PLATFORM } ``` Ожидается, что скрипт будет использовать это значение "как есть" для формирования путей. Жесткое кодирование сокращения `c10f` внутри функции `setRegistryName` создает неявную зависимость, о которой пользователь не знает. В локальном реестре `registry.local` образы физически хранятся в репозиториях с префиксом `k8s-c10f2/`. Скрипт же пытается обращаться к несуществующему пути `c10f/`. Это приводит к тому, что скрипт не видит реально существующие образы, считая их отсутствующими. Шаги воспроизведения: 1) # export U7S_PLATFORM="k8s-c10f2" && export U7S_KUBEVERSION="v1.29.15" && export U7S_FLANNEL_TAG="v0.26.7" && export PATH=/usr/libexec/podsec/u7s/bin/:$PATH 2) # kubeadm init --apiserver-advertise-address $(hostname -i | cut -d' ' -f2) Фактический результат: ``` Предупреждение: команда kubeadm версии 1.29.15 уже установлена Минорная версия v1.29.15 kubeadm совпадает с устанавленной v1.29 Предупреждение: команда crio версии 1.29.13 уже установлена Минорная версия 1.29 crio совпадает с устанавленной v1.29 jq: error (at <stdin>:1): null (null) cannot be sorted, as it is not an array Версия образа c10f/kube-apiserver с тегом v1.29.15 недоступна jq: error (at <stdin>:1): null (null) cannot be sorted, as it is not an array В рамках указанной минорной версии v1.29 нет доступных образов Доступны следующие минорные версии: jq: error (at <stdin>:1): null (null) cannot be sorted, as it is not an array и следующие patch-версии образов: jq: error (at <stdin>:1): null (null) cannot be sorted, as it is not an array Для установки одной из указанных версий образов укажите выбранную версию образа в переменной среды export U7S_KUBEVERSION=... ``` Ожидаемый резльтат: ``` Если $U7S_PLATFORM явно определена пользователем, то она и используется. ``` Для исправления предлагается отказаться от фильтра по k8s-c10f.