Lima in Cloud-Native Engineering
Category: virtualization
Status: Incubating
Stars: 7,100
Last Updated: 2026-04-22
Primary Language: Go
Documentation: https://lima-vm.io/
Purpose and Use Cases
What Problem Does It Solve?
Lima addresses the challenge of running Linux virtual machines seamlessly on non-Linux operating systems, particularly macOS and Windows. It provides a Linux environment that feels native, enabling developers to run Linux-only tools, containers, and applications without the overhead of traditional VMs or the complexity of WSL2 on Windows.
When to Use This Project
Use Lima when you need:
- A Linux VM for development on macOS or Windows
- Full Linux compatibility without WSL2 limitations
- Container runtime capabilities (Docker, containerd)
- SSH access to a Linux environment
- ARM64 or AMD64 architecture flexibility
- Integration with your existing development workflow
Key Use Cases
- macOS Development: Run Linux tools, build Linux binaries, test on Linux without switching machines
- Windows Development: Alternative to WSL2 with more Linux compatibility
- Container Development: Run Docker, containerd, and build containers on any OS
- ARM64 Development: Test ARM64 applications on x86_64 hardware
- CI/CD: Create reproducible Linux environments for testing
- Legacy Application Support: Run legacy Linux software that requires specific kernel versions
Architecture Design Patterns
Core Components
- Lima VM: Minimal Linux VM based on Alpine or Ubuntu
- Virtio-FS: High-performance filesystem sharing between host and guest
- SSH Forwarding: Seamless SSH access with automatic port forwarding
- Containerd Integration: Runs containerd for container orchestration
- QEMU Backend: Virtualization with optional QEMU acceleration
- VMNet/SLIRP: Network configuration for host-guest communication
- Proot: User-space process isolation for non-root operations
- Guest Agent: Host-guest communication for state synchronization
Component Interactions
- User → CLI: Commands like
limactl create and manage VMs
- CLI → QEMU: Launches VM with configured parameters
- QEMU → Host OS: Uses virtualization APIs (Hypervisor.framework, Hyper-V)
- Host → virtio-FS: Filesystem sharing via virtio-fs protocol
- Guest → containerd: Container runtime for pod/container management
- Guest → SSH: SSH server for remote access and port forwarding
- Guest Agent → Host: Status updates and configuration synchronization
Data Flow Patterns
- VM Creation: YAML config → validation → VM provisioning → SSH access
- File Access: Host filesystem → virtio-fs → guest mount point
- Container Operations: User CLI → containerd → OCI runtime → containers
- Network Setup: VMNet/SLIRP → port forwarding → guest services
- State Synchronization: Guest agent → host → UI and CLI updates
Design Principles
- Minimal Footprint: Small base images for fast startup
- User-Friendly: No sudo required for common operations
- Cross-Platform: macOS and Windows support
- Container-Native: Kubernetes-compatible container runtime
- Configuration-Driven: YAML-based VM configuration
- Extensible: Support for custom VM images and configurations
- Resource-Efficient: Smart resource allocation and cleanup
Integration Approaches
Integration with Other CNCF Projects
- Kubernetes: Run minikube, k3s, or k0s inside Lima VMs
- containerd: Native container runtime for pod management
- Docker: Docker CLI integration via Docker-in-Lima or buildkit
- Kustomize/Kustomize: Kubernetes configuration management
- Helm: Package and deploy Kubernetes applications
- Tekton: CI/CD pipeline execution in Linux environment
- Prometheus: Metrics collection from container workloads
API Patterns
- CLI Commands:
limactl start, limactl stop, limactl shell
- SSH Access: Seamless SSH with automatic configuration
- Filesystem Mounting: Automatic virtio-fs mount points
- Network Port Forwarding: Host ↔ Guest port forwarding
- Status API: VM state and resource usage information
Configuration Patterns
- YAML Configuration: Declarative VM definition with profiles
- Environment Variables: Overrides for configuration values
- Templates: Reusable VM configurations
- Profiles: Multiple VM configurations for different purposes
Extension Mechanisms
- Custom VM Images: Support for any Linux distribution
- Template Files: Create reusable configurations
- Post-Start Scripts: Execute custom setup after VM startup
- Mount Points: Configure additional filesystem mounts
- Environment Variables: Pass environment to VM
Common Pitfalls and How to Avoid Them
Configuration Issues
- Invalid YAML: Always validate configuration with
limactl validate
- Resource Overcommitment: Don't allocate more CPU/memory than available
- Path Conflicts: Avoid mounting host paths that conflict with guest paths
- Network Conflicts: Check for port conflicts when forwarding multiple ports
- Insufficient Disk Space: Ensure host has adequate free space for VM images
Performance Issues
- Slow File I/O: Use virtio-fs with proper mount options for shared directories
- Network Latency: Configure SLIRP with cached DNS for better performance
- Large VM Images: Clean up unused images and snapshots regularly
- Memory Pressure: Monitor and adjust memory allocation based on workload
- CPU Throttling: Balance CPU allocation between host and guest
Operational Challenges
- VM Not Starting: Check QEMU/Hypervisor installation and permissions
- SSH Connection Issues: Verify SSH key configuration and VM state
- Filesystem Mount Failures: Ensure host directory exists and has correct permissions
- Container Runtime Issues: Check containerd logs and resource availability
- Network Isolation: Understand network isolation between host and guest
Security Pitfalls
- Untrusted VM Images: Only use verified, trusted Linux images
- Port Exposure: Don't expose container ports unnecessarily to the host
- Filesystem Access: Limit shared directories to minimum required paths
- Root Access: Avoid running containers as root inside the VM
- Secret Management: Don't store secrets in VM configuration files
Coding Practices
Idiomatic Configuration
- Profile Definitions: Create profiles for different use cases (dev, test, ci)
- Environment-Specific Settings: Use YAML anchors for common configurations
- Secret Handling: Use environment variables for sensitive data
- Version Control: Track VM configurations in version control
API Usage Patterns
- VM Lifecycle Management: Start, stop, pause, resume VMs programmatically
- Container Operations: Use containerd or Docker CLI for container management
- File Operations: Use SSH for file transfer and manipulation
- Status Monitoring: Regular polling for VM state and resource usage
Observability Best Practices
- VM Logs: Monitor Lima logs for VM lifecycle events
- Container Logs: Access container logs via SSH or containerd API
- Resource Metrics: Track CPU, memory, and disk usage
- Health Checks: Implement automated health checks for long-running VMs
Development Workflow
- Local Development: Lima + Docker Desktop integration for container workloads
- Testing: Run integration tests in Lima VMs mirroring production
- CI/CD: Use Lima for reproducible Linux build environments
- Debugging: SSH access for inspection and troubleshooting
Fundamentals
Essential Concepts
- VM Instance: Isolated Linux environment running on host
- Container Runtime: containerd or Docker daemon inside VM
- Filesystem Sharing: virtio-fs for host-guest file access
- SSH Tunneling: Secure communication between host and guest
- Port Forwarding: Network connectivity between host and guest services
- VM Profile: Reusable configuration template for VMs
- Guest Agent: Background process for host-guest communication
Terminology Glossary
- Lima: The project name, inspired by "Linux VM on macOS/Windows"
- VM Instance: A running Linux virtual machine
- Profile: Named configuration for VM creation
- Mount: Shared directory between host and guest filesystems
- Port Forward: Network connection between host and guest ports
- SSH Socket: Unix socket for SSH connections to VM
- Guest Agent: Process running in VM for host communication
- Containerd: Container runtime inside Lima VM
- QEMU: Virtualization backend (optional acceleration)
Data Models and Types
- VM Configuration: YAML structure defining VM properties
- Mount: Source path, destination path, access mode
- Port Forward: Host port, guest port, protocol (TCP/UDP)
- Environment: Key-value pairs passed to VM
- Network: VMNet (macOS) or SLIRP (cross-platform) configuration
Lifecycle Management
- VM Creation: limactl start → VM provisioning → SSH access ready
- VM Running: Service availability → container operations → resource usage
- VM Stop: Graceful shutdown → resource cleanup → state preservation
- VM Delete: Full cleanup → image removal → configuration cleanup
State Management
- VM State: Running, stopped, pausing, paused
- Container State: Running, stopped, restarting, exited
- Filesystem State: Mount point availability and access
- Network State: Port forwarding rules and connectivity
- Resource State: CPU, memory, disk usage tracking
Scaling and Deployment Patterns
Horizontal Scaling
- Multiple VM Instances: Run multiple Lima VMs for isolation
- Container Distribution: Distribute containers across multiple VMs
- Load Balancing: Use host or guest load balancers for traffic distribution
- Shared Storage: Use NFS or cloud storage for shared data across VMs
High Availability
- VM Redundancy: Multiple VMs for critical services
- Snapshot Management: Regular snapshots for quick recovery
- Automated Restart: Configure automatic VM restart on failure
- Health Monitoring: External monitoring for VM availability
Production Deployments
- macOS Deployment: Lima for macOS developers and CI runners
- Windows Deployment: Lima with WSL2 backend for Windows users
- Docker Desktop Integration: Combine Lima with Docker Desktop for seamless workflow
- CI/CD Integration: Automated Lima VM provisioning for build environments
Upgrade Strategies
- Image Updates: Download and apply updated Linux images
- Configuration Migration: Apply new configuration patterns gradually
- VM Migration: Migrate containers between VM versions
- Rolling Updates: Update VMs one at a time for availability
Resource Management
- CPU Allocation: Configure CPU cores based on workload requirements
- Memory Limits: Set memory limits to prevent host resource exhaustion
- Disk Quotas: Limit VM disk usage to prevent storage exhaustion
- Network Bandwidth: Configure network limits for shared connections
Additional Resources
Troubleshooting
Common Issues
Deployment Failures
- Check pod logs for errors
- Verify configuration values
- Ensure network connectivity
Performance Issues
- Monitor resource usage
- Adjust resource limits
- Check for bottlenecks
Configuration Errors
- Validate YAML syntax
- Check required fields
- Verify environment-specific settings
Integration Problems
- Verify API compatibility
- Check dependency versions
- Review integration documentation
Getting Help
- Check official documentation
- Search GitHub issues
- Join community channels
- Review logs and metrics
Content generated automatically. Verify against official documentation before production use.
Examples
Basic Configuration
# Basic configuration example
apiVersion: v1
kind: ConfigMap
metadata:
name: {{project_name}}-config
namespace: default
data:
# Configuration goes here
config.yaml: |
# Base configuration
# Add your settings here
Kubernetes Deployment
# Kubernetes deployment for {{project_name}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{project_name}}
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: {{project_name}}
template:
metadata:
labels:
app: {{project_name}}
spec:
containers:
- name: {{project_name}}
image: {{project_name}}:latest
ports:
- containerPort: 8080
resources:
limits:
memory: "128Mi"
cpu: "500m"
Kubernetes Service
# Kubernetes service for {{project_name}}
apiVersion: v1
kind: Service
metadata:
name: {{project_name}}
namespace: default
spec:
selector:
app: {{project_name}}
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIP
When to Use
Use this skill when:
- Integrating a CNCF project into Kubernetes infrastructure — You need to configure, deploy, or troubleshoot a cloud-native tool within a cluster
- Designing cloud-native architecture — You are selecting and integrating CNCF tools to solve specific infrastructure challenges
- Resolving operational issues — A CNCF component is misbehaving, underperforming, or needs configuration changes
Core Workflow
Assess Requirements — Understand the use case, scale, integration needs, and existing infrastructure. Checkpoint: Document requirements, constraints, and success criteria.
Design Architecture — Plan component interactions, data flow, and deployment strategy using cloud-native best practices. Checkpoint: Verify the architecture addresses all requirements and follows CNCF conventions.
Implement & Configure — Create manifests, configurations, and deployment scripts. Include resource limits, health checks, and observability hooks. Checkpoint: Validate all YAML against schema and test in a staging environment.
Deploy & Monitor — Apply manifests to the cluster, verify component health, and confirm observability is working. Checkpoint: Confirm all pods/services are running, probes passing, and metrics/alerts configured.
Constraints
MUST DO
- Include at least one complete working YAML manifest example
- Note when content is auto-generated vs. manually verified
- Reference relevant CNCF project documentation
MUST NOT DO
- Deploy manifests without testing in a staging environment first
- Use deprecated API versions (e.g., apps/v1beta1)
- Omit resource limits and requests in Kubernetes manifests
1---2name: lima3description: "Lima in Container Runtime - cloud native architecture, patterns, pitfalls" and best practices4license: MIT5---678910# Lima in Cloud-Native Engineering1112**Category:** virtualization 13**Status:** Incubating 14**Stars:** 7,100 15**Last Updated:** 2026-04-22 16**Primary Language:** Go 17**Documentation:** [https://lima-vm.io/](https://lima-vm.io/) 1819---2021## Purpose and Use Cases2223### What Problem Does It Solve?2425Lima addresses the challenge of running Linux virtual machines seamlessly on non-Linux operating systems, particularly macOS and Windows. It provides a Linux environment that feels native, enabling developers to run Linux-only tools, containers, and applications without the overhead of traditional VMs or the complexity of WSL2 on Windows.2627### When to Use This Project2829Use Lima when you need:30- A Linux VM for development on macOS or Windows31- Full Linux compatibility without WSL2 limitations32- Container runtime capabilities (Docker, containerd)33- SSH access to a Linux environment34- ARM64 or AMD64 architecture flexibility35- Integration with your existing development workflow3637### Key Use Cases3839- **macOS Development**: Run Linux tools, build Linux binaries, test on Linux without switching machines40- **Windows Development**: Alternative to WSL2 with more Linux compatibility41- **Container Development**: Run Docker, containerd, and build containers on any OS42- **ARM64 Development**: Test ARM64 applications on x86_64 hardware43- **CI/CD**: Create reproducible Linux environments for testing44- **Legacy Application Support**: Run legacy Linux software that requires specific kernel versions4546---4748## Architecture Design Patterns4950### Core Components5152- **Lima VM**: Minimal Linux VM based on Alpine or Ubuntu53- **Virtio-FS**: High-performance filesystem sharing between host and guest54- **SSH Forwarding**: Seamless SSH access with automatic port forwarding55- **Containerd Integration**: Runs containerd for container orchestration56- **QEMU Backend**: Virtualization with optional QEMU acceleration57- **VMNet/SLIRP**: Network configuration for host-guest communication58- **Proot**: User-space process isolation for non-root operations59- **Guest Agent**: Host-guest communication for state synchronization6061### Component Interactions62631. **User → CLI**: Commands like `limactl` create and manage VMs642. **CLI → QEMU**: Launches VM with configured parameters653. **QEMU → Host OS**: Uses virtualization APIs (Hypervisor.framework, Hyper-V)664. **Host → virtio-FS**: Filesystem sharing via virtio-fs protocol675. **Guest → containerd**: Container runtime for pod/container management686. **Guest → SSH**: SSH server for remote access and port forwarding697. **Guest Agent → Host**: Status updates and configuration synchronization7071### Data Flow Patterns72731. **VM Creation**: YAML config → validation → VM provisioning → SSH access742. **File Access**: Host filesystem → virtio-fs → guest mount point753. **Container Operations**: User CLI → containerd → OCI runtime → containers764. **Network Setup**: VMNet/SLIRP → port forwarding → guest services775. **State Synchronization**: Guest agent → host → UI and CLI updates7879### Design Principles8081- **Minimal Footprint**: Small base images for fast startup82- **User-Friendly**: No sudo required for common operations83- **Cross-Platform**: macOS and Windows support84- **Container-Native**: Kubernetes-compatible container runtime85- **Configuration-Driven**: YAML-based VM configuration86- **Extensible**: Support for custom VM images and configurations87- **Resource-Efficient**: Smart resource allocation and cleanup8889---9091## Integration Approaches9293### Integration with Other CNCF Projects9495- **Kubernetes**: Run minikube, k3s, or k0s inside Lima VMs96- **containerd**: Native container runtime for pod management97- **Docker**: Docker CLI integration via Docker-in-Lima or buildkit98- **Kustomize/Kustomize**: Kubernetes configuration management99- **Helm**: Package and deploy Kubernetes applications100- **Tekton**: CI/CD pipeline execution in Linux environment101- **Prometheus**: Metrics collection from container workloads102103### API Patterns104105- **CLI Commands**: `limactl start`, `limactl stop`, `limactl shell`106- **SSH Access**: Seamless SSH with automatic configuration107- **Filesystem Mounting**: Automatic virtio-fs mount points108- **Network Port Forwarding**: Host ↔ Guest port forwarding109- **Status API**: VM state and resource usage information110111### Configuration Patterns112113- **YAML Configuration**: Declarative VM definition with profiles114- **Environment Variables**: Overrides for configuration values115- **Templates**: Reusable VM configurations116- **Profiles**: Multiple VM configurations for different purposes117118### Extension Mechanisms119120- **Custom VM Images**: Support for any Linux distribution121- **Template Files**: Create reusable configurations122- **Post-Start Scripts**: Execute custom setup after VM startup123- **Mount Points**: Configure additional filesystem mounts124- **Environment Variables**: Pass environment to VM125126---127128## Common Pitfalls and How to Avoid Them129130### Configuration Issues131132- **Invalid YAML**: Always validate configuration with `limactl validate`133- **Resource Overcommitment**: Don't allocate more CPU/memory than available134- **Path Conflicts**: Avoid mounting host paths that conflict with guest paths135- **Network Conflicts**: Check for port conflicts when forwarding multiple ports136- **Insufficient Disk Space**: Ensure host has adequate free space for VM images137138### Performance Issues139140- **Slow File I/O**: Use virtio-fs with proper mount options for shared directories141- **Network Latency**: Configure SLIRP with cached DNS for better performance142- **Large VM Images**: Clean up unused images and snapshots regularly143- **Memory Pressure**: Monitor and adjust memory allocation based on workload144- **CPU Throttling**: Balance CPU allocation between host and guest145146### Operational Challenges147148- **VM Not Starting**: Check QEMU/Hypervisor installation and permissions149- **SSH Connection Issues**: Verify SSH key configuration and VM state150- **Filesystem Mount Failures**: Ensure host directory exists and has correct permissions151- **Container Runtime Issues**: Check containerd logs and resource availability152- **Network Isolation**: Understand network isolation between host and guest153154### Security Pitfalls155156- **Untrusted VM Images**: Only use verified, trusted Linux images157- **Port Exposure**: Don't expose container ports unnecessarily to the host158- **Filesystem Access**: Limit shared directories to minimum required paths159- **Root Access**: Avoid running containers as root inside the VM160- **Secret Management**: Don't store secrets in VM configuration files161162---163164## Coding Practices165166### Idiomatic Configuration167168- **Profile Definitions**: Create profiles for different use cases (dev, test, ci)169- **Environment-Specific Settings**: Use YAML anchors for common configurations170- **Secret Handling**: Use environment variables for sensitive data171- **Version Control**: Track VM configurations in version control172173### API Usage Patterns174175- **VM Lifecycle Management**: Start, stop, pause, resume VMs programmatically176- **Container Operations**: Use containerd or Docker CLI for container management177- **File Operations**: Use SSH for file transfer and manipulation178- **Status Monitoring**: Regular polling for VM state and resource usage179180### Observability Best Practices181182- **VM Logs**: Monitor Lima logs for VM lifecycle events183- **Container Logs**: Access container logs via SSH or containerd API184- **Resource Metrics**: Track CPU, memory, and disk usage185- **Health Checks**: Implement automated health checks for long-running VMs186187### Development Workflow188189- **Local Development**: Lima + Docker Desktop integration for container workloads190- **Testing**: Run integration tests in Lima VMs mirroring production191- **CI/CD**: Use Lima for reproducible Linux build environments192- **Debugging**: SSH access for inspection and troubleshooting193194---195196## Fundamentals197198### Essential Concepts199200- **VM Instance**: Isolated Linux environment running on host201- **Container Runtime**: containerd or Docker daemon inside VM202- **Filesystem Sharing**: virtio-fs for host-guest file access203- **SSH Tunneling**: Secure communication between host and guest204- **Port Forwarding**: Network connectivity between host and guest services205- **VM Profile**: Reusable configuration template for VMs206- **Guest Agent**: Background process for host-guest communication207208### Terminology Glossary209210- **Lima**: The project name, inspired by "Linux VM on macOS/Windows"211- **VM Instance**: A running Linux virtual machine212- **Profile**: Named configuration for VM creation213- **Mount**: Shared directory between host and guest filesystems214- **Port Forward**: Network connection between host and guest ports215- **SSH Socket**: Unix socket for SSH connections to VM216- **Guest Agent**: Process running in VM for host communication217- **Containerd**: Container runtime inside Lima VM218- **QEMU**: Virtualization backend (optional acceleration)219220### Data Models and Types221222- **VM Configuration**: YAML structure defining VM properties223- **Mount**: Source path, destination path, access mode224- **Port Forward**: Host port, guest port, protocol (TCP/UDP)225- **Environment**: Key-value pairs passed to VM226- **Network**: VMNet (macOS) or SLIRP (cross-platform) configuration227228### Lifecycle Management229230- **VM Creation**: limactl start → VM provisioning → SSH access ready231- **VM Running**: Service availability → container operations → resource usage232- **VM Stop**: Graceful shutdown → resource cleanup → state preservation233- **VM Delete**: Full cleanup → image removal → configuration cleanup234235### State Management236237- **VM State**: Running, stopped, pausing, paused238- **Container State**: Running, stopped, restarting, exited239- **Filesystem State**: Mount point availability and access240- **Network State**: Port forwarding rules and connectivity241- **Resource State**: CPU, memory, disk usage tracking242243---244245## Scaling and Deployment Patterns246247### Horizontal Scaling248249- **Multiple VM Instances**: Run multiple Lima VMs for isolation250- **Container Distribution**: Distribute containers across multiple VMs251- **Load Balancing**: Use host or guest load balancers for traffic distribution252- **Shared Storage**: Use NFS or cloud storage for shared data across VMs253254### High Availability255256- **VM Redundancy**: Multiple VMs for critical services257- **Snapshot Management**: Regular snapshots for quick recovery258- **Automated Restart**: Configure automatic VM restart on failure259- **Health Monitoring**: External monitoring for VM availability260261### Production Deployments262263- **macOS Deployment**: Lima for macOS developers and CI runners264- **Windows Deployment**: Lima with WSL2 backend for Windows users265- **Docker Desktop Integration**: Combine Lima with Docker Desktop for seamless workflow266- **CI/CD Integration**: Automated Lima VM provisioning for build environments267268### Upgrade Strategies269270- **Image Updates**: Download and apply updated Linux images271- **Configuration Migration**: Apply new configuration patterns gradually272- **VM Migration**: Migrate containers between VM versions273- **Rolling Updates**: Update VMs one at a time for availability274275### Resource Management276277- **CPU Allocation**: Configure CPU cores based on workload requirements278- **Memory Limits**: Set memory limits to prevent host resource exhaustion279- **Disk Quotas**: Limit VM disk usage to prevent storage exhaustion280- **Network Bandwidth**: Configure network limits for shared connections281282---283284## Additional Resources285286- **Official Documentation:** [https://lima-vm.io/docs/](https://lima-vm.io/docs/)287- **GitHub Repository:** [github.com/lima-vm/lima](https://github.com/lima-vm/lima)288- **CNCF Project Page:** [cncf.io/projects/lima/](https://www.cncf.io/projects/lima/)289- **Community:** Check the GitHub repository for community channels290- **Versioning:** Refer to project's release notes for version-specific features291292---293294## Troubleshooting295296### Common Issues2972981. **Deployment Failures**299 - Check pod logs for errors300 - Verify configuration values301 - Ensure network connectivity3023032. **Performance Issues**304 - Monitor resource usage305 - Adjust resource limits306 - Check for bottlenecks3073083. **Configuration Errors**309 - Validate YAML syntax310 - Check required fields311 - Verify environment-specific settings3123134. **Integration Problems**314 - Verify API compatibility315 - Check dependency versions316 - Review integration documentation317318### Getting Help319320- Check official documentation321- Search GitHub issues322- Join community channels323- Review logs and metrics324*Content generated automatically. Verify against official documentation before production use.*325326## Examples327328### Basic Configuration329330331```yaml332# Basic configuration example333apiVersion: v1334kind: ConfigMap335metadata:336 name: {{project_name}}-config337 namespace: default338data:339 # Configuration goes here340 config.yaml: |341 # Base configuration342 # Add your settings here343```344345### Kubernetes Deployment346347348```yaml349# Kubernetes deployment for {{project_name}}350apiVersion: apps/v1351kind: Deployment352metadata:353 name: {{project_name}}354 namespace: default355spec:356 replicas: 1357 selector:358 matchLabels:359 app: {{project_name}}360 template:361 metadata:362 labels:363 app: {{project_name}}364 spec:365 containers:366 - name: {{project_name}}367 image: {{project_name}}:latest368 ports:369 - containerPort: 8080370 resources:371 limits:372 memory: "128Mi"373 cpu: "500m"374```375376### Kubernetes Service377378379```yaml380# Kubernetes service for {{project_name}}381apiVersion: v1382kind: Service383metadata:384 name: {{project_name}}385 namespace: default386spec:387 selector:388 app: {{project_name}}389 ports:390 - protocol: TCP391 port: 80392 targetPort: 8080393 type: ClusterIP394```395396---397398## When to Use399400Use this skill when:401402- **Integrating a CNCF project into Kubernetes infrastructure** — You need to configure, deploy, or troubleshoot a cloud-native tool within a cluster403- **Designing cloud-native architecture** — You are selecting and integrating CNCF tools to solve specific infrastructure challenges404- **Resolving operational issues** — A CNCF component is misbehaving, underperforming, or needs configuration changes405---406407## Core Workflow4084091. **Assess Requirements** — Understand the use case, scale, integration needs, and existing infrastructure. **Checkpoint:** Document requirements, constraints, and success criteria.4104112. **Design Architecture** — Plan component interactions, data flow, and deployment strategy using cloud-native best practices. **Checkpoint:** Verify the architecture addresses all requirements and follows CNCF conventions.4124133. **Implement & Configure** — Create manifests, configurations, and deployment scripts. Include resource limits, health checks, and observability hooks. **Checkpoint:** Validate all YAML against schema and test in a staging environment.4144154. **Deploy & Monitor** — Apply manifests to the cluster, verify component health, and confirm observability is working. **Checkpoint:** Confirm all pods/services are running, probes passing, and metrics/alerts configured.416417---418419## Constraints420421### MUST DO422- Include at least one complete working YAML manifest example423- Note when content is auto-generated vs. manually verified424- Reference relevant CNCF project documentation425426### MUST NOT DO427- Deploy manifests without testing in a staging environment first428- Use deprecated API versions (e.g., apps/v1beta1)429- Omit resource limits and requests in Kubernetes manifests