Bug 59618

Summary: Конфигурационные файлы podsec-k8s содержат устаревший флаг enable-v2, несовместимый с etcd 3.6+
Product: Branch p11 Reporter: Лавренко Егор Сергеевич <lavrenkoes>
Component: podsec-k8sAssignee: ALexey Kostarev <kaf>
Status: NEW --- QA Contact: qa-p11 <qa-p11>
Severity: normal    
Priority: P5 CC: shaba
Version: unspecified   
Hardware: x86_64   
OS: Linux   

Description Лавренко Егор Сергеевич 2026-06-23 15:52:36 MSK
Проверялось на системах:
Alt Server 11.1 x86-64

Версия пакета:
podsec-1.3.0-alt2

Описание проблемы:
В конфигурационных файлах пакета podsec-k8s:
- /etc/podsec/u7s/config/kubeadm-configs/InitClusterConfiguration.yaml
- /etc/podsec/u7s/config/kubeadm-configs/JoinClusterConfiguration.yaml
Явно указан флаг enable-v2: 'true' для etcd. Этот флаг передаётся в kubeadm через --config, и kubeadm добавляет --enable-v2=true в манифест /etc/kubernetes/manifests/etcd.yaml. Однако в etcd версии 3.6.0+ поддержка v2 API удалена (https://github.com/etcd-io/etcd/blob/main/CHANGELOG/CHANGELOG-3.6.md#flags-removed), и etcd падает с ошибкой flag provided but not defined: -enable-v2

Примечание: Оригинальный kubeadm (из SPRM kubernetes1.34+, без обёртки podsec) корректно генерирует манифест etcd без этого флага для etcd 3.6+. Проблема воспроизводится на Kubernetes 1.34+ (использующих etcd 3.6+)

Шаги воспроизведения:
1. Выполнить настройку master:
# sed -i '/swap/d' /etc/fstab
# hostnamectl set-hostname podsec-master
# reboot
2. Установить пакеты:
# apt-get install podsec podsec-k8s
3. Добавить в переменную PATH путь до утилит Podsec:
# export PATH=/usr/libexec/podsec/u7s/bin/:$PATH && which kubeadm
4. Добавить следующие переменные (последний доступный манифест flannel для podsec в /etc/podsec/u7s/manifests/kube-flannel/):
# export U7S_KUBEVERSION=v1.35.0 && export U7S_FLANNEL_TAG=v0.27.3
5. Выполнить инициализацию кластера:
# kubeadm init --apiserver-advertise-address $(hostname -i | cut -d' ' -f2)

Ожидаемый результат:
Кластер корректно развернулся

Реальный результат:
# machinectl shell u7s-admin@ /usr/libexec/podsec/u7s/bin/nsenter_u7s bash
# crictl logs $(crictl ps -a | grep etcd | head -1 | awk '{print $1}')
flag provided but not defined: -enable-v2
Usage:

  etcd [flags]
    Start an etcd server.

  etcd --version
    Show the version of etcd.

  etcd -h | --help
    Show the help information about etcd.

  etcd --config-file
    Path to the server configuration file. Note that if a configuration file is provided, other command line flags and environment variables will be ignored.

  etcd gateway
    Run the stateless pass-through etcd TCP connection forwarding proxy.

  etcd grpc-proxy
    Run the stateless etcd v3 gRPC L7 reverse proxy.

Дополнительно:
1. Не удается воспроизвести на Sisyphus, поскольку инициализация кластера блокируется:
...
Настройка использования образа registry.altlinux.org/sisyphus/pause:3.10.1 при запуска pod'ов в podman (podman pod init)
Failed to connect to user scope bus via local transport: Нет такого файла или каталога
Failed to connect to user scope bus via local transport: Нет такого файла или каталога
Failed to connect to user scope bus via local transport: Нет такого файла или каталога
...
2. При удалении данного флага из конфигурации, ошибка пропадает