# Minikube Profile Management Standards
## Rule
Each project MUST use a dedicated minikube profile. Never share a single minikube cluster across unrelated projects.
## Format
```bash
minikube start --profile=<project-name> --cpus=<n> --memory=<n>
```
## Requirements
1. **One profile per project** — isolates namespaces, resources, and addons
2. **Naming convention** — use project name as profile: `--profile=myapp`
3. **Context switching** — use `minikube profile <name>` to switch
4. **Cleanup** — delete unused profiles to free resources
5. **Documentation** — document profile name and config in project README
## Examples
### Good
```bash
# Create project-specific profiles
minikube start --profile=frontend-app --cpus=2 --memory=4096
minikube start --profile=backend-api --cpus=4 --memory=8192
# Switch between projects
minikube profile frontend-app
kubectl get pods # Shows frontend-app context
minikube profile backend-api
kubectl get pods # Shows backend-api context
# List all profiles
minikube profile list
# Clean up when done with a project
minikube delete --profile=old-project
```
### Bad
```bash
# Using default profile for everything
minikube start # Every project shares this cluster
# Deploying multiple unrelated apps to same cluster
kubectl apply -f project-a/
kubectl apply -f project-b/
# Namespace conflicts, resource contention, config bleed
```
## Enforcement
Document the profile name in each project's Makefile or docker-compose.yml. Use `minikube profile list` during onboarding to verify isolation.