Metal3.io in Cloud-Native Engineering
Category: infrastructure
Status: Incubating
Stars: 2,000
Last Updated: 2026-04-22
Primary Language: Go
Documentation: https://metal3.io/
Purpose and Use Cases
What Problem Does It Solve?
Metal3.io bridges the gap between traditional bare metal infrastructure and cloud-native Kubernetes operations. It provides an open-source framework for provisioning and managing bare metal hosts using Kubernetes APIs, eliminating the need for out-of-band infrastructure management tools and enabling infrastructure-as-code practices for physical servers.
When to Use This Project
Use Metal3.io when you need:
- Kubernetes-native bare metal host provisioning
- Infrastructure-as-code for physical servers
- Integration with existing cloud-native tooling
- Automated hardware discovery and validation
- Integration with IPMI, Redfish, or other out-of-band management
- Consistent management of on-prem and cloud infrastructure
Key Use Cases
- On-Prem Kubernetes: Deploy Kubernetes clusters on bare metal infrastructure
- Edge Computing: Provision and manage edge servers consistently
- Hybrid Cloud: Unify management of cloud and on-prem resources
- CI/CD for Infrastructure: Use GitOps for infrastructure provisioning
- Disaster Recovery: Rapid infrastructure re-provisioning
- Multi-Cluster Management: Manage multiple bare metal clusters
Architecture Design Patterns
Core Components
- Bare Metal Host: Kubernetes CRD representing physical server
- Provisioner: Manages the provisioning lifecycle of bare metal hosts
- Ironic: OpenStack Ironic service for hardware management
- Inspector: Discovers and validates hardware capabilities
- BMC Controller: Manages Baseboard Management Controllers
- Machine Config: Configuration for machine provisioning
- Cluster API Provider: Integrates with Cluster API for cluster deployment
- Image Downloader: Downloads and caches OS images
Component Interactions
- User → Kubernetes API: Create BareMetalHost CRD for a physical server
- BareMetalHost → BMC Controller: Access and configure BMC
- BMC Controller → Ironic: Provisioning orchestration
- Ironic → Provisioner: Hardware management operations
- Provisioner → Image Downloader: Download and cache OS images
- Inspector → Hardware: Discover and validate hardware capabilities
- Cluster API Provider → Metal3: Provision worker nodes for cluster
Data Flow Patterns
- Host Registration: Physical server → BareMetalHost CRD → BMC validation → Hardware inspection
- Provisioning: BareMetalHost → Ironic → Image download → Disk preparation → OS installation
- Machine Creation: Machine CR → Metal3 Provider → BareMetalHost allocation → Provisioning
- Health Monitoring: BMC → BareMetalHost status → Reconciliation loop → Failure detection
- Image Management: Registry → Image Downloader → Caching → Provisioning
Design Principles
- Kubernetes-Native: Full CRD integration with standard Kubernetes patterns
- Open Standards: Support for IPMI, Redfish, and other industry standards
- Extensible: Plugin architecture for different hardware providers
- Self-Healing: Automatic recovery from provisioning failures
- Consistent State: Reconciliation loop ensures desired state matches actual state
Integration Approaches
Integration with Other CNCF Projects
- Kubernetes: Full integration for container workloads on bare metal
- Cluster API: Provider for provisioning Kubernetes nodes
- Prometheus: Expose hardware metrics and provisioning status
- Grafana: Dashboards for hardware health and provisioning status
- CoreDNS: DNS configuration for provisioned hosts
- Cert-Manager: Certificate management for secure boot
- OpenShift: Support for OpenShift bare metal deployments
API Patterns
- BareMetalHost CRD: Manage bare metal host lifecycle
- Machine CRD: Cluster API machine provisioning
- BMC Secret: Secure credentials for out-of-band management
- HardwareProfile: Pre-defined hardware configurations
- Provisioning State: Lifecycle state machine for hosts
Configuration Patterns
- BMC Credentials: Securely store credentials in Kubernetes secrets
- Hardware Profiles: Define reusable hardware configurations
- Provisioning Images: Customize OS images for different use cases
- Network Configuration: Define network settings for provisioned hosts
- Power Management: Configure power policies and schedules
Extension Mechanisms
- Custom Hardware Profiles: Add support for new hardware models
- Custom Provisioners: Implement support for alternative provisioning tools
- Webhooks: Add validation and mutation for BareMetalHost CRDs
- Metrics Export: Extend metrics with custom hardware data
Common Pitfalls and How to Avoid Them
Configuration Issues
- BMC Credentials: Ensure correct and accessible BMC credentials
- Network Configuration: Validate network settings before provisioning
- Image Availability: Ensure required OS images are available and accessible
- Hardware Compatibility: Verify hardware is supported by Ironic drivers
- Firewall Rules: Configure proper firewall rules for BMC access
Performance Issues
- Image Download Speed: Use caching and local image repositories
- Provisioning Time: Optimize hardware inspection and disk preparation
- Concurrent Provisioning: Balance workload across provisioner workers
- Database Performance: Monitor and optimize Ironic database performance
Operational Challenges
- Hardware Failures: Implement monitoring and alerting for hardware issues
- BMC Outages: Plan for BMC unavailability during provisioning
- Image Updates: Test image updates before production deployment
- Capacity Planning: Monitor hardware inventory and plan for expansion
Security Pitfalls
- BMC Security: Use secure credentials and limit BMC network access
- Image Security: Verify OS image signatures and integrity
- Network Isolation: Isolate provisioning network from production
- Access Control: Restrict access to BareMetalHost CRDs
Coding Practices
Idiomatic Configuration
- BMC Secret Management: Use Kubernetes secrets for sensitive credentials
- Hardware Profile Templates: Create reusable hardware configurations
- Network ConfigMaps: Use ConfigMaps for network configuration
- Image Registry Configuration: Configure image pull secrets and registry settings
API Usage Patterns
- BareMetalHost Operations: Register, validate, provision, and deprovision hosts
- Machine Integration: Integrate with Cluster API for cluster provisioning
- Status Monitoring: Monitor BareMetalHost status for provisioning progress
- Event Handling: Handle provisioning events and failures
Observability Best Practices
- Metrics Collection: Prometheus scrape Metal3 metrics endpoint
- Alerting: Set up alerts for provisioning failures and hardware issues
- Dashboard: Use Grafana dashboards for provisioning status
- Log Analysis: Monitor Metal3 component logs for issues
- Hardware Monitoring: Track hardware health metrics
Development Workflow
- Local Development: Use Vagrant or virtual environments for testing
- Testing: Test provisioning workflows in staging environment
- CI/CD Integration: Automate infrastructure provisioning in CI/CD
- Rollback Plans: Test rollback procedures for failed provisioning
Fundamentals
Essential Concepts
- Bare Metal Host: Physical server managed by Metal3
- BMC: Baseboard Management Controller for out-of-band management
- Provisioning: Process of installing OS and configuring hardware
- Ironic: OpenStack service for bare metal provisioning
- Image Registration: Preparing and registering OS images
- Hardware Inspection: Discovering hardware capabilities
- Machine: Kubernetes node provisioned by Metal3
Terminology Glossary
- Bare Metal Host: CRD representing a physical server
- BMC: Baseboard Management Controller
- Provisioning: Installing OS and configuring hardware
- Deprovisioning: Cleaning up and returning host to ready state
- Hardware Profile: Pre-defined hardware configuration
- Inspection: Discovering hardware capabilities
- Image Registration: Registering OS images for provisioning
- Power State: Current power state of the host
Data Models and Types
- BareMetalHost: Full specification and status of a bare metal host
- BMC Secret: Kubernetes secret containing BMC credentials
- HardwareProfile: Pre-defined hardware configuration template
- Provisioning State: Lifecycle state of the host
- Hardware Information: Discovered hardware capabilities
Lifecycle Management
- Host Lifecycle: Register → Validate → Inspect → Provision → Ready → Deprovision → Free
- Machine Lifecycle: Request → Allocation → Provisioning → Running → Delete
- Image Lifecycle: Upload → Registration → Caching → Provisioning → Cleanup
State Management
- Host State: Registering, inspecting, provisioning, ready, deprovisioning, error
- Image State: Uploading, registered, caching, available, error
- Power State: On, off, rebooting, error
Scaling and Deployment Patterns
Horizontal Scaling
- Provisioner Replicas: Scale provisioner for concurrent provisioning
- Image Downloader: Cache images across multiple nodes
- Ironic Database: Scale database for large deployments
- BMC Connections: Distribute BMC connections across provisioner workers
High Availability
- Provisioner Redundancy: Multiple provisioner instances for failover
- Image Caching: Distribute image cache across provisioner nodes
- BMC Redundancy: Configure redundant BMC connections
- Database HA: Deploy Ironic database in HA mode
Production Deployments
- Production Cluster: Deploy Metal3 with high availability
- Image Registry: Use local registry for image caching
- Network Segmentation: Isolate provisioning network
- Monitoring: Set up Prometheus and Grafana for monitoring
Upgrade Strategies
- Minor Version: In-place upgrade with zero-downtime
- Major Version: Follow upgrade guide with backup
- Rollback Plan: Keep previous version images for rollback
- Pre-Upgrade Check: Run health checks before upgrade
Resource Management
- Memory: Configure provisioner resource requests
- CPU: Balance CPU usage across provisioner workers
- Network: Monitor provisioning network utilization
- Storage: Manage image cache storage usage
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: metal3-io3description: "metal3.io in Bare Metal Provisioning - cloud native architecture, patterns" pitfalls, and best practices4license: MIT5---678910# Metal3.io in Cloud-Native Engineering1112**Category:** infrastructure 13**Status:** Incubating 14**Stars:** 2,000 15**Last Updated:** 2026-04-22 16**Primary Language:** Go 17**Documentation:** [https://metal3.io/](https://metal3.io/) 1819---2021## Purpose and Use Cases2223### What Problem Does It Solve?2425Metal3.io bridges the gap between traditional bare metal infrastructure and cloud-native Kubernetes operations. It provides an open-source framework for provisioning and managing bare metal hosts using Kubernetes APIs, eliminating the need for out-of-band infrastructure management tools and enabling infrastructure-as-code practices for physical servers.2627### When to Use This Project2829Use Metal3.io when you need:30- Kubernetes-native bare metal host provisioning31- Infrastructure-as-code for physical servers32- Integration with existing cloud-native tooling33- Automated hardware discovery and validation34- Integration with IPMI, Redfish, or other out-of-band management35- Consistent management of on-prem and cloud infrastructure3637### Key Use Cases3839- **On-Prem Kubernetes**: Deploy Kubernetes clusters on bare metal infrastructure40- **Edge Computing**: Provision and manage edge servers consistently41- **Hybrid Cloud**: Unify management of cloud and on-prem resources42- **CI/CD for Infrastructure**: Use GitOps for infrastructure provisioning43- **Disaster Recovery**: Rapid infrastructure re-provisioning44- **Multi-Cluster Management**: Manage multiple bare metal clusters4546---4748## Architecture Design Patterns4950### Core Components5152- **Bare Metal Host**: Kubernetes CRD representing physical server53- **Provisioner**: Manages the provisioning lifecycle of bare metal hosts54- **Ironic**: OpenStack Ironic service for hardware management55- **Inspector**: Discovers and validates hardware capabilities56- **BMC Controller**: Manages Baseboard Management Controllers57- **Machine Config**: Configuration for machine provisioning58- **Cluster API Provider**: Integrates with Cluster API for cluster deployment59- **Image Downloader**: Downloads and caches OS images6061### Component Interactions62631. **User → Kubernetes API**: Create BareMetalHost CRD for a physical server642. **BareMetalHost → BMC Controller**: Access and configure BMC653. **BMC Controller → Ironic**: Provisioning orchestration664. **Ironic → Provisioner**: Hardware management operations675. **Provisioner → Image Downloader**: Download and cache OS images686. **Inspector → Hardware**: Discover and validate hardware capabilities697. **Cluster API Provider → Metal3**: Provision worker nodes for cluster7071### Data Flow Patterns72731. **Host Registration**: Physical server → BareMetalHost CRD → BMC validation → Hardware inspection742. **Provisioning**: BareMetalHost → Ironic → Image download → Disk preparation → OS installation753. **Machine Creation**: Machine CR → Metal3 Provider → BareMetalHost allocation → Provisioning764. **Health Monitoring**: BMC → BareMetalHost status → Reconciliation loop → Failure detection775. **Image Management**: Registry → Image Downloader → Caching → Provisioning7879### Design Principles8081- **Kubernetes-Native**: Full CRD integration with standard Kubernetes patterns82- **Open Standards**: Support for IPMI, Redfish, and other industry standards83- **Extensible**: Plugin architecture for different hardware providers84- **Self-Healing**: Automatic recovery from provisioning failures85- **Consistent State**: Reconciliation loop ensures desired state matches actual state8687---8889## Integration Approaches9091### Integration with Other CNCF Projects9293- **Kubernetes**: Full integration for container workloads on bare metal94- **Cluster API**: Provider for provisioning Kubernetes nodes95- **Prometheus**: Expose hardware metrics and provisioning status96- **Grafana**: Dashboards for hardware health and provisioning status97- **CoreDNS**: DNS configuration for provisioned hosts98- **Cert-Manager**: Certificate management for secure boot99- **OpenShift**: Support for OpenShift bare metal deployments100101### API Patterns102103- **BareMetalHost CRD**: Manage bare metal host lifecycle104- **Machine CRD**: Cluster API machine provisioning105- **BMC Secret**: Secure credentials for out-of-band management106- **HardwareProfile**: Pre-defined hardware configurations107- **Provisioning State**: Lifecycle state machine for hosts108109### Configuration Patterns110111- **BMC Credentials**: Securely store credentials in Kubernetes secrets112- **Hardware Profiles**: Define reusable hardware configurations113- **Provisioning Images**: Customize OS images for different use cases114- **Network Configuration**: Define network settings for provisioned hosts115- **Power Management**: Configure power policies and schedules116117### Extension Mechanisms118119- **Custom Hardware Profiles**: Add support for new hardware models120- **Custom Provisioners**: Implement support for alternative provisioning tools121- **Webhooks**: Add validation and mutation for BareMetalHost CRDs122- **Metrics Export**: Extend metrics with custom hardware data123124---125126## Common Pitfalls and How to Avoid Them127128### Configuration Issues129130- **BMC Credentials**: Ensure correct and accessible BMC credentials131- **Network Configuration**: Validate network settings before provisioning132- **Image Availability**: Ensure required OS images are available and accessible133- **Hardware Compatibility**: Verify hardware is supported by Ironic drivers134- **Firewall Rules**: Configure proper firewall rules for BMC access135136### Performance Issues137138- **Image Download Speed**: Use caching and local image repositories139- **Provisioning Time**: Optimize hardware inspection and disk preparation140- **Concurrent Provisioning**: Balance workload across provisioner workers141- **Database Performance**: Monitor and optimize Ironic database performance142143### Operational Challenges144145- **Hardware Failures**: Implement monitoring and alerting for hardware issues146- **BMC Outages**: Plan for BMC unavailability during provisioning147- **Image Updates**: Test image updates before production deployment148- **Capacity Planning**: Monitor hardware inventory and plan for expansion149150### Security Pitfalls151152- **BMC Security**: Use secure credentials and limit BMC network access153- **Image Security**: Verify OS image signatures and integrity154- **Network Isolation**: Isolate provisioning network from production155- **Access Control**: Restrict access to BareMetalHost CRDs156157---158159## Coding Practices160161### Idiomatic Configuration162163- **BMC Secret Management**: Use Kubernetes secrets for sensitive credentials164- **Hardware Profile Templates**: Create reusable hardware configurations165- **Network ConfigMaps**: Use ConfigMaps for network configuration166- **Image Registry Configuration**: Configure image pull secrets and registry settings167168### API Usage Patterns169170- **BareMetalHost Operations**: Register, validate, provision, and deprovision hosts171- **Machine Integration**: Integrate with Cluster API for cluster provisioning172- **Status Monitoring**: Monitor BareMetalHost status for provisioning progress173- **Event Handling**: Handle provisioning events and failures174175### Observability Best Practices176177- **Metrics Collection**: Prometheus scrape Metal3 metrics endpoint178- **Alerting**: Set up alerts for provisioning failures and hardware issues179- **Dashboard**: Use Grafana dashboards for provisioning status180- **Log Analysis**: Monitor Metal3 component logs for issues181- **Hardware Monitoring**: Track hardware health metrics182183### Development Workflow184185- **Local Development**: Use Vagrant or virtual environments for testing186- **Testing**: Test provisioning workflows in staging environment187- **CI/CD Integration**: Automate infrastructure provisioning in CI/CD188- **Rollback Plans**: Test rollback procedures for failed provisioning189190---191192## Fundamentals193194### Essential Concepts195196- **Bare Metal Host**: Physical server managed by Metal3197- **BMC**: Baseboard Management Controller for out-of-band management198- **Provisioning**: Process of installing OS and configuring hardware199- **Ironic**: OpenStack service for bare metal provisioning200- **Image Registration**: Preparing and registering OS images201- **Hardware Inspection**: Discovering hardware capabilities202- **Machine**: Kubernetes node provisioned by Metal3203204### Terminology Glossary205206- **Bare Metal Host**: CRD representing a physical server207- **BMC**: Baseboard Management Controller208- **Provisioning**: Installing OS and configuring hardware209- **Deprovisioning**: Cleaning up and returning host to ready state210- **Hardware Profile**: Pre-defined hardware configuration211- **Inspection**: Discovering hardware capabilities212- **Image Registration**: Registering OS images for provisioning213- **Power State**: Current power state of the host214215### Data Models and Types216217- **BareMetalHost**: Full specification and status of a bare metal host218- **BMC Secret**: Kubernetes secret containing BMC credentials219- **HardwareProfile**: Pre-defined hardware configuration template220- **Provisioning State**: Lifecycle state of the host221- **Hardware Information**: Discovered hardware capabilities222223### Lifecycle Management224225- **Host Lifecycle**: Register → Validate → Inspect → Provision → Ready → Deprovision → Free226- **Machine Lifecycle**: Request → Allocation → Provisioning → Running → Delete227- **Image Lifecycle**: Upload → Registration → Caching → Provisioning → Cleanup228229### State Management230231- **Host State**: Registering, inspecting, provisioning, ready, deprovisioning, error232- **Image State**: Uploading, registered, caching, available, error233- **Power State**: On, off, rebooting, error234235---236237## Scaling and Deployment Patterns238239### Horizontal Scaling240241- **Provisioner Replicas**: Scale provisioner for concurrent provisioning242- **Image Downloader**: Cache images across multiple nodes243- **Ironic Database**: Scale database for large deployments244- **BMC Connections**: Distribute BMC connections across provisioner workers245246### High Availability247248- **Provisioner Redundancy**: Multiple provisioner instances for failover249- **Image Caching**: Distribute image cache across provisioner nodes250- **BMC Redundancy**: Configure redundant BMC connections251- **Database HA**: Deploy Ironic database in HA mode252253### Production Deployments254255- **Production Cluster**: Deploy Metal3 with high availability256- **Image Registry**: Use local registry for image caching257- **Network Segmentation**: Isolate provisioning network258- **Monitoring**: Set up Prometheus and Grafana for monitoring259260### Upgrade Strategies261262- **Minor Version**: In-place upgrade with zero-downtime263- **Major Version**: Follow upgrade guide with backup264- **Rollback Plan**: Keep previous version images for rollback265- **Pre-Upgrade Check**: Run health checks before upgrade266267### Resource Management268269- **Memory**: Configure provisioner resource requests270- **CPU**: Balance CPU usage across provisioner workers271- **Network**: Monitor provisioning network utilization272- **Storage**: Manage image cache storage usage273274---275276## Additional Resources277278- **Official Documentation:** [https://metal3.io/docs/](https://metal3.io/docs/)279- **GitHub Repository:** [github.com/metal3-io/metal3-docs](https://github.com/metal3-io/metal3_docs)280- **CNCF Project Page:** [cncf.io/projects/metal3/](https://www.cncf.io/projects/metal3/)281- **Community:** Check the GitHub repository for community channels282- **Versioning:** Refer to project's release notes for version-specific features283284---285286## Troubleshooting287288### Common Issues2892901. **Deployment Failures**291 - Check pod logs for errors292 - Verify configuration values293 - Ensure network connectivity2942952. **Performance Issues**296 - Monitor resource usage297 - Adjust resource limits298 - Check for bottlenecks2993003. **Configuration Errors**301 - Validate YAML syntax302 - Check required fields303 - Verify environment-specific settings3043054. **Integration Problems**306 - Verify API compatibility307 - Check dependency versions308 - Review integration documentation309310### Getting Help311312- Check official documentation313- Search GitHub issues314- Join community channels315- Review logs and metrics316*Content generated automatically. Verify against official documentation before production use.*317318## Examples319320### Basic Configuration321322323```yaml324# Basic configuration example325apiVersion: v1326kind: ConfigMap327metadata:328 name: {{project_name}}-config329 namespace: default330data:331 # Configuration goes here332 config.yaml: |333 # Base configuration334 # Add your settings here335```336337### Kubernetes Deployment338339340```yaml341# Kubernetes deployment for {{project_name}}342apiVersion: apps/v1343kind: Deployment344metadata:345 name: {{project_name}}346 namespace: default347spec:348 replicas: 1349 selector:350 matchLabels:351 app: {{project_name}}352 template:353 metadata:354 labels:355 app: {{project_name}}356 spec:357 containers:358 - name: {{project_name}}359 image: {{project_name}}:latest360 ports:361 - containerPort: 8080362 resources:363 limits:364 memory: "128Mi"365 cpu: "500m"366```367368### Kubernetes Service369370371```yaml372# Kubernetes service for {{project_name}}373apiVersion: v1374kind: Service375metadata:376 name: {{project_name}}377 namespace: default378spec:379 selector:380 app: {{project_name}}381 ports:382 - protocol: TCP383 port: 80384 targetPort: 8080385 type: ClusterIP386```387388---389390## When to Use391392Use this skill when:393394- **Integrating a CNCF project into Kubernetes infrastructure** — You need to configure, deploy, or troubleshoot a cloud-native tool within a cluster395- **Designing cloud-native architecture** — You are selecting and integrating CNCF tools to solve specific infrastructure challenges396- **Resolving operational issues** — A CNCF component is misbehaving, underperforming, or needs configuration changes397---398399## Core Workflow4004011. **Assess Requirements** — Understand the use case, scale, integration needs, and existing infrastructure. **Checkpoint:** Document requirements, constraints, and success criteria.4024032. **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.4044053. **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.4064074. **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.408409---410411## Constraints412413### MUST DO414- Include at least one complete working YAML manifest example415- Note when content is auto-generated vs. manually verified416- Reference relevant CNCF project documentation417418### MUST NOT DO419- Deploy manifests without testing in a staging environment first420- Use deprecated API versions (e.g., apps/v1beta1)421- Omit resource limits and requests in Kubernetes manifests