Удаление развернутого приложения #1
Labels
No labels
api-component
bug
catalogue
complex-pipeline
consistency
databox
documentation
duplicate
experiment-pipeline
files
invalid
ml-component
platform-app
question
security
status: fixed
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: mlops_platform/documentation#1
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?
Описание
При удалении развернутого приложения его namespace исчезает из пространства имен пользователя, но само приложение не удаляется и даже может продолжать отвечать на запросы(поды mlcmp все еще работают). Application в ArgoCD не удаляется и соответственно не удаляются компоненты из репозитория и ресурсы созданные на их основе. Фактически модуль продолжает работать без PlatformApplication.
Вероятно проблема возникает если у приложения есть выделенные поды. Возможно проблема не возникнет если предварительно убрать mlcmp из приложения(например убрав его манифест из репозиторий развертывания).
В целом баг не прозрачен для пользователя(это можно обнаружить только при поддержке администратора кластера).
Удаление приложения следует начинать с установки статуса начала удаления на CRD PlatformApp, выключения обновления проекта в ArgoCD, затем удаление ресурсов K8s, созданных контроллерами фреймворка с установкой статуса удаления для CRD ресурсов, который выключает обновления для них контроллерами и указание статуса приложения как удаленного. Удаление экземпляра PlatformApp через DELETE допускается только в этом статусе, что вызывает удаление проекта в ArgoCD, затем удаление пространства имен и самого экземпляра PlatformApp.
Статус приложение удалено вычисляется путем опроса статусов CRD, созданных при развертывании приложения в его пространстве имен при наличии статуса начала удаления. Приложение получает статус удалено, когда все CRD в статусе удален.
Повторное удаление приложения в статусе начало удаление или удалено проверяет, что все CRD в статусе удалены.
Данные ящиков не удаляются, но могут быть помечены как несвязанные с каким либо ящиком в метаданных S3. При повторном создании ящика в том же приложении данные должны быть доступны, если не были до этого удалены. Для принудительного удаления данных необходимо их удалить через файловый API, например, удалив файловую группу.
Вероятно, проблема в том, что argocd не удается удалить ящики, потому что соответствующие им PVC используются в Job пайплайнов (завершенных, запланированных, ...). Возможно, поэтому argocd не удаляет и остальные ресурсы.