Bug 50042

Summary: Не обнаруживает доступные версии при использовании U7S_KUBEVERSION c podsec-k8s-save-oci
Product: Sisyphus Reporter: Artem Varaksa <varaksaaa>
Component: podsec-k8sAssignee: kaf <kaf>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: kaf, shaba
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Artem Varaksa 2024-04-16 12:54:23 MSK
Шаги
====

1. # podsec-create-policy <ip>
2. # podsec-create-services
3. # podsec-create-imagemakeruser imagemaker
4. # podsec-create-podmanusers poduser
5. # ssh imagemaker@localhost
6. imagemaker$ U7S_KUBEVERSION=v1.28.7 podsec-k8s-save-oci out amd64 k8s-sisyphus

Фактический результат
=====================

Скрипт считает, что "Версия 1.28 пакетов  kubernetes1.28-kubeadm kubernetes1.28-kubelet kubernetes1.28-crio cri-tools1.28 недоступна":

> imagemaker$ U7S_KUBEVERSION=v1.28.7 podsec-k8s-save-oci out amd64 k8s-sisyphus
> Предупреждение: команда kubeadm версии 1.28.8 уже установлена
> Предупреждение: команда crio версии 1.28.4 уже установлена
> Версия v1.28.7 crio совпадает с устанавливаемой
> Удаление пакетов  kubernetes.28-kubeadm
> Установка пакетов  kubernetes1.28-kubeadm kubernetes1.28-kubelet kubernetes1.28-crio cri-tools1.28
> Версия 1.28 пакетов  kubernetes1.28-kubeadm kubernetes1.28-kubelet kubernetes1.28-crio cri-tools1.28 недоступна
> Пытаемся установить предыдущую минорную версию 1.27 пакетов kubernetes1.27-kubeadm  kubernetes1.27-crio kubernetes1.27-kubelet
> Версия 1.27 пакетов kubernetes1.27-kubeadm  kubernetes1.27-crio kubernetes1.27-kubelet недоступна
> Пытаемся установить предыдущую минорную версию 1.26 пакетов kubernetes1.26-kubeadm  kubernetes1.26-crio kubernetes1.26-kubelet
> Версия 1.26 пакетов kubernetes1.26-kubeadm  kubernetes1.26-crio kubernetes1.26-kubelet недоступна
> Пытаемся установить предыдущую минорную версию 1.25 пакетов kubernetes1.25-kubeadm  kubernetes1.25-crio kubernetes1.25-kubelet
> Минорная версия kubeadm 1.25 менее 1.26 не поддерживается

(Про удаление неверных версий см. https://bugzilla.altlinux.org/50041 (Некорректная обрезка версии при удалении пакетов).)

Хотя эти пакеты доступны и установлены:

> $ apt-cache search kubeadm
> kubernetes1.22-kubeadm - Kubernetes tool for standing up clusters
> kubernetes1.23-kubeadm - Kubernetes tool for standing up clusters
> kubernetes1.24-kubeadm - Kubernetes tool for standing up clusters
> kubernetes1.25-kubeadm - Kubernetes tool for standing up clusters
> kubernetes1.26-kubeadm - Kubernetes tool for standing up clusters
> kubernetes1.27-kubeadm - Kubernetes tool for standing up clusters
> kubernetes1.28-kubeadm - Kubernetes tool for standing up clusters

Возможно, имеется в виду отсутствие соответствующих образов на registry, так как U7S_SETAVAILABLEIMAGES=yes помогает, но тогда сообщение об ошибке должно быть другим.

Ожидаемый результат
===================

Успешная сборка архива с образами.

Воспроизводимость
=================

Воспроизводится на виртуальной машине:

[sisyphus] ALT Server 10.2 x86_64
podsec-1.0.10-alt6.noarch
kubernetes1.28-kubeadm-1.28.8-alt1.x86_64
kubernetes1.28-kubelet-1.28.8-alt1.x86_64
kubernetes1.28-crio-1.28.8-alt1.noarch
cri-tools1.28-1.28.0-alt1.x86_64

В p10 проверяемого функционала ещё нет.
Comment 1 Artem Varaksa 2024-04-16 13:59:16 MSK
Похоже, проблема в отсутствии повышения привилегий до root, которое было добавлено ранее, но похоже теперь отсутствует.

Например, при запуске:

> $ U7S_SETAVAILABLEIMAGES=yes U7S_REGISTRY=registry.local U7S_PLATFORM=k8s-sisyphus U7S_KUBEVERSION=v1.26.11 kubeadm init --apiserver-advertise-address <ip>

Наблюдается аналогичная проблема, а если корректно запустить эту команду от root, то операции с пакетами выполняются успешно, хоть и с ошибкой:

> ...
> /usr/bin/podsec-u7s-functions: строка 409: /tmp/aptget.log: Отказано в доступе
> ...

Уточню, что хотя kubeadm предполагается запускать только от root, podsec-k8s-* запускаются не от root. Привел пример с kubeadm лишь в качестве исследования причины ошибки.
Comment 2 Artem Varaksa 2024-04-22 15:44:10 MSK
В podsec-1.0.10-alt7.noarch выполняется проверка, что скрипт podsec-k8s-save-oci запускается от root.