CI: проверять, что объекты из Kustomization без targetNamespace несут свой namespace (и что sourceRef в HR существует в рендере) #81
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Найдено на выкате Open WebUI (MR #79 → фикс #80).
Симптом:
Kustomization repositoriesвflux-systemушла вReady=False— «OCIRepository/open-webui namespace not specified», из-за объекта безmetadata.namespaceв каталоге, у Kustomization которого нетspec.targetNamespace. Каталог источников перестал реконсилиться целиком, аHelmRelease open-webuiвместо установки получил «could not get Source object: OCIRepository "open-webui" not found». В браузере это 500 на хосте: маршрут жив, бэкенда нет.Почему не поймал CI:
flate test allпроверяет рендер, ссылки и статус реконсиляции, но не то, что объект из Kustomization безspec.targetNamespaceнесёт свой namespace в манифесте. Схемы CRD тут тоже не помогут — это ошибка применения, а не валидации поля.Что предлагается добавить в пайплайн (любой из вариантов, выбрать при реализации):
spec.targetNamespaceтребоватьmetadata.namespace(статика, дешевле всего; ловит ровно этот класс).kubectl apply --dry-run=serverпо отрендеренному дереву (нужен живой кластер/права — в CI не подходит).chartRef/sourceRefв HelmRelease указывают на объект, который существует в рендере этого ревизии (ловит и опечатку в имени источника).Вариант 3 ценнее: он закрывает и «источник не создался», и «источник переименовали».