Vue 3 migration: cluster agent pages
Part of &23285.
These two pages show Kubernetes agent information. They go under one flag.
Entrypoints & apps
| Entrypoint | Vue apps mounted | Page-specific components |
|---|---|---|
app/assets/javascripts/pages/projects/cluster_agents/show/index.js |
Mounted through loadClusterAgentVues from ~/clusters/agents, which uses initVueApp (app/assets/javascripts/clusters/agents/index.js:25) |
77: 48 in security_dashboard/components, 10 in clusters/agents, 8 in workspaces/common |
app/assets/javascripts/pages/clusters/agents/dashboard/index.js |
Mounted through initKubernetesDashboard, which uses initVueApp (line 36) |
18: 9 in kubernetes_dashboard/pages, 8 in kubernetes_dashboard/components |
Risks
- Both apps mount with
initVueApp, so their root elements carry thedata-gitlab-vue3-appmarker. A silent fallback to Vue 2 is therefore detectable. - The two pages share almost no components. They are grouped only because both show Kubernetes agent information. If one proves unstable, split the flag rather than holding the other back.
cluster_agents/showpulls a largesecurity_dashboardtree. 74% of its components already run under Vue 3, because the pipeline security tabs cover that tree undervue3_migrate_pipelines. Only about 20 of its 77 components are new ground. Check the vulnerability and security panels, not only the agent detail header.clusters/agents/dashboardshares nothing with any migrated entrypoint. All 18 of its components are new ground.
Tasks / MRs
- MR 1: add the
vue3_migrate_cluster_agentsflag definition and onevue3_migration.ymlper entrypoint. - Render the cluster agent show page with the flag on. Check the vulnerability and security panels.
- Render the agents dashboard with the flag on.
- Write a Sentry query for this flag before ramping.
- Ramp the flag as shown below.
- Cleanup MR: move both ymls to
status: migratedand remove the flag.
Rollout
enable for gitlab-org (dogfood)
→ 10% → 50% → 100%, with a soak between steps
→ default_enabled: true → cleanup MRNotes
- Restart the Vite dev server after you add a
vue3_migration.yml. Otherwise the entry map stays stale, the apps never mount, and no console error appears. - Local GDK runs Vue 2. Stub the flag off to check rendering in feature specs.