Argo CD Mobile: управление деплоями со смартфона

Нативное мобильное приложение для iOS и Android, позволяющее отслеживать развёртывания Argo CD и управлять ими прямо со смартфона.

Список приложений Argo CD в мобильном интерфейсе

Возможности

  • Просмотр всех приложений с актуальным статусом работоспособности (health) и синхронизации (sync)

  • Фильтрация по статусу синхронизации, состоянию, проекту, пространству имён и меткам (ключ или key=value)

  • Запуск синхронизации, принудительного обновления (hard refresh) и отката (rollback)

  • Просмотр дерева ресурсов, управляемых ресурсов и diff

  • Потоковая передача логов подов с выбором контейнера

  • Вход через SSO по протоколу OIDC/Dex (GitHub, LDAP, SAML и др.) с использованием PKCE — пароли не сохраняются

  • Вход по имени пользователя и паролю в качестве резервного варианта

Поддержка SSO

Приложение выполняет прямой OIDC PKCE-поток напрямую со встроенным Dex вашего ArgoCD или с внешним OIDC-провайдером.

Dex: регистрация URI перенаправления для мобильного приложения

ArgoCD жёстко прописывает статический клиент Dex argo-cd-cli в файле util/dex/config.go, допуская только http://localhost и http://localhost:8085/auth/callback в качестве URI перенаправления. Этот список regenerirуется при каждом перезапуске Dex и не может быть переопределён через argocd-cm. URI приложения argocd://auth/callback необходимо внедрить уже после генерации.

Патч деплоймента

Этот подход оборачивает команду контейнера Dex фоновым процессом, который повторно внедряет URI перенаправления каждый раз, когда ArgoCD заново генерирует конфигурацию Dex:

kubectl patch deployment argocd-dex-server -n <argocd-namespace> --type=strategic -p '{
  "spec": {
    "template": {
      "spec": {
        "containers": [{
          "name": "dex",
          "command": [
            "/bin/sh",
            "-c",
            "(LAST=\"\"; while true; do M=$(stat -c %Y /tmp/dex.yaml 2>/dev/null); if [ \"$M\" != \"$LAST\" ]; then LAST=$M; grep -q \"argocd://auth/callback\" /tmp/dex.yaml 2>/dev/null || sed -i \"s|  - http://localhost:8085/auth/callback|  - http://localhost:8085/auth/callback\\n  - argocd://auth/callback|\" /tmp/dex.yaml; fi; sleep 0.2; done) & exec /shared/argocd-dex rundex"
          ]
        }]
      }
    }
  }
}'

exec обеспечивает запуск argocd-dex rundex с PID 1, благодаря чему процесс корректно получает сигналы Kubernetes. Патчер работает в фоне и успевает раньше Dex при старте, поскольку отслеживает изменение файла и реагирует менее чем за 200 мс.

Внешний OIDC-провайдер

Если вы используете внешний OIDC-провайдер (настроенный через oidcConfig в argocd-cm), добавьте argocd://auth/callback в список разрешённых URI перенаправления в настройках приложения этого провайдера и задайте cliClientID в argocd-cm.

Разработка

yarn install
npx expo start

Требуется Expo Go или сборка для разработки на iOS или Android.

© 2026 meganuke