Created attachment 15881 [details] Полный вывод команды podsec-k8s-save-oci Шаги ==== 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_SETAVAILABLEIMAGES=yes U7S_PLATFORM=k8s-sisyphus podsec-k8s-save-oci out amd64 k8s-sisyphus Фактический результат ===================== Команда завершается успешно, но очень быстро, и выводит ошибки (полный вывод во вложении): > imagemaker$ U7S_SETAVAILABLEIMAGES=yes U7S_PLATFORM=k8s-sisyphus podsec-k8s-save-oci out amd64 k8s-sisyphus > ... > Загрузка образа registry.altlinux.org/k8s-sisyphus/cert-manager-controller:v1.11.0 > FATA[0000] Invalid destination name containers-storage:[/home/imagemaker/.local/share/usernetes/images/k8s-sisyphus/amd64]registry.altlinux.org/k8s-sisyphus/cert-manager-controller:v1.11.0: mkdir /run/containers/storage: permission denied > ... > chown: неверная группа: «imagemaker:imagemaker» > ... Использование созданного архива невозможно: > imagemaker$ U7S_PLATFORM=k8s-sisyphus podsec-load-sign-oci out/amd64.tar.xz amd64 imagemaker@test.ru > Версия платформы k8s-sisyphus преопределена переменной U7S_PLATFORM. Принимается это значение. > amd64/ > amd64/blobs/ > Неверный формат архива. Индексный файл архива amd64/index.json отсутствует Ожидаемый результат =================== Успешная сборка архива с образами. Воспроизводимость ================= Воспроизводится на виртуальной машине: [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 Не воспроизводится на виртуальной машине (примечание: U7S_SETAVAILABLEIMAGES=yes не актуален в p10): [p10] ALT Server 10.2 x86_64 podsec-1.0.8-alt1.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
Протестирую Возможно неверно указана группа Вроде эта ошибка была устранена... Завтра отвечу детально...
(Ответ для Artem Varaksa на комментарий #0) > Создано вложение 15881 [details] [подробности] > Полный вывод команды podsec-k8s-save-oci > > Шаги > ==== > > 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_SETAVAILABLEIMAGES=yes U7S_PLATFORM=k8s-sisyphus out amd64 k8s-sisyphus > > Фактический результат > ===================== > > Команда завершается успешно, но очень быстро, и выводит ошибки (полный вывод > во вложении): > > > imagemaker$ U7S_SETAVAILABLEIMAGES=yes U7S_PLATFORM=k8s-sisyphus podsec-k8s-save-oci out amd64 k8s-sisyphus > > ... > > Загрузка образа registry.altlinux.org/k8s-sisyphus/cert-manager-controller:v1.11.0 > > FATA[0000] Invalid destination name containers-storage:[/home/imagemaker/.local/share/usernetes/images/k8s-sisyphus/amd64]registry.altlinux.org/k8s-sisyphus/cert-manager-controller:v1.11.0: mkdir /run/containers/storage: permission denied > > ... > > chown: неверная группа: «imagemaker:imagemaker» > > ... > > Использование созданного архива невозможно: Я не припомню упоминалось ли это где-то, но сейчас podsec-k8s-save-oci корректно работает под суперпользователем root Под imagemaker есть проблемы с группой и возможно с праваии доступа Посмотрю...
Прошу прощения, ошибка: > chown: неверная группа: «imagemaker:imagemaker» скорее всего была вызвана отсутствием пользователя imagemaker на проверяемой системе. --- Однако в podsec-1.0.10-alt7.noarch даже при запуске сборки образов от root по-прежнему осталась ошибка: > Загрузка образа registry.altlinux.org/k8s-sisyphus/cert-manager-controller:v1.11.0 > FATA[0000] Invalid destination name containers-storage:[/home/imagemaker/.local/share/usernetes/images/k8s-sisyphus/amd64]registry.altlinux.org/k8s-sisyphus/cert-manager-controller:v1.11.0: mkdir /run/containers/storage: permission denied (возможно, это отдельная проблема). И основная ошибка - созданный архив все равно недействителен: > imagemaker$ U7S_PLATFORM=k8s-sisyphus podsec-load-sign-oci out/amd64.tar.xz amd64 imagemaker@test.ru > Версия платформы k8s-sisyphus преопределена переменной U7S_PLATFORM. Принимается это значение. > amd64/ > amd64/blobs/ > Неверный формат архива. Индексный файл архива amd64/index.json отсутствует
(Ответ для Artem Varaksa на комментарий #4) > Прошу прощения, ошибка: > > > chown: неверная группа: «imagemaker:imagemaker» > > скорее всего была вызвана отсутствием пользователя imagemaker на проверяемой > системе. > Этого сообщения chown: неверная группа: «imagemaker:imagemaker» при работе под пользователем root вообще не должно было быть, так как выполняется оператор chown root:root ... в пользователе imagemaker нет необходимости... > --- > > Однако в podsec-1.0.10-alt7.noarch даже при запуске сборки образов от root > по-прежнему осталась ошибка: > > > Загрузка образа registry.altlinux.org/k8s-sisyphus/cert-manager-controller:v1.11.0 > > FATA[0000] Invalid destination name containers-storage:[/home/imagemaker/.local/share/usernetes/images/k8s-sisyphus/amd64]registry.altlinux.org/k8s-sisyphus/cert-manager-controller:v1.11.0: mkdir /run/containers/storage: permission denied > > (возможно, это отдельная проблема). > > И основная ошибка - созданный архив все равно недействителен: > > > imagemaker$ U7S_PLATFORM=k8s-sisyphus podsec-load-sign-oci out/amd64.tar.xz amd64 imagemaker@test.ru > > Версия платформы k8s-sisyphus преопределена переменной U7S_PLATFORM. Принимается это значение. > > amd64/ > > amd64/blobs/ > > Неверный формат архива. Индексный файл архива amd64/index.json отсутствует А можно весь текст файла логов /tmp/log при выполнении команды # sh -x podsec-k8s-save-oci <arch> amd64 2>&1 | tee /tmp/log
Created attachment 15952 [details] podsec-1.0.10-alt7: sh -x podsec-k8s-save-oci Приложил /tmp/log после выполнения команды: > # U7S_SETAVAILABLEIMAGES=yes U7S_PLATFORM=k8s-sisyphus sh -x podsec-k8s-save-oci out amd64 2>&1 | tee /tmp/log
(Ответ для Artem Varaksa на комментарий #6) > Создано вложение 15952 [details] [подробности] > podsec-1.0.10-alt7: sh -x podsec-k8s-save-oci > > Приложил /tmp/log после выполнения команды: > > > # U7S_SETAVAILABLEIMAGES=yes U7S_PLATFORM=k8s-sisyphus sh -x podsec-k8s-save-oci out amd64 2>&1 | tee /tmp/log Разобрался в чем причина time="2024-04-23T12:11:32+03:00" level=fatal msg="copying system image from manifest list: Source image rejected: Running image docker://registry.altlinux.org/k8s-sisyphus/cert-manager-controller:v1.11.0 is rejected by policy." Запускать podsec-k8s-save-oci следует ДО настройки политик доступа (podsec-create-policy) Вообще по сути эта команда должна запускаться на сервере , где podsec-k8s не разворачивается, так как это команда используется при построении ISO-образов В этой ситуации стоит 1. Перейти в каталог /etc/containers 2. Посмотреть на какой файл залинкован policy.json # ls -l policy.json lrwxrwxrwx 1 root root 26 апр 19 10:28 policy.json -> policy_2024-04-19_10:27:14 3. Найти файл с исходными свободными политиками # grep -l insecureAcceptAnything policy_* policy_2024-04-18_10:26:42 4. Перелинковать policy.json на этот файл # ln -sf policy_2024-04-18_10:26:42 policy.json 5. Проверить policy.json # cat policy.json { "default": [ { "type": "insecureAcceptAnything" } ], "transports": { "docker-daemon": { "": [{"type":"insecureAcceptAnything"}] } } } После этого можно запускать podsec-k8s-save-oci После успешного окончания нужно не забыть обратно перелинковать policy.json
Спасибо, в таком случае образ собирается корректно.
Наверное эти ньюансы надо в документации отразить Вы какими документами пользуетесь? Моими: - https://github.com/kafnevod/podsec/tree/master/usernetes#readme - https://www.altlinux.org/Rootless_kubernetes#podsec-k8s_-_%D0%91%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9_%D1%81%D1%82%D0%B0%D1%80%D1%82 Или специализированными внутренними для podsec-k8s?
(Ответ для ALexey Kostarev на комментарий #9) > Вы какими документами пользуетесь? Основываемся на ваших документах.