A comprehensive admin dashboard and platform for managing Gen3 deployments across multiple Kubernetes clusters with enterprise-scale infrastructure management capabilities.
The Gen3 CSOC Dashboard is a centralized platform designed to facilitate the management of multiple Gen3 deployments and Kubernetes clusters. Built with scalability and enterprise requirements in mind, it provides system administrators and operators with a comprehensive set of tools to deploy, monitor, and manage their Gen3 ecosystems effectively across cloud-native environments.
The platform follows a distributed agent/server architecture enabling centralized management of multiple Kubernetes clusters:
- Central Server: Go-based API server with REST endpoints and gRPC communication
- Gen3 Agents: Deployed to each target Kubernetes cluster, acting as secure proxies
- Frontend Dashboard: Next.js application providing unified management interface
- External Integrations: KeyCloak for authentication, Grafana for monitoring
Frontend
- Next.js with Pages Router
- Mantine UI component library
- REST API communication with backend
Backend
- Go API using Gin framework
- gRPC with mTLS for secure agent communication
- Kubernetes API integration based on current context
- Certificate-based authentication for agents
Infrastructure
- Kubernetes-native deployment model
- Helm charts for application management
- ArgoCD for GitOps workflows
- Multi-cloud support (AWS, Google Cloud, Azure)
- Multi-Environment Support: Manage production, development, and testing environments from a single interface
- Helm-Based Deployment: Leverage Helm charts for consistent Gen3 component deployment
- Deployment Wizard: Guided setup process for new Gen3 installations
- Configuration Management: Centralized configuration for services, load balancers, and system components
- Multi-Cluster Support: Manage multiple Kubernetes clusters from one dashboard
- Resource Monitoring: Real-time visibility into pods, services, deployments, and ConfigMaps
- Cluster Health: Monitor node health, resource usage, and system metrics
- RBAC Integration: Kubernetes Role-Based Access Control integration
- Custom Resource Management: Support for Gen3-specific Kubernetes resources
- Helm Support: Native Helm chart management and deployment
- ArgoCD Integration: GitOps workflow implementation for declarative deployments
- Deployment Lifecycle: Complete application lifecycle management
- Version Control: Git-based configuration management
- Automated Synchronization: Continuous deployment with ArgoCD
- Multi-Cloud Support:
- AWS: EKS integration
- Google Cloud: GKE support
- Microsoft Azure: AKS support
- Infrastructure Provisioning: Automated cloud infrastructure deployment
- Network Configuration: Load balancer and networking setup
- Storage Management: Persistent volume and database configuration
- BYOI (Bring Your Own Infrastructure): Support for existing infrastructure
- Grafana Integration: Built-in monitoring dashboard setup and configuration
- Application Monitoring: Gen3 service health and performance metrics
- Database Monitoring: Database performance and connectivity monitoring
- OpenTelemetry: Distributed tracing and profiling capabilities
- Custom Metrics: Gen3-specific monitoring and alerting
- KeyCloak Integration: Enterprise authentication and authorization
- RBAC: Role-based access control for the CSOC portal
- Certificate Management: Automated TLS certificate provisioning
- Secure Agent Communication: mTLS encrypted communication between server and agents
- Multi-Tenant Security: Isolated environments for different teams/projects
- Cloud Inventory: Multi-cloud resource inventory and tracking
- Cost Analysis: Cloud spending overview and optimization recommendations
- Resource Optimization: Right-sizing recommendations for cloud resources
- Budget Monitoring: Cost alerts and budget management
- Kubernetes cluster with kubectl configured
- Docker (for local development)
- Node.js and npm
- Go 1.19+ (for backend development)
-
Ensure kubectl is configured with access to your target Kubernetes cluster:
kubectl cluster-info
-
Start the API server:
cd api/ export PORT=8002 nodemon --exec go run main.go --signal SIGTERM
-
Start the frontend (in a separate terminal):
cd frontend/ npm install npm run dev -
Access the dashboard at
http://localhost:3000 -
Create Agent Configuration (First-time setup):
If this is the first time you're setting up a dev environment, you need to create the certificates for agent communication.
- Create agent configuration in the UI by browsing to:
http://localhost:3000/clusters - Click "Import existing cluster"
- Give it a name and hit the import button
- This will create the certificates needed for secure agent communication
- Create agent configuration in the UI by browsing to:
-
Start Agent (for development):
Use the cluster name from the previous step:
nodemon --exec go run gen3-agent/agent.go --name <CLUSTER_NAME> --signal SIGTERM
- Keycloak server running at
http://localhost:8080 - Admin credentials for Keycloak Admin Console
- Log in to Admin Console at
http://localhost:8080. - Hover over current realm (e.g., "Master"), click Create realm.
- Name:
csoc-realm. - Click Create.
- In
csoc-realm, go to Clients > Create client. - Client ID:
csoc-client. - Client Protocol:
openid-connect. - Click Next.
- Enable Client authentication, Standard flow, Direct access grants.
- Click Next.
- Set Valid redirect URIs:
http://localhost:3000/*. - Set Web origins:
http://localhost:3000. - Click Save.
- Go to Credentials tab, copy Client secret for your app.
- Go to Realm roles > Create role.
- Role name:
csoc-role. - Click Save.
- Go to Users > Add user.
- Username:
csoc-user. - Email:
john@example.com(optional: First/Last name, enable Email Verified). - Click Save.
- Go to Credentials tab, click Set password.
- Enter password, disable Temporary for permanent password.
- Click Save.
- In Users, select
csoc-user. - Go to Role mapping tab.
- Select
csoc-rolefrom Available roles. - Click Add selected.
- Go to Groups > New.
- Group name:
csoc-group. - Click Save.
- In Users, select
csoc-user. - Go to Groups tab.
- Select
csoc-group, click Join.
- Go to Clients >
csoc-client> Mappers tab. - For Roles:
- Click Create.
- Name:
roles. - Mapper Type:
User Role. - Token Claim Name:
roles. - Claim JSON Type:
String(orArray). - Enable Add to ID token, Add to access token, Add to userinfo.
- Enable Multivalued.
- Click Save.
- For Groups:
- Click Create.
- Name:
groups. - Mapper Type:
Group Membership. - Token Claim Name:
groups. - Full group path:
OFF. - Enable Add to ID token, Add to access token, Add to userinfo.
- Click Save.
gen3-csoc/
βββ api/ # Go backend API
β βββ main.go # API server entry point
β βββ handlers/ # REST API handlers
β βββ grpc/ # gRPC server for agent communication
β βββ k8s/ # Kubernetes client integration
βββ frontend/ # Next.js frontend
β βββ pages/ # Page components (Pages Router)
β βββ components/ # Reusable UI components
β βββ lib/ # Utility functions
βββ agents/ # Gen3 agent codebase
β βββ agent.go # Agent implementation
βββ charts/ # Helm charts for deployment
- AWS: Automated EKS deployment with Biocommons CDK
- Google Cloud: GKE setup with integrated tooling
- Azure: AKS deployment (community support)
- Self-hosted Kubernetes clusters (Rancher, K3s, OpenShift)
- Existing cloud environments
- On-premises infrastructure
- TBD
This project is developed by the Platform Engineering (PE) team. For contributions:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
The platform architecture includes:
- CSOC Portal: Central management interface
- Agent Network: Distributed agents for cluster management
- Cloud Integration: Multi-cloud infrastructure support
- Monitoring Stack: Integrated observability platform
For issues, questions, or contributions, please contact the Platform Engineering team or create an issue in the project repository.
Note: This is an active development project. Features and documentation are continuously evolving as the platform matures.

