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 the data-gitlab-vue3-app marker. 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/show pulls a large security_dashboard tree. 74% of its components already run under Vue 3, because the pipeline security tabs cover that tree under vue3_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/dashboard shares nothing with any migrated entrypoint. All 18 of its components are new ground.

Tasks / MRs

  • MR 1: add the vue3_migrate_cluster_agents flag definition and one vue3_migration.yml per 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: migrated and remove the flag.

Rollout

enable for gitlab-org (dogfood)
→ 10% → 50% → 100%, with a soak between steps
→ default_enabled: true → cleanup MR

Notes

  • 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.