# Инфраструктура разделена на два слоя, и это не косметика. # # Flux делает dry-run всей Kustomization целиком перед применением. Если # положить cert-manager (который СТАВИТ CRD) и ClusterIssuer/Certificate # (которые ЭТИ CRD используют) в один слой, dry-run падает с # no matches for kind "Certificate" in version "cert-manager.io/v1" # и не применяется НИЧЕГО — включая сам cert-manager. Дедлок: CRD никогда не # появятся, потому что слой не может пройти проверку. # # Поэтому: controllers ставят чарты (и CRD), configs содержат только # пользовательские ресурсы. # # ПОЧЕМУ У infra-configs НЕТ dependsOn (было — и создавало дедлок). # # В configs лежат ClusterIssuer'ы. Чарты из слоя controllers создают # Certificate, а Flux после установки релиза ждёт готовности его ресурсов. # С dependsOn получался круг: # чарт с Certificate ждёт выпуска # → выпуск ждёт ClusterIssuer # → ClusterIssuer в configs # → configs ждёт готовности controllers # → а там висит тот самый чарт # Наступали на это дважды: сначала istio-config, следом rabbitmq (тот провисел # в "Running 'install' action" полчаса). # # Жёсткий порядок заменён сходимостью через повторы: пока cert-manager не # поставил CRD, configs будет падать на dry-run и переприменяться каждые # 10 минут, а как только CRD появятся — применится сам. Издатели при этом # больше не зависят от здоровья чартов, которые в них нуждаются. # # apps по-прежнему ждёт controllers, и это правильно: без istiod и # vault-agent-injector его поды физически не поднимутся. --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: infra-controllers namespace: flux-system spec: interval: 10m0s path: ./clusters/aero/controllers prune: true wait: true timeout: 10m0s sourceRef: kind: GitRepository name: flux-system --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: infra-configs namespace: flux-system spec: interval: 10m0s path: ./clusters/aero/configs prune: true # dependsOn намеренно отсутствует — см. комментарий в начале файла. # Повторные попытки до появления CRD дешевле, чем дедлок. retryInterval: 1m0s sourceRef: kind: GitRepository name: flux-system