import Link from 'next/link'; import { Package, Server, Users, CheckCircle, Clock, SkipForward } from 'lucide-react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { listClusters } from '@/lib/actions/clusters'; import { listCustomers, listCustomersByCluster } from '@/lib/actions/customers'; import { getActiveReleases, getReleaseStats } from '@/lib/actions/releases'; export default async function DashboardPage() { const [clusters, customersList, activeReleases, stats] = await Promise.all([ listClusters(), listCustomers(), getActiveReleases(), getReleaseStats(), ]); // Get customer counts per cluster const clustersWithCount = await Promise.all( clusters.map(async (cluster) => { const customers = await listCustomersByCluster(cluster.id); return { ...cluster, customerCount: customers.length, }; }) ); return (
Overview of your release orchestration system
of {stats.totalReleases} total
awaiting completion
successfully done
across {clusters.length} clusters
No active releases.
{release.versionNumber}
)}No clusters configured.
Start a new deployment cycle
Register a new K8s cluster
Onboard a new customer