Cluster
A Cluster in Lapdev refers to a Kubernetes cluster you’ve connected to Lapdev for managing development environments. Clusters can serve two roles:- Source Cluster - Provides production manifests for creating App Catalogs
- Target Cluster - Hosts development environments
Why Connect Clusters
Connecting your Kubernetes cluster to Lapdev enables:- App Catalog Creation - Read production manifests to define your app
- Environment Deployment - Run development environments in the cluster
- Production Parity - Ensure dev environments match production exactly
- Centralized Management - Manage multiple clusters from one dashboard
How It Works
Lapdev Kube Manager
When you connect a cluster, Lapdev deploys a lightweight controller called lapdev-kube-manager inside your cluster. The kube-manager:- Establishes secure connection - Opens a WebSocket tunnel to Lapdev API Server (TLS encrypted)
- Reads production manifests - Discovers Deployments, StatefulSets, ConfigMaps, Secrets, and Services
- Creates dev environments - Replicates selected workloads into isolated or shared namespaces
- Handles traffic routing - For branch environments, routes traffic to the correct version of services
- Manages synchronization - Keeps environments updated with production changes
- Connection is outbound-only from your cluster (no inbound firewall rules needed)
- Lapdev API Server never accesses your cluster’s API server directly
- Kube-manager has read access to production namespaces
- Kube-manager has full access to Lapdev-managed namespaces only
- Cannot access other cluster resources or namespaces
Token-Based Authentication
Each cluster is authenticated using a unique token:- Generated when you create the cluster in Lapdev dashboard
- Used by kube-manager to establish the secure tunnel
- Stored as a Kubernetes Secret in your cluster
Cluster Roles
Source Cluster
A source cluster is where Lapdev reads production manifests to create App Catalogs.- Typically your staging or production cluster
- Contains the workloads you want to replicate in dev environments
- Kube-manager reads manifests but doesn’t modify them
- You can designate any cluster as a source
- Use production cluster as source (safest, always up-to-date)
- Use staging cluster as source (if staging mirrors production)
- Use dedicated “template” cluster (for controlled rollout)
Target Cluster
A target cluster is where Lapdev deploys development environments.- Can be the same as your source cluster or different
- Hosts all Personal, Shared, and Branch environments
- Kube-manager creates and manages namespaces here
- Choose based on resource availability and cost
- Same cluster as source (simplest, most common)
- Dedicated dev cluster (isolates dev from production)
- Multiple dev clusters (for different teams or regions)
Cluster Permissions
Cluster permissions control which types of environments can be deployed to a cluster.Personal Environments Permission
When enabled, developers can create Personal Environments in this cluster.- Each developer gets fully isolated namespaces
- Higher resource usage (every dev runs complete app)
- Best for: staging/dev clusters with sufficient resources
- Developers need full isolation for testing
- Cluster has resources for multiple complete environments
- You want individual developers to experiment freely
Shared Environments Permission
When enabled, admins can create Shared Environments and developers can create Branch Environments in this cluster.- Shared environments are team-wide baselines
- Branch environments are lightweight personal modifications
- Lower resource usage (shared baseline + modifications only)
- Best for: cost-efficient development at scale
- Team uses branch environment workflow
- You want cost-efficient development environments
- Multiple developers work on the same application
Permission Use Cases
| Cluster Type | Personal | Shared | Use Case |
|---|---|---|---|
| Dev Cluster | ✅ | ✅ | Full flexibility for developers |
| Staging Cluster | ❌ | ✅ | Team-wide testing baseline only |
| Testing Cluster | ✅ | ❌ | Isolated testing environments |
| Production | ❌ | ❌ | Source only, no dev environments |
You can change these permissions at any time in the cluster settings.
Relationship to Other Components
Clusters are foundational to Lapdev’s workflow:| Component | Role with Clusters |
|---|---|
| Cluster | Provides infrastructure and manifests |
| App Catalog | Created by reading manifests from source cluster |
| Environment | Deployed into target cluster using App Catalog |
| Kube Manager | Runs inside cluster, bridges to Lapdev API |
Multiple Clusters
You can connect multiple clusters to Lapdev for different purposes: Common multi-cluster setups:-
Source + Multiple Targets:
- Production cluster (source only)
- Dev cluster A (target for team A)
- Dev cluster B (target for team B)
-
Regional Separation:
- US cluster (source + target)
- EU cluster (target only, for EU developers)
-
Environment Segregation:
- Staging cluster (source + shared environments)
- Dev cluster (personal environments only)