Bug 57677 - "Не устанавливается" cert-manager
Summary: "Не устанавливается" cert-manager
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: cert-manager (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: gamzin@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-01-27 16:04 MSK by Блинов Денис Вячеславович
Modified: 2026-02-09 16:50 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Блинов Денис Вячеславович 2026-01-27 16:04:01 MSK
Воспроизводится в сизиф на версии пакета:
cert-manager-1.19.2-alt1.x86_64
Не воспроизводится в p11:
cert-manager-1.14.5-alt1.x86_64

Шаги:
1) # apt-get install kubernetes<VERSION>-kubeadm kubernetes<VERSION>-kubelet kubernetes<VERSION>-crio cri-tools<VERSION> cert-manager -y
sed -i '/swap/d' /etc/fstab
reboot

2) # systemctl enable --now crio kubelet
kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerification

3) # mkdir -p /home/test/.kube
cp /etc/kubernetes/admin.conf /home/test/.kube/config
chown -R test:test /home/test/.kube

4) $ kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v$(rpm -q --queryformat "%{VERSION}" cert-manager)/cert-manager.crds.yaml

5) $ startupapicheck check api

Ожидаемый результат: успешное выполнение startupapicheck check api и вывод: The cert-manager API is ready
Реальный результат: 
$ startupapicheck check api
E0127 14:17:36.178466    2412 main.go:76] "error executing command" err="the cert-manager mutation webhook did not mutate the dry-run CertificateRequest object" logger="cert-manager"

Аналогично например не работают: 
$ cmctl renew example-local
-bash: cmctl: команда не найдена
$ kubectl-cert_manager check api
-bash: kubectl-cert_manager: команда не найдена

На версии в p11 всё работает корректно по указанным шагам.
Если выполнить шаги с версиями из p11 и обновить cert-manager (например до задания 405902 или же до сизиф), то cert-manager перестаёт работать.
Comment 1 Alexey Shabalin 2026-01-27 17:24:22 MSK
Попробуйте установить cmcrl
Comment 2 Блинов Денис Вячеславович 2026-01-27 17:58:40 MSK
(Ответ для Alexey Shabalin на комментарий #1)
> Попробуйте установить cmcrl

Установка cmctl помогла решить проблему с выполнением $ cmctl renew example-local обновление сертификата успешно

Выполнение: $ kubectl-cert_manager check api Приводит к
error: the cert-manager mutation webhook did not mutate the dry-run CertificateRequest object

Выполнение: $ startupapicheck check api приводит к
E0127 17:52:37.839788    2430 main.go:76] "error executing command" err="the cert-manager mutation webhook did not mutate the dry-run CertificateRequest object" logger="cert-manager"
Comment 3 gamzin@altlinux.org 2026-01-28 15:20:42 MSK
Для новой версии cert-manager недостаточно применить cert-manager.crds.yaml.
Необходимо применить полный манифест:
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v$(rpm -q --queryformat "%{VERSION}" cert-manager)/cert-manager.yaml

Или манифест из инструкции https://www.altlinux.org/Cert-manager.
Comment 4 Блинов Денис Вячеславович 2026-01-31 16:33:27 MSK
Применение cert-manager.yaml вместо применения cert-manager.crds.yaml в шаге 4 помогает, решение работает на обоих версиях (1.14.5-alt1 и 1.19.2-alt1).

Примечание: в cert-manager.yaml прописан taint для control-plane узла, поэтому поды не стартуют "из коробки" и api соответственно тоже.
Запуск подов:
$ kubectl get nodes
$ kubectl taint nodes <Node_Name> node-role.kubernetes.io/control-plane:NoSchedule-
Доустановка пакета cmctl делает возможным выполнение cmctl renew example-local и kubectl-cert_manager check api.

При обновлении версии cert-manager-1.14.5-alt1.x86_64 до cert-manager-1.19.2-alt1.x86_64 сервис перестаёт работать, если на старой версии разворачивать с cert-manager.crds.yaml, но раз новая версия требует cert-manager.yaml, то ожидаемо.

Но на новой версии запуск вебхука по умолчанию стал требовать TLS-сертификат, на версии 1.14.15 работало без него: webhook --kubeconfig ~/.kube/config --secure-port 1337 -v 1, на версии 1.19.2 уже требует обязательный сертификат. 
В описаниях релизов (https://github.com/cert-manager/cert-manager/releases) не нашёл чёткого указания о подобном изменении, является ли такое поведение ожидаемым?
Comment 5 gamzin@altlinux.org 2026-02-02 10:34:33 MSK
Такое поведение является ожидаемым, и описано на сайте проекта, в документации:
https://cert-manager.io/docs/concepts/webhook/#overview:~:text=Overview